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