FreeCalypso > hg > fc-magnetite
comparison src/gpf2/inc/p_mem.h @ 1:864b8cc0cf63
src/gpf2: preened GPF goo from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Sep 2016 23:38:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:945cf7f506b2 | 1:864b8cc0cf63 |
---|---|
1 /* | |
2 +------------------------------------------------------------------------------ | |
3 | File: mem.h | |
4 +------------------------------------------------------------------------------ | |
5 | Copyright Condat AG 1999-2000, Berlin | |
6 | All rights reserved. | |
7 | | |
8 | This file is confidential and a trade secret of Condat AG. | |
9 | The receipt of or possession of this file does not convey | |
10 | any rights to reproduce or disclose its contents or to | |
11 | manufacture, use, or sell anything it may describe, in | |
12 | whole, or in part, without the specific written consent of | |
13 | Condat AG. | |
14 +------------------------------------------------------------------------------ | |
15 | Purpose: Definitions for the entity MEM. | |
16 | $Identity:$ | |
17 +------------------------------------------------------------------------------ | |
18 */ | |
19 | |
20 #ifndef MEM_H | |
21 #define MEM_H | |
22 | |
23 /*==== INCLUDES ==============================================================*/ | |
24 | |
25 #include "typedefs.h" | |
26 #include "vsi.h" | |
27 #include "pei.h" | |
28 #include "tools.h" | |
29 | |
30 /*==== GENERATED CONTENT ======================================================*/ | |
31 | |
32 /* | |
33 +--------------------------------------------------------------------------+ | |
34 | PROJECT : PROTOCOL STACK | | |
35 | FILE : p_8010_112_mem_sap.val | | |
36 | SOURCE : "s:\g23m\condat\ms\DFILE\PRIM\8010_112_mem_sap.pdf" | | |
37 | LastModified : "12 February, 2003 by Gert Z. Srensen (GSO)" | | |
38 | IdAndVersion : "8010.112.02.002" | | |
39 | SrcFileTime : "Wed Nov 26 14:28:02 2003" | | |
40 | Generated by CCDGEN_2.4.11 on Tue Sep 21 10:40:12 2004 | | |
41 | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | | |
42 +--------------------------------------------------------------------------+ | |
43 */ | |
44 | |
45 /* PRAGMAS | |
46 * PREFIX : MEM | |
47 * COMPATIBILITY_DEFINES : NO | |
48 * ALWAYS_ENUM_IN_VAL_FILE: YES | |
49 * ENABLE_GROUP: NO | |
50 * CAPITALIZE_TYPENAME: NO | |
51 */ | |
52 | |
53 | |
54 #ifndef P_8010_112_MEM_SAP_VAL | |
55 #define P_8010_112_MEM_SAP_VAL | |
56 | |
57 | |
58 #define CDG_ENTER__P_8010_112_MEM_SAP_VAL | |
59 | |
60 #define CDG_ENTER__FILENAME _P_8010_112_MEM_SAP_VAL | |
61 #define CDG_ENTER__P_8010_112_MEM_SAP_VAL__FILE_TYPE CDGINC | |
62 #define CDG_ENTER__P_8010_112_MEM_SAP_VAL__LAST_MODIFIED _12_February_2003_by_Gert_Z_Srensen_GSO | |
63 #define CDG_ENTER__P_8010_112_MEM_SAP_VAL__ID_AND_VERSION _8010_112_02_002 | |
64 | |
65 #define CDG_ENTER__P_8010_112_MEM_SAP_VAL__SRC_FILE_TIME _Wed_Nov_26_14_28_02_2003 | |
66 | |
67 #include "CDG_ENTER.h" | |
68 | |
69 #undef CDG_ENTER__P_8010_112_MEM_SAP_VAL | |
70 | |
71 #undef CDG_ENTER__FILENAME | |
72 | |
73 | |
74 /* | |
75 * user defined constants | |
76 */ | |
77 #define MEM_MAX_NUMBER_OF_BUFFERS (0x40) | |
78 #define MEM_MAX_NUMBER_OF_USERS (0x40) | |
79 #define MEM_UNORDERED_BUFFER (0x0) | |
80 #define MEM_FIFO_BUFFER (0x1) | |
81 #define MEM_MAX_RAB_ID (0x10) | |
82 #define MEM_MAX_MEMORY_POOL_SIZE (0xffffff) | |
83 #define MEM_INVALID_USER_HANDLE (0x0) | |
84 #define MEM_INVALID_BUFFER_HANDLE (0x0) | |
85 #define MEM_RLC_UL_AM_MODE (0x0) | |
86 #define MEM_RLC_UL_UM_MODE (0x1) | |
87 #define MEM_RLC_UL_TM_MODE (0x2) | |
88 #define MEM_INVALID_MEMORY_HANDLE (0x0) | |
89 | |
90 #include "CDG_LEAVE.h" | |
91 | |
92 #endif | |
93 | |
94 | |
95 /* | |
96 +--------------------------------------------------------------------------+ | |
97 | PROJECT : PROTOCOL STACK | | |
98 | FILE : p_8010_112_mem_sap.h | | |
99 | SOURCE : "s:\g23m\condat\ms\DFILE\PRIM\8010_112_mem_sap.pdf" | | |
100 | LastModified : "12 February, 2003 by Gert Z. Srensen (GSO)" | | |
101 | IdAndVersion : "8010.112.02.002" | | |
102 | SrcFileTime : "Wed Nov 26 14:28:02 2003" | | |
103 | Generated by CCDGEN_2.4.11 on Tue Sep 21 10:40:12 2004 | | |
104 | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | | |
105 +--------------------------------------------------------------------------+ | |
106 */ | |
107 | |
108 /* PRAGMAS | |
109 * PREFIX : MEM | |
110 * COMPATIBILITY_DEFINES : NO | |
111 * ALWAYS_ENUM_IN_VAL_FILE: YES | |
112 * ENABLE_GROUP: NO | |
113 * CAPITALIZE_TYPENAME: NO | |
114 */ | |
115 | |
116 | |
117 #ifndef P_8010_112_MEM_SAP_H | |
118 #define P_8010_112_MEM_SAP_H | |
119 | |
120 | |
121 #define CDG_ENTER__P_8010_112_MEM_SAP_H | |
122 | |
123 #define CDG_ENTER__FILENAME _P_8010_112_MEM_SAP_H | |
124 #define CDG_ENTER__P_8010_112_MEM_SAP_H__FILE_TYPE CDGINC | |
125 #define CDG_ENTER__P_8010_112_MEM_SAP_H__LAST_MODIFIED _12_February_2003_by_Gert_Z_Srensen_GSO | |
126 #define CDG_ENTER__P_8010_112_MEM_SAP_H__ID_AND_VERSION _8010_112_02_002 | |
127 | |
128 #define CDG_ENTER__P_8010_112_MEM_SAP_H__SRC_FILE_TIME _Wed_Nov_26_14_28_02_2003 | |
129 | |
130 #include "CDG_ENTER.h" | |
131 | |
132 #undef CDG_ENTER__P_8010_112_MEM_SAP_H | |
133 | |
134 #undef CDG_ENTER__FILENAME | |
135 | |
136 | |
137 #ifndef __T_MEM_no_parms__ | |
138 #define __T_MEM_no_parms__ | |
139 /* | |
140 * No parameters. | |
141 * CCDGEN:WriteStruct_Count==14836 | |
142 */ | |
143 typedef struct | |
144 { | |
145 U8 none; /*< 0: 1> No parameters */ | |
146 U8 zzz_align0; /*< 1: 1> alignment */ | |
147 U8 zzz_align1; /*< 2: 1> alignment */ | |
148 U8 zzz_align2; /*< 3: 1> alignment */ | |
149 } T_MEM_no_parms; | |
150 #endif | |
151 | |
152 #ifndef __T_MEM_uplink_buffer_users_info__ | |
153 #define __T_MEM_uplink_buffer_users_info__ | |
154 /* | |
155 * No parameters. | |
156 * CCDGEN:WriteStruct_Count==14839 | |
157 */ | |
158 typedef struct | |
159 { | |
160 U8 rab_id; /*< 0: 1> Radio access identifier */ | |
161 U8 rlc_mode; /*< 1: 1> RLC Mode */ | |
162 U8 zzz_align0; /*< 2: 1> alignment */ | |
163 U8 zzz_align1; /*< 3: 1> alignment */ | |
164 U32 bits_per_tti; /*< 4: 4> Bits per TTI */ | |
165 U16 rlc_tx_window_size; /*< 8: 2> RLC window size */ | |
166 U8 zzz_align2; /*< 10: 1> alignment */ | |
167 U8 zzz_align3; /*< 11: 1> alignment */ | |
168 } T_MEM_uplink_buffer_users_info; | |
169 #endif | |
170 | |
171 | |
172 /* | |
173 * End of substructure section, begin of primitive definition section | |
174 */ | |
175 | |
176 #ifndef __T_MEM_READY_IND__ | |
177 #define __T_MEM_READY_IND__ | |
178 /* | |
179 * | |
180 * CCDGEN:WriteStruct_Count==14842 | |
181 */ | |
182 typedef struct | |
183 { | |
184 U8 user_handle; /*< 0: 1> User Handle */ | |
185 U8 user_parameter; /*< 1: 1> User parameter */ | |
186 U8 zzz_align0; /*< 2: 1> alignment */ | |
187 U8 zzz_align1; /*< 3: 1> alignment */ | |
188 } T_MEM_READY_IND; | |
189 #endif | |
190 | |
191 #ifndef __T_MEM_BUFFER__ | |
192 #define __T_MEM_BUFFER__ | |
193 /* | |
194 * | |
195 * CCDGEN:WriteStruct_Count==14845 | |
196 */ | |
197 typedef struct | |
198 { | |
199 U32 memory_pool_size; /*< 0: 4> Memory pool size */ | |
200 U32 allocated; /*< 4: 4> Parameter */ | |
201 U8 ordering; /*< 8: 1> Ordering */ | |
202 U8 delete_pending; /*< 9: 1> Parameter */ | |
203 U8 zzz_align0; /*< 10: 1> alignment */ | |
204 U8 zzz_align1; /*< 11: 1> alignment */ | |
205 U32 max_allocated; /*< 12: 4> Parameter */ | |
206 U32 fifo_read_index; /*< 16: 4> Parameter */ | |
207 U32 fifo_write_index; /*< 20: 4> Parameter */ | |
208 } T_MEM_BUFFER; | |
209 #endif | |
210 | |
211 | |
212 #include "CDG_LEAVE.h" | |
213 | |
214 | |
215 #endif | |
216 | |
217 | |
218 /*==== CONSTS ================================================================*/ | |
219 | |
220 #define MEM_READY_IND (0x8000408b) | |
221 #define MEM_BUFFER (0x8001408b) | |
222 | |
223 | |
224 #ifdef ENTITY_MEM | |
225 | |
226 #define VSI_CALLER mem_handle, | |
227 #define VSI_CALLER_SINGLE mem_handle | |
228 | |
229 #endif | |
230 | |
231 #define MEM_STATISTICS | |
232 | |
233 #define MAX_UPLINK_USERS 11 /* Maximum number of uplink buffer users. Corresponds */ | |
234 /* maxim number of available rab identifiers */ | |
235 #define MAX_RAB_ID 16 /* Maximum RAB identifier. Used in array declarations. 15+1 */ | |
236 #define RAB_TRANSMIT_BUFFER_SIZE_BYTES 500000 /* Uplink buffer size */ | |
237 #define MAX_SDU_SIZE 1520 | |
238 | |
239 | |
240 /*==== TYPES =================================================================*/ | |
241 | |
242 typedef struct | |
243 { | |
244 T_HANDLE comm_handle; /* Communication handle to user */ | |
245 U8 user_parameter; /* User defined parameter */ | |
246 U8 buffer_id; /* Id of buffer used by this user */ | |
247 | |
248 U32 low; /* Flow control low */ | |
249 U32 high; /* Flow control high */ | |
250 U32 max; /* Flow control max */ | |
251 U32 allocated; /* Allocated number of octets */ | |
252 | |
253 #ifdef MEM_STATISTICS | |
254 U32 max_allocated; /* Max number of octets allocated by user */ | |
255 #endif /* STATISTICS */ | |
256 | |
257 U16 space_before; /* Extra space to allocate before user data */ | |
258 U8 space_after; /* Extra space to allocate after user data */ | |
259 U8 ready; /* TRUE if ready to receive data from this user */ | |
260 U8 delete_pending; /* TRUE if user is to be deleted when all freed */ | |
261 | |
262 } T_MEM_USER; | |
263 | |
264 | |
265 typedef struct | |
266 { | |
267 U8* (*get_user_data) (U32 memory_handle, U16 *ptr_length); | |
268 U8 (*create_user) (U8 buffer_handle, U8 user_parameter, char *task_name); | |
269 U8 (*create_buffer) (U8 ordering, U32 memory_pool_size); | |
270 U8* (*alloc) (U8 user_handle, U16 length, U32 *ptr_handle); | |
271 void (*dealloc) (U32 memory_handle); | |
272 void (*delete_user) (U8 user_handle); | |
273 void (*delete_buffer) (U8 buffer_handle); | |
274 } T_MEM_PROPERTIES; | |
275 | |
276 /*==== EXPORTS ===============================================================*/ | |
277 | |
278 #ifdef MEM_PEI_C | |
279 | |
280 /* Task handle for MEM */ | |
281 T_HANDLE mem_handle; | |
282 | |
283 /* Semaphore used to guarantee exclusive access at critical points */ | |
284 T_HANDLE mem_semaphore_handle; | |
285 | |
286 /*T_MEM_BUFFER *mem_buffer[MEM_MAX_NUMBER_OF_BUFFERS];*/ | |
287 T_MEM_USER *mem_user[MEM_MAX_NUMBER_OF_USERS]; | |
288 | |
289 #else /* MEM_PEI_C */ | |
290 | |
291 extern T_HANDLE mem_handle; | |
292 extern T_HANDLE mem_semaphore_handle; | |
293 extern T_MEM_BUFFER *mem_buffer[MEM_MAX_NUMBER_OF_BUFFERS]; | |
294 extern T_MEM_USER *mem_user[MEM_MAX_NUMBER_OF_USERS]; | |
295 | |
296 #endif /* MEM_PEI_C */ | |
297 | |
298 extern U8 mem_create_buffer(U8 ordering, U32 memory_pool_size); | |
299 extern void mem_delete_buffer(U8 buffer_handle); | |
300 extern U8 mem_create_user(U8 buffer_handle, U8 user_parameter, char *task_name); | |
301 extern void mem_init(void); | |
302 extern void mem_delete_user(U8 user_handle); | |
303 extern U8 mem_create_uplink_user(char* task_name, U8 mem_rab_id); | |
304 extern void mem_delete_uplink_user(U8 user_handle); | |
305 extern void mem_adjust_uplink_users_flow_control(T_MEM_uplink_buffer_users_info *users_info[MEM_MAX_RAB_ID]); | |
306 extern void mem_configure_flow_control(U8 user_handle, U32 low, U32 high, U32 max); | |
307 extern void mem_configure_extra_space(U8 user_handle, U16 space_before, U8 space_after); | |
308 extern BOOL mem_ready(U8 user_handle); | |
309 extern U8 *mem_alloc(U8 user_handle, U16 length, U32 *ptr_handle); | |
310 extern void mem_dealloc(U32 memory_handle); | |
311 extern void mem_realloc(U32 memory_handle, U16 length); | |
312 extern U8 *mem_get_user_data(U32 memory_handle, U16 *ptr_length); | |
313 extern U16 mem_get_space_before(U32 memory_handle); | |
314 extern U8 mem_get_space_after(U32 memory_handle); | |
315 extern U8 *mem_decrease_space_before(U32 memory_handle, U16 delta_space_before, U16 *ptr_length); | |
316 extern void mem_increase_space_before(U32 memory_handle, U16 delta_space_before); | |
317 extern void mem_decrease_space_after(U32 memory_handle, U8 delta_space_after); | |
318 extern void mem_increase_space_after(U32 memory_handle, U8 delta_space_after); | |
319 extern void mem_send_ready_ind(T_HANDLE com_handle, U8 user_handle, U8 user_paramaeter); | |
320 | |
321 #endif /* MEM_H */ |