tizen 2.4 release
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / drivers / staging / tidspbridge / include / dspbridge / dbdcddef.h
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_ */