Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dbdcddef.h
Go to the documentation of this file.
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 {
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 */
64  union dcd_obj {
65  struct dcd_nodeprops node_obj; /* node object. */
66  /* processor object. */
68  /* extended proc object (private) */
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_ */