diff options
Diffstat (limited to 'drivers/staging/tidspbridge/dynload/module_list.h')
-rw-r--r-- | drivers/staging/tidspbridge/dynload/module_list.h | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/drivers/staging/tidspbridge/dynload/module_list.h b/drivers/staging/tidspbridge/dynload/module_list.h deleted file mode 100644 index a216bb131a40..000000000000 --- a/drivers/staging/tidspbridge/dynload/module_list.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * dspbridge/mpu_driver/src/dynload/module_list.h - * - * DSP-BIOS Bridge driver support functions for TI OMAP processors. - * - * 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. - */ - -/* - * This C header file gives the layout of the data structure created by the - * dynamic loader to describe the set of modules loaded into the DSP. - * - * Linked List Structure: - * ---------------------- - * The data structure defined here is a singly-linked list. The list - * represents the set of modules which are currently loaded in the DSP memory. - * The first entry in the list is a header record which contains a flag - * representing the state of the list. The rest of the entries in the list - * are module records. - * - * Global symbol _DLModules designates the first record in the list (i.e. the - * header record). This symbol must be defined in any program that wishes to - * use DLLview plug-in. - * - * String Representation: - * ---------------------- - * The string names of the module and its sections are stored in a block of - * memory which follows the module record itself. The strings are ordered: - * module name first, followed by section names in order from the first - * section to the last. String names are tightly packed arrays of 8-bit - * characters (two characters per 16-bit word on the C55x). Strings are - * zero-byte-terminated. - * - * Creating and updating the list: - * ------------------------------- - * Upon loading a new module into the DSP memory the dynamic loader inserts a - * new module record as the first module record in the list. The fields of - * this module record are initialized to reflect the properties of the module. - * The dynamic loader does NOT increment the flag/counter in the list's header - * record. - * - * Upon unloading a module from the DSP memory the dynamic loader removes the - * module's record from this list. The dynamic loader also increments the - * flag/counter in the list's header record to indicate that the list has been - * changed. - */ - -#ifndef _MODULE_LIST_H_ -#define _MODULE_LIST_H_ - -#include <linux/types.h> - -/* Global pointer to the modules_header structure */ -#define MODULES_HEADER "_DLModules" -#define MODULES_HEADER_NO_UNDERSCORE "DLModules" - -/* Initial version number */ -#define INIT_VERSION 1 - -/* Verification number -- to be recorded in each module record */ -#define VERIFICATION 0x79 - -/* forward declarations */ -struct dll_module; -struct dll_sect; - -/* the first entry in the list is the modules_header record; - * its address is contained in the global _DLModules pointer */ -struct modules_header { - - /* - * Address of the first dll_module record in the list or NULL. - * Note: for C55x this is a word address (C55x data is - * word-addressable) - */ - u32 first_module; - - /* Combined storage size (in target addressable units) of the - * dll_module record which follows this header record, or zero - * if the list is empty. This size includes the module's string table. - * Note: for C55x the unit is a 16-bit word */ - u16 first_module_size; - - /* Counter is incremented whenever a module record is removed from - * the list */ - u16 update_flag; - -}; - -/* for each 32-bits in above structure, a bitmap, LSB first, whose bits are: - * 0 => a 32-bit value, 1 => 2 16-bit values */ -/* swapping bitmap for type modules_header */ -#define MODULES_HEADER_BITMAP 0x2 - -/* information recorded about each section in a module */ -struct dll_sect { - - /* Load-time address of the section. - * Note: for C55x this is a byte address for program sections, and - * a word address for data sections. C55x program memory is - * byte-addressable, while data memory is word-addressable. */ - u32 sect_load_adr; - - /* Run-time address of the section. - * Note 1: for C55x this is a byte address for program sections, and - * a word address for data sections. - * Note 2: for C55x two most significant bits of this field indicate - * the section type: '00' for a code section, '11' for a data section - * (C55 addresses are really only 24-bits wide). */ - u32 sect_run_adr; - -}; - -/* the rest of the entries in the list are module records */ -struct dll_module { - - /* Address of the next dll_module record in the list, or 0 if this is - * the last record in the list. - * Note: for C55x this is a word address (C55x data is - * word-addressable) */ - u32 next_module; - - /* Combined storage size (in target addressable units) of the - * dll_module record which follows this one, or zero if this is the - * last record in the list. This size includes the module's string - * table. - * Note: for C55x the unit is a 16-bit word. */ - u16 next_module_size; - - /* version number of the tooling; set to INIT_VERSION for Phase 1 */ - u16 version; - - /* the verification word; set to VERIFICATION */ - u16 verification; - - /* Number of sections in the sects array */ - u16 num_sects; - - /* Module's "unique" id; copy of the timestamp from the host - * COFF file */ - u32 timestamp; - - /* Array of num_sects elements of the module's section records */ - struct dll_sect sects[1]; -}; - -/* for each 32 bits in above structure, a bitmap, LSB first, whose bits are: - * 0 => a 32-bit value, 1 => 2 16-bit values */ -#define DLL_MODULE_BITMAP 0x6 /* swapping bitmap for type dll_module */ - -#endif /* _MODULE_LIST_H_ */ |