• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/tidspbridge/include/dspbridge/
1/*
2 * getsection.h
3 *
4 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
5 *
6 * This file provides an API add-on to the dynamic loader that allows the user
7 * to query section information and extract section data from dynamic load
8 * modules.
9 *
10 * Notes:
11 *   Functions in this API assume that the supplied dynamic_loader_stream
12 *   object supports the set_file_posn method.
13 *
14 * Copyright (C) 2008 Texas Instruments, Inc.
15 *
16 * This package is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License version 2 as
18 * published by the Free Software Foundation.
19 *
20 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
21 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
22 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
23 */
24
25#ifndef _GETSECTION_H_
26#define _GETSECTION_H_
27
28#include "dynamic_loader.h"
29
30/*
31 * Procedure dload_module_open
32 *
33 * Parameters:
34 *  module  The input stream that supplies the module image
35 *  syms    Host-side malloc/free and error reporting functions.
36 *          Other methods are unused.
37 *
38 * Effect:
39 *  Reads header information from a dynamic loader module using the specified
40 * stream object, and returns a handle for the module information.  This
41 * handle may be used in subsequent query calls to obtain information
42 * contained in the module.
43 *
44 * Returns:
45 *  NULL if an error is encountered, otherwise a module handle for use
46 * in subsequent operations.
47 */
48extern void *dload_module_open(struct dynamic_loader_stream
49					   *module, struct dynamic_loader_sym
50					   *syms);
51
52/*
53 * Procedure dload_get_section_info
54 *
55 * Parameters:
56 *  minfo       Handle from dload_module_open for this module
57 *  section_name Pointer to the string name of the section desired
58 *  section_info Address of a section info structure pointer to be initialized
59 *
60 * Effect:
61 *  Finds the specified section in the module information, and fills in
62 * the provided ldr_section_info structure.
63 *
64 * Returns:
65 *  TRUE for success, FALSE for section not found
66 */
67extern int dload_get_section_info(void *minfo,
68				  const char *section_name,
69				  const struct ldr_section_info
70				  **const section_info);
71
72/*
73 * Procedure dload_get_section
74 *
75 * Parameters:
76 *  minfo       Handle from dload_module_open for this module
77 *  section_info Pointer to a section info structure for the desired section
78 *  section_data Buffer to contain the section initialized data
79 *
80 * Effect:
81 *  Copies the initialized data for the specified section into the
82 * supplied buffer.
83 *
84 * Returns:
85 *  TRUE for success, FALSE for section not found
86 */
87extern int dload_get_section(void *minfo,
88			     const struct ldr_section_info *section_info,
89			     void *section_data);
90
91/*
92 * Procedure dload_module_close
93 *
94 * Parameters:
95 *  minfo       Handle from dload_module_open for this module
96 *
97 * Effect:
98 *  Releases any storage associated with the module handle.  On return,
99 * the module handle is invalid.
100 *
101 * Returns:
102 *  Zero for success. On error, the number of errors detected is returned.
103 * Individual errors are reported using syms->error_report(), where syms was
104 * an argument to dload_module_open
105 */
106extern void dload_module_close(void *minfo);
107
108#endif /* _GETSECTION_H_ */
109