diff options
Diffstat (limited to 'drivers/staging/tidspbridge/include/dspbridge/getsection.h')
-rw-r--r-- | drivers/staging/tidspbridge/include/dspbridge/getsection.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/drivers/staging/tidspbridge/include/dspbridge/getsection.h b/drivers/staging/tidspbridge/include/dspbridge/getsection.h new file mode 100644 index 00000000000..626063dd9df --- /dev/null +++ b/drivers/staging/tidspbridge/include/dspbridge/getsection.h @@ -0,0 +1,108 @@ +/* + * getsection.h + * + * DSP-BIOS Bridge driver support functions for TI OMAP processors. + * + * This file provides an API add-on to the dynamic loader that allows the user + * to query section information and extract section data from dynamic load + * modules. + * + * Notes: + * Functions in this API assume that the supplied dynamic_loader_stream + * object supports the set_file_posn method. + * + * Copyright (C) 2008 Texas Instruments, Inc. + * + * This package is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _GETSECTION_H_ +#define _GETSECTION_H_ + +#include "dynamic_loader.h" + +/* + * Procedure dload_module_open + * + * Parameters: + * module The input stream that supplies the module image + * syms Host-side malloc/free and error reporting functions. + * Other methods are unused. + * + * Effect: + * Reads header information from a dynamic loader module using the specified + * stream object, and returns a handle for the module information. This + * handle may be used in subsequent query calls to obtain information + * contained in the module. + * + * Returns: + * NULL if an error is encountered, otherwise a module handle for use + * in subsequent operations. + */ +extern void *dload_module_open(struct dynamic_loader_stream + *module, struct dynamic_loader_sym + *syms); + +/* + * Procedure dload_get_section_info + * + * Parameters: + * minfo Handle from dload_module_open for this module + * section_name Pointer to the string name of the section desired + * section_info Address of a section info structure pointer to be initialized + * + * Effect: + * Finds the specified section in the module information, and fills in + * the provided ldr_section_info structure. + * + * Returns: + * TRUE for success, FALSE for section not found + */ +extern int dload_get_section_info(void *minfo, + const char *section_name, + const struct ldr_section_info + **const section_info); + +/* + * Procedure dload_get_section + * + * Parameters: + * minfo Handle from dload_module_open for this module + * section_info Pointer to a section info structure for the desired section + * section_data Buffer to contain the section initialized data + * + * Effect: + * Copies the initialized data for the specified section into the + * supplied buffer. + * + * Returns: + * TRUE for success, FALSE for section not found + */ +extern int dload_get_section(void *minfo, + const struct ldr_section_info *section_info, + void *section_data); + +/* + * Procedure dload_module_close + * + * Parameters: + * minfo Handle from dload_module_open for this module + * + * Effect: + * Releases any storage associated with the module handle. On return, + * the module handle is invalid. + * + * Returns: + * Zero for success. On error, the number of errors detected is returned. + * Individual errors are reported using syms->error_report(), where syms was + * an argument to dload_module_open + */ +extern void dload_module_close(void *minfo); + +#endif /* _GETSECTION_H_ */ |