1 /* 2 * dbdcddef.h 3 * 4 * DSP-BIOS Bridge driver support functions for TI OMAP processors. 5 * 6 * DCD (DSP/BIOS Bridge Configuration Database) constants and types. 7 * 8 * Copyright (C) 2008 Texas Instruments, Inc. 9 * 10 * This package is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 * 14 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 16 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 17 */ 18 19 #ifndef DBDCDDEF_ 20 #define DBDCDDEF_ 21 22 #include <dspbridge/dbdefs.h> 23 #include <dspbridge/mgrpriv.h> /* for mgr_processorextinfo */ 24 25 /* 26 * The following defines are critical elements for the DCD module: 27 * 28 * - DCD_REGKEY enables DCD functions to locate registered DCD objects. 29 * - DCD_REGISTER_SECTION identifies the COFF section where the UUID of 30 * registered DCD objects are stored. 31 */ 32 #define DCD_REGKEY "Software\\TexasInstruments\\DspBridge\\DCD" 33 #define DCD_REGISTER_SECTION ".dcd_register" 34 35 #define DCD_MAXPATHLENGTH 255 36 37 /* DCD Manager Object */ 38 struct dcd_manager; 39 40 struct dcd_key_elem { 41 struct list_head link; /* Make it linked to a list */ 42 char name[DCD_MAXPATHLENGTH]; /* Name of a given value entry */ 43 char *path; /* Pointer to the actual data */ 44 }; 45 46 /* DCD Node Properties */ 47 struct dcd_nodeprops { 48 struct dsp_ndbprops ndb_props; 49 u32 msg_segid; 50 u32 msg_notify_type; 51 char *str_create_phase_fxn; 52 char *str_delete_phase_fxn; 53 char *str_execute_phase_fxn; 54 char *str_i_alg_name; 55 56 /* Dynamic load properties */ 57 u16 load_type; /* Static, dynamic, overlay */ 58 u32 data_mem_seg_mask; /* Data memory requirements */ 59 u32 code_mem_seg_mask; /* Code memory requirements */ 60 }; 61 62 /* DCD Generic Object Type */ 63 struct dcd_genericobj { 64 union dcd_obj { 65 struct dcd_nodeprops node_obj; /* node object. */ 66 /* processor object. */ 67 struct dsp_processorinfo proc_info; 68 /* extended proc object (private) */ 69 struct mgr_processorextinfo ext_proc_obj; 70 } obj_data; 71 }; 72 73 /* DCD Internal Callback Type */ 74 typedef int(*dcd_registerfxn) (struct dsp_uuid *uuid_obj, 75 enum dsp_dcdobjtype obj_type, 76 void *handle); 77 78 #endif /* DBDCDDEF_ */ 79