109 lines
3.2 KiB
C
109 lines
3.2 KiB
C
/*
|
|
* 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_ */
|