GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / linux / linux-2.6.36 / drivers / staging / tidspbridge / include / dspbridge / mgr.h
blob99f7dc0116b560106be410c1c139e50f50e3f114
1 /*
2 * mgr.h
4 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
6 * This is the DSP API RM module interface.
8 * Copyright (C) 2005-2006 Texas Instruments, Inc.
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.
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.
19 #ifndef MGR_
20 #define MGR_
22 #include <dspbridge/mgrpriv.h>
24 #define MAX_EVENTS 32
27 * ======== mgr_wait_for_bridge_events ========
28 * Purpose:
29 * Block on any Bridge event(s)
30 * Parameters:
31 * anotifications : array of pointers to notification objects.
32 * count : number of elements in above array
33 * pu_index : index of signaled event object
34 * utimeout : timeout interval in milliseocnds
35 * Returns:
36 * 0 : Success.
37 * -ETIME : Wait timed out. *pu_index is undetermined.
38 * Details:
41 int mgr_wait_for_bridge_events(struct dsp_notification
42 **anotifications,
43 u32 count, u32 *pu_index,
44 u32 utimeout);
47 * ======== mgr_create ========
48 * Purpose:
49 * Creates the Manager Object. This is done during the driver loading.
50 * There is only one Manager Object in the DSP/BIOS Bridge.
51 * Parameters:
52 * mgr_obj: Location to store created MGR Object handle.
53 * dev_node_obj: Device object as known to the system.
54 * Returns:
55 * 0: Success
56 * -ENOMEM: Failed to Create the Object
57 * -EPERM: General Failure
58 * Requires:
59 * MGR Initialized (refs > 0 )
60 * mgr_obj != NULL.
61 * Ensures:
62 * 0: *mgr_obj is a valid MGR interface to the device.
63 * MGR Object stores the DCD Manager Handle.
64 * MGR Object stored in the Regsitry.
65 * !0: MGR Object not created
66 * Details:
67 * DCD Dll is loaded and MGR Object stores the handle of the DLL.
69 extern int mgr_create(struct mgr_object **mgr_obj,
70 struct cfg_devnode *dev_node_obj);
73 * ======== mgr_destroy ========
74 * Purpose:
75 * Destroys the MGR object. Called upon driver unloading.
76 * Parameters:
77 * hmgr_obj: Handle to Manager object .
78 * Returns:
79 * 0: Success.
80 * DCD Manager freed; MGR Object destroyed;
81 * MGR Object deleted from the Registry.
82 * -EPERM: Failed to destroy MGR Object
83 * Requires:
84 * MGR Initialized (refs > 0 )
85 * hmgr_obj is a valid MGR handle .
86 * Ensures:
87 * 0: MGR Object destroyed and hmgr_obj is Invalid MGR
88 * Handle.
90 extern int mgr_destroy(struct mgr_object *hmgr_obj);
93 * ======== mgr_enum_node_info ========
94 * Purpose:
95 * Enumerate and get configuration information about nodes configured
96 * in the node database.
97 * Parameters:
98 * node_id: The node index (base 0).
99 * pndb_props: Ptr to the dsp_ndbprops structure for output.
100 * undb_props_size: Size of the dsp_ndbprops structure.
101 * pu_num_nodes: Location where the number of nodes configured
102 * in the database will be returned.
103 * Returns:
104 * 0: Success.
105 * -EINVAL: Parameter node_id is > than the number of nodes.
106 * configutred in the system
107 * -EIDRM: During Enumeration there has been a change in
108 * the number of nodes configured or in the
109 * the properties of the enumerated nodes.
110 * -EPERM: Failed to querry the Node Data Base
111 * Requires:
112 * pNDBPROPS is not null
113 * undb_props_size >= sizeof(dsp_ndbprops)
114 * pu_num_nodes is not null
115 * MGR Initialized (refs > 0 )
116 * Ensures:
117 * SUCCESS on successful retreival of data and *pu_num_nodes > 0 OR
118 * DSP_FAILED && *pu_num_nodes == 0.
119 * Details:
121 extern int mgr_enum_node_info(u32 node_id,
122 struct dsp_ndbprops *pndb_props,
123 u32 undb_props_size,
124 u32 *pu_num_nodes);
127 * ======== mgr_enum_processor_info ========
128 * Purpose:
129 * Enumerate and get configuration information about available DSP
130 * processors
131 * Parameters:
132 * processor_id: The processor index (zero-based).
133 * processor_info: Ptr to the dsp_processorinfo structure .
134 * processor_info_size: Size of dsp_processorinfo structure.
135 * pu_num_procs: Location where the number of DSPs configured
136 * in the database will be returned
137 * Returns:
138 * 0: Success.
139 * -EINVAL: Parameter processor_id is > than the number of
140 * DSP Processors in the system.
141 * -EPERM: Failed to querry the Node Data Base
142 * Requires:
143 * processor_info is not null
144 * pu_num_procs is not null
145 * processor_info_size >= sizeof(dsp_processorinfo)
146 * MGR Initialized (refs > 0 )
147 * Ensures:
148 * SUCCESS on successful retreival of data and *pu_num_procs > 0 OR
149 * DSP_FAILED && *pu_num_procs == 0.
150 * Details:
152 extern int mgr_enum_processor_info(u32 processor_id,
153 struct dsp_processorinfo
154 *processor_info,
155 u32 processor_info_size,
156 u8 *pu_num_procs);
158 * ======== mgr_exit ========
159 * Purpose:
160 * Decrement reference count, and free resources when reference count is
161 * 0.
162 * Parameters:
163 * Returns:
164 * Requires:
165 * MGR is initialized.
166 * Ensures:
167 * When reference count == 0, MGR's private resources are freed.
169 extern void mgr_exit(void);
172 * ======== mgr_get_dcd_handle ========
173 * Purpose:
174 * Retrieves the MGR handle. Accessor Function
175 * Parameters:
176 * mgr_handle: Handle to the Manager Object
177 * dcd_handle: Ptr to receive the DCD Handle.
178 * Returns:
179 * 0: Sucess
180 * -EPERM: Failure to get the Handle
181 * Requires:
182 * MGR is initialized.
183 * dcd_handle != NULL
184 * Ensures:
185 * 0 and *dcd_handle != NULL ||
186 * -EPERM and *dcd_handle == NULL
188 extern int mgr_get_dcd_handle(struct mgr_object
189 *mgr_handle, u32 *dcd_handle);
192 * ======== mgr_init ========
193 * Purpose:
194 * Initialize MGR's private state, keeping a reference count on each
195 * call. Intializes the DCD.
196 * Parameters:
197 * Returns:
198 * TRUE if initialized; FALSE if error occured.
199 * Requires:
200 * Ensures:
201 * TRUE: A requirement for the other public MGR functions.
203 extern bool mgr_init(void);
205 #endif /* MGR_ */