1 /***************************************************************************
2 * Copyright (c) 2024 Microsoft Corporation
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the MIT License which is available at
6 * https://opensource.org/licenses/MIT.
7 *
8 * SPDX-License-Identifier: MIT
9 **************************************************************************/
10
11
12 /**************************************************************************/
13 /**************************************************************************/
14 /** */
15 /** ThreadX Component */
16 /** */
17 /** Module Manager */
18 /** */
19 /**************************************************************************/
20 /**************************************************************************/
21
22 #ifndef TXM_BLOCK_ALLOCATE_CALL_NOT_USED
23 /* UINT _txe_block_allocate(
24 TX_BLOCK_POOL *pool_ptr, -> param_0
25 VOID **block_ptr, -> param_1
26 ULONG wait_option -> param_2
27 ); */
_txm_module_manager_tx_block_allocate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)28 static ALIGN_TYPE _txm_module_manager_tx_block_allocate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
29 {
30
31 ALIGN_TYPE return_value;
32
33 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
34 {
35 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
36 return(TXM_MODULE_INVALID_MEMORY);
37
38 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(VOID *)))
39 return(TXM_MODULE_INVALID_MEMORY);
40 }
41
42 return_value = (ALIGN_TYPE) _txe_block_allocate(
43 (TX_BLOCK_POOL *) param_0,
44 (VOID **) param_1,
45 (ULONG) param_2
46 );
47 return(return_value);
48 }
49 #endif
50
51 #ifndef TXM_BLOCK_POOL_CREATE_CALL_NOT_USED
52 /* UINT _txe_block_pool_create(
53 TX_BLOCK_POOL *pool_ptr, -> param_0
54 CHAR *name_ptr, -> param_1
55 ULONG block_size, -> extra_parameters[0]
56 VOID *pool_start, -> extra_parameters[1]
57 ULONG pool_size, -> extra_parameters[2]
58 UINT pool_control_block_size -> extra_parameters[3]
59 ); */
_txm_module_manager_tx_block_pool_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)60 static ALIGN_TYPE _txm_module_manager_tx_block_pool_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
61 {
62
63 ALIGN_TYPE return_value;
64
65 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
66 {
67 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
68 return(TXM_MODULE_INVALID_MEMORY);
69
70 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
71 return(TXM_MODULE_INVALID_MEMORY);
72
73 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
74 return(TXM_MODULE_INVALID_MEMORY);
75
76 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
77 return(TXM_MODULE_INVALID_MEMORY);
78 }
79
80 return_value = (ALIGN_TYPE) _txe_block_pool_create(
81 (TX_BLOCK_POOL *) param_0,
82 (CHAR *) param_1,
83 (ULONG) extra_parameters[0],
84 (VOID *) extra_parameters[1],
85 (ULONG) extra_parameters[2],
86 (UINT) extra_parameters[3]
87 );
88 return(return_value);
89 }
90 #endif
91
92 #ifndef TXM_BLOCK_POOL_DELETE_CALL_NOT_USED
93 /* UINT _txe_block_pool_delete(
94 TX_BLOCK_POOL *pool_ptr -> param_0
95 ); */
_txm_module_manager_tx_block_pool_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)96 static ALIGN_TYPE _txm_module_manager_tx_block_pool_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
97 {
98
99 ALIGN_TYPE return_value;
100
101 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
102 {
103 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
104 return(TXM_MODULE_INVALID_MEMORY);
105 }
106
107 return_value = (ALIGN_TYPE) _txe_block_pool_delete(
108 (TX_BLOCK_POOL *) param_0
109 );
110
111 /* Deallocate object memory. */
112 if (return_value == TX_SUCCESS)
113 {
114 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
115 }
116 return(return_value);
117 }
118 #endif
119
120 #ifndef TXM_BLOCK_POOL_INFO_GET_CALL_NOT_USED
121 /* UINT _txe_block_pool_info_get(
122 TX_BLOCK_POOL *pool_ptr, -> param_0
123 CHAR **name, -> param_1
124 ULONG *available_blocks, -> extra_parameters[0]
125 ULONG *total_blocks, -> extra_parameters[1]
126 TX_THREAD **first_suspended, -> extra_parameters[2]
127 ULONG *suspended_count, -> extra_parameters[3]
128 TX_BLOCK_POOL **next_pool -> extra_parameters[4]
129 ); */
_txm_module_manager_tx_block_pool_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)130 static ALIGN_TYPE _txm_module_manager_tx_block_pool_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
131 {
132
133 ALIGN_TYPE return_value;
134
135 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
136 {
137 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
138 return(TXM_MODULE_INVALID_MEMORY);
139
140 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
141 return(TXM_MODULE_INVALID_MEMORY);
142
143 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
144 return(TXM_MODULE_INVALID_MEMORY);
145
146 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
147 return(TXM_MODULE_INVALID_MEMORY);
148
149 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
150 return(TXM_MODULE_INVALID_MEMORY);
151
152 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(TX_THREAD *)))
153 return(TXM_MODULE_INVALID_MEMORY);
154
155 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
156 return(TXM_MODULE_INVALID_MEMORY);
157
158 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(TX_BLOCK_POOL *)))
159 return(TXM_MODULE_INVALID_MEMORY);
160 }
161
162 return_value = (ALIGN_TYPE) _txe_block_pool_info_get(
163 (TX_BLOCK_POOL *) param_0,
164 (CHAR **) param_1,
165 (ULONG *) extra_parameters[0],
166 (ULONG *) extra_parameters[1],
167 (TX_THREAD **) extra_parameters[2],
168 (ULONG *) extra_parameters[3],
169 (TX_BLOCK_POOL **) extra_parameters[4]
170 );
171 return(return_value);
172 }
173 #endif
174
175 #ifndef TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
176 /* UINT _tx_block_pool_performance_info_get(
177 TX_BLOCK_POOL *pool_ptr, -> param_0
178 ULONG *allocates, -> param_1
179 ULONG *releases, -> extra_parameters[0]
180 ULONG *suspensions, -> extra_parameters[1]
181 ULONG *timeouts -> extra_parameters[2]
182 ); */
_txm_module_manager_tx_block_pool_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)183 static ALIGN_TYPE _txm_module_manager_tx_block_pool_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
184 {
185
186 ALIGN_TYPE return_value;
187
188 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
189 {
190 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
191 return(TXM_MODULE_INVALID_MEMORY);
192
193 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
194 return(TXM_MODULE_INVALID_MEMORY);
195
196 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
197 return(TXM_MODULE_INVALID_MEMORY);
198
199 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
200 return(TXM_MODULE_INVALID_MEMORY);
201
202 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
203 return(TXM_MODULE_INVALID_MEMORY);
204
205 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
206 return(TXM_MODULE_INVALID_MEMORY);
207 }
208
209 return_value = (ALIGN_TYPE) _tx_block_pool_performance_info_get(
210 (TX_BLOCK_POOL *) param_0,
211 (ULONG *) param_1,
212 (ULONG *) extra_parameters[0],
213 (ULONG *) extra_parameters[1],
214 (ULONG *) extra_parameters[2]
215 );
216 return(return_value);
217 }
218 #endif
219
220 #ifndef TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
221 /* UINT _tx_block_pool_performance_system_info_get(
222 ULONG *allocates, -> param_0
223 ULONG *releases, -> param_1
224 ULONG *suspensions, -> extra_parameters[0]
225 ULONG *timeouts -> extra_parameters[1]
226 ); */
_txm_module_manager_tx_block_pool_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)227 static ALIGN_TYPE _txm_module_manager_tx_block_pool_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
228 {
229
230 ALIGN_TYPE return_value;
231
232 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
233 {
234 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
235 return(TXM_MODULE_INVALID_MEMORY);
236
237 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
238 return(TXM_MODULE_INVALID_MEMORY);
239
240 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
241 return(TXM_MODULE_INVALID_MEMORY);
242
243 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
244 return(TXM_MODULE_INVALID_MEMORY);
245
246 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
247 return(TXM_MODULE_INVALID_MEMORY);
248 }
249
250 return_value = (ALIGN_TYPE) _tx_block_pool_performance_system_info_get(
251 (ULONG *) param_0,
252 (ULONG *) param_1,
253 (ULONG *) extra_parameters[0],
254 (ULONG *) extra_parameters[1]
255 );
256 return(return_value);
257 }
258 #endif
259
260 #ifndef TXM_BLOCK_POOL_PRIORITIZE_CALL_NOT_USED
261 /* UINT _txe_block_pool_prioritize(
262 TX_BLOCK_POOL *pool_ptr -> param_0
263 ); */
_txm_module_manager_tx_block_pool_prioritize_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)264 static ALIGN_TYPE _txm_module_manager_tx_block_pool_prioritize_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
265 {
266
267 ALIGN_TYPE return_value;
268
269 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
270 {
271 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BLOCK_POOL)))
272 return(TXM_MODULE_INVALID_MEMORY);
273 }
274
275 return_value = (ALIGN_TYPE) _txe_block_pool_prioritize(
276 (TX_BLOCK_POOL *) param_0
277 );
278 return(return_value);
279 }
280 #endif
281
282 #ifndef TXM_BLOCK_RELEASE_CALL_NOT_USED
283 /* UINT _txe_block_release(
284 VOID *block_ptr -> param_0
285 ); */
_txm_module_manager_tx_block_release_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)286 static ALIGN_TYPE _txm_module_manager_tx_block_release_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
287 {
288
289 ALIGN_TYPE return_value;
290 ALIGN_TYPE block_header_start;
291
292 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
293 {
294 /* Is the pointer non-null? */
295 if ((void *) param_0 != TX_NULL)
296 {
297
298 /* Calculate the beginning of the header info for this block (the header
299 consists of 1 pointers. */
300 block_header_start = param_0 - sizeof(ALIGN_TYPE);
301
302 if (/* Did we underflow when doing the subtract? */
303 (block_header_start > param_0) ||
304 /* Ensure the pointer is inside the module's data. Note that we only
305 check the pointer in the header because only that pointer is
306 dereferenced during the pointer's validity check in _tx_block_release. */
307 (!TXM_MODULE_MANAGER_CHECK_INSIDE_DATA(module_instance, block_header_start, sizeof(ALIGN_TYPE))))
308 {
309
310 /* Invalid pointer. */
311 return(TXM_MODULE_INVALID_MEMORY);
312 }
313 }
314 }
315
316 return_value = (ALIGN_TYPE) _txe_block_release(
317 (VOID *) param_0
318 );
319 return(return_value);
320 }
321 #endif
322
323 #ifndef TXM_BYTE_ALLOCATE_CALL_NOT_USED
324 /* UINT _txe_byte_allocate(
325 TX_BYTE_POOL *pool_ptr, -> param_0
326 VOID **memory_ptr, -> param_1
327 ULONG memory_size, -> extra_parameters[0]
328 ULONG wait_option -> extra_parameters[1]
329 ); */
_txm_module_manager_tx_byte_allocate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)330 static ALIGN_TYPE _txm_module_manager_tx_byte_allocate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
331 {
332
333 ALIGN_TYPE return_value;
334
335 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
336 {
337 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BYTE_POOL)))
338 return(TXM_MODULE_INVALID_MEMORY);
339
340 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(VOID *)))
341 return(TXM_MODULE_INVALID_MEMORY);
342
343 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
344 return(TXM_MODULE_INVALID_MEMORY);
345 }
346
347 return_value = (ALIGN_TYPE) _txe_byte_allocate(
348 (TX_BYTE_POOL *) param_0,
349 (VOID **) param_1,
350 (ULONG) extra_parameters[0],
351 (ULONG) extra_parameters[1]
352 );
353 return(return_value);
354 }
355 #endif
356
357 #ifndef TXM_BYTE_POOL_CREATE_CALL_NOT_USED
358 /* UINT _txe_byte_pool_create(
359 TX_BYTE_POOL *pool_ptr, -> param_0
360 CHAR *name_ptr, -> param_1
361 VOID *pool_start, -> extra_parameters[0]
362 ULONG pool_size, -> extra_parameters[1]
363 UINT pool_control_block_size -> extra_parameters[2]
364 ); */
_txm_module_manager_tx_byte_pool_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)365 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
366 {
367
368 ALIGN_TYPE return_value;
369
370 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
371 {
372 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_BYTE_POOL)))
373 return(TXM_MODULE_INVALID_MEMORY);
374
375 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
376 return(TXM_MODULE_INVALID_MEMORY);
377
378 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
379 return(TXM_MODULE_INVALID_MEMORY);
380
381 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], extra_parameters[1]))
382 return(TXM_MODULE_INVALID_MEMORY);
383 }
384
385 return_value = (ALIGN_TYPE) _txe_byte_pool_create(
386 (TX_BYTE_POOL *) param_0,
387 (CHAR *) param_1,
388 (VOID *) extra_parameters[0],
389 (ULONG) extra_parameters[1],
390 (UINT) extra_parameters[2]
391 );
392 return(return_value);
393 }
394 #endif
395
396 #ifndef TXM_BYTE_POOL_DELETE_CALL_NOT_USED
397 /* UINT _txe_byte_pool_delete(
398 TX_BYTE_POOL *pool_ptr -> param_0
399 ); */
_txm_module_manager_tx_byte_pool_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)400 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
401 {
402
403 ALIGN_TYPE return_value;
404
405 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
406 {
407 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BYTE_POOL)))
408 return(TXM_MODULE_INVALID_MEMORY);
409 }
410
411 return_value = (ALIGN_TYPE) _txe_byte_pool_delete(
412 (TX_BYTE_POOL *) param_0
413 );
414
415 /* Deallocate object memory. */
416 if (return_value == TX_SUCCESS)
417 {
418 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
419 }
420 return(return_value);
421 }
422 #endif
423
424 #ifndef TXM_BYTE_POOL_INFO_GET_CALL_NOT_USED
425 /* UINT _txe_byte_pool_info_get(
426 TX_BYTE_POOL *pool_ptr, -> param_0
427 CHAR **name, -> param_1
428 ULONG *available_bytes, -> extra_parameters[0]
429 ULONG *fragments, -> extra_parameters[1]
430 TX_THREAD **first_suspended, -> extra_parameters[2]
431 ULONG *suspended_count, -> extra_parameters[3]
432 TX_BYTE_POOL **next_pool -> extra_parameters[4]
433 ); */
_txm_module_manager_tx_byte_pool_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)434 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
435 {
436
437 ALIGN_TYPE return_value;
438
439 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
440 {
441 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BYTE_POOL)))
442 return(TXM_MODULE_INVALID_MEMORY);
443
444 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
445 return(TXM_MODULE_INVALID_MEMORY);
446
447 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
448 return(TXM_MODULE_INVALID_MEMORY);
449
450 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
451 return(TXM_MODULE_INVALID_MEMORY);
452
453 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
454 return(TXM_MODULE_INVALID_MEMORY);
455
456 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(TX_THREAD *)))
457 return(TXM_MODULE_INVALID_MEMORY);
458
459 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
460 return(TXM_MODULE_INVALID_MEMORY);
461
462 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(TX_BYTE_POOL *)))
463 return(TXM_MODULE_INVALID_MEMORY);
464 }
465
466 return_value = (ALIGN_TYPE) _txe_byte_pool_info_get(
467 (TX_BYTE_POOL *) param_0,
468 (CHAR **) param_1,
469 (ULONG *) extra_parameters[0],
470 (ULONG *) extra_parameters[1],
471 (TX_THREAD **) extra_parameters[2],
472 (ULONG *) extra_parameters[3],
473 (TX_BYTE_POOL **) extra_parameters[4]
474 );
475 return(return_value);
476 }
477 #endif
478
479 #ifndef TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
480 /* UINT _tx_byte_pool_performance_info_get(
481 TX_BYTE_POOL *pool_ptr, -> param_0
482 ULONG *allocates, -> param_1
483 ULONG *releases, -> extra_parameters[0]
484 ULONG *fragments_searched, -> extra_parameters[1]
485 ULONG *merges, -> extra_parameters[2]
486 ULONG *splits, -> extra_parameters[3]
487 ULONG *suspensions, -> extra_parameters[4]
488 ULONG *timeouts -> extra_parameters[5]
489 ); */
_txm_module_manager_tx_byte_pool_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)490 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
491 {
492
493 ALIGN_TYPE return_value;
494
495 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
496 {
497 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BYTE_POOL)))
498 return(TXM_MODULE_INVALID_MEMORY);
499
500 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
501 return(TXM_MODULE_INVALID_MEMORY);
502
503 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[6])))
504 return(TXM_MODULE_INVALID_MEMORY);
505
506 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
507 return(TXM_MODULE_INVALID_MEMORY);
508
509 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
510 return(TXM_MODULE_INVALID_MEMORY);
511
512 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
513 return(TXM_MODULE_INVALID_MEMORY);
514
515 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
516 return(TXM_MODULE_INVALID_MEMORY);
517
518 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
519 return(TXM_MODULE_INVALID_MEMORY);
520
521 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[5], sizeof(ULONG)))
522 return(TXM_MODULE_INVALID_MEMORY);
523 }
524
525 return_value = (ALIGN_TYPE) _tx_byte_pool_performance_info_get(
526 (TX_BYTE_POOL *) param_0,
527 (ULONG *) param_1,
528 (ULONG *) extra_parameters[0],
529 (ULONG *) extra_parameters[1],
530 (ULONG *) extra_parameters[2],
531 (ULONG *) extra_parameters[3],
532 (ULONG *) extra_parameters[4],
533 (ULONG *) extra_parameters[5]
534 );
535 return(return_value);
536 }
537 #endif
538
539 #ifndef TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
540 /* UINT _tx_byte_pool_performance_system_info_get(
541 ULONG *allocates, -> param_0
542 ULONG *releases, -> param_1
543 ULONG *fragments_searched, -> extra_parameters[0]
544 ULONG *merges, -> extra_parameters[1]
545 ULONG *splits, -> extra_parameters[2]
546 ULONG *suspensions, -> extra_parameters[3]
547 ULONG *timeouts -> extra_parameters[4]
548 ); */
_txm_module_manager_tx_byte_pool_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)549 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
550 {
551
552 ALIGN_TYPE return_value;
553
554 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
555 {
556 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
557 return(TXM_MODULE_INVALID_MEMORY);
558
559 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
560 return(TXM_MODULE_INVALID_MEMORY);
561
562 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
563 return(TXM_MODULE_INVALID_MEMORY);
564
565 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
566 return(TXM_MODULE_INVALID_MEMORY);
567
568 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
569 return(TXM_MODULE_INVALID_MEMORY);
570
571 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
572 return(TXM_MODULE_INVALID_MEMORY);
573
574 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
575 return(TXM_MODULE_INVALID_MEMORY);
576
577 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
578 return(TXM_MODULE_INVALID_MEMORY);
579 }
580
581 return_value = (ALIGN_TYPE) _tx_byte_pool_performance_system_info_get(
582 (ULONG *) param_0,
583 (ULONG *) param_1,
584 (ULONG *) extra_parameters[0],
585 (ULONG *) extra_parameters[1],
586 (ULONG *) extra_parameters[2],
587 (ULONG *) extra_parameters[3],
588 (ULONG *) extra_parameters[4]
589 );
590 return(return_value);
591 }
592 #endif
593
594 #ifndef TXM_BYTE_POOL_PRIORITIZE_CALL_NOT_USED
595 /* UINT _txe_byte_pool_prioritize(
596 TX_BYTE_POOL *pool_ptr -> param_0
597 ); */
_txm_module_manager_tx_byte_pool_prioritize_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)598 static ALIGN_TYPE _txm_module_manager_tx_byte_pool_prioritize_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
599 {
600
601 ALIGN_TYPE return_value;
602
603 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
604 {
605 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_BYTE_POOL)))
606 return(TXM_MODULE_INVALID_MEMORY);
607 }
608
609 return_value = (ALIGN_TYPE) _txe_byte_pool_prioritize(
610 (TX_BYTE_POOL *) param_0
611 );
612 return(return_value);
613 }
614 #endif
615
616 #ifndef TXM_BYTE_RELEASE_CALL_NOT_USED
617 /* UINT _txe_byte_release(
618 VOID *memory_ptr -> param_0
619 ); */
_txm_module_manager_tx_byte_release_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)620 static ALIGN_TYPE _txm_module_manager_tx_byte_release_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
621 {
622
623 ALIGN_TYPE return_value;
624 ALIGN_TYPE block_header_start;
625
626 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
627 {
628 /* Is the pointer non-null? */
629 if ((void *) param_0 != TX_NULL)
630 {
631
632 /* Calculate the beginning of the header info for this block (the header
633 consists of 2 pointers). */
634 block_header_start = param_0 - 2*sizeof(ALIGN_TYPE);
635
636 if (/* Did we underflow when doing the subtract? */
637 (block_header_start > param_0) ||
638 /* Ensure the pointer is inside the module's data. Note that we only
639 check the pointers in the header because only those two are
640 dereferenced during the pointer's validity check in _tx_byte_release. */
641 (!TXM_MODULE_MANAGER_CHECK_INSIDE_DATA(module_instance, block_header_start, 2*sizeof(ALIGN_TYPE))))
642 {
643
644 /* Invalid pointer. */
645 return(TXM_MODULE_INVALID_MEMORY);
646 }
647 }
648 }
649
650 return_value = (ALIGN_TYPE) _txe_byte_release(
651 (VOID *) param_0
652 );
653 return(return_value);
654 }
655 #endif
656
657 #ifndef TXM_EVENT_FLAGS_CREATE_CALL_NOT_USED
658 /* UINT _txe_event_flags_create(
659 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
660 CHAR *name_ptr, -> param_1
661 UINT event_control_block_size -> param_2
662 ); */
_txm_module_manager_tx_event_flags_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)663 static ALIGN_TYPE _txm_module_manager_tx_event_flags_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
664 {
665
666 ALIGN_TYPE return_value;
667
668 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
669 {
670 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
671 return(TXM_MODULE_INVALID_MEMORY);
672
673 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
674 return(TXM_MODULE_INVALID_MEMORY);
675 }
676
677 return_value = (ALIGN_TYPE) _txe_event_flags_create(
678 (TX_EVENT_FLAGS_GROUP *) param_0,
679 (CHAR *) param_1,
680 (UINT) param_2
681 );
682 return(return_value);
683 }
684 #endif
685
686 #ifndef TXM_EVENT_FLAGS_DELETE_CALL_NOT_USED
687 /* UINT _txe_event_flags_delete(
688 TX_EVENT_FLAGS_GROUP *group_ptr -> param_0
689 ); */
_txm_module_manager_tx_event_flags_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)690 static ALIGN_TYPE _txm_module_manager_tx_event_flags_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
691 {
692
693 ALIGN_TYPE return_value;
694
695 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
696 {
697 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
698 return(TXM_MODULE_INVALID_MEMORY);
699 }
700
701 return_value = (ALIGN_TYPE) _txe_event_flags_delete(
702 (TX_EVENT_FLAGS_GROUP *) param_0
703 );
704
705 /* Deallocate object memory. */
706 if (return_value == TX_SUCCESS)
707 {
708 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
709 }
710 return(return_value);
711 }
712 #endif
713
714 #ifndef TXM_EVENT_FLAGS_GET_CALL_NOT_USED
715 /* UINT _txe_event_flags_get(
716 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
717 ULONG requested_flags, -> param_1
718 UINT get_option, -> extra_parameters[0]
719 ULONG *actual_flags_ptr, -> extra_parameters[1]
720 ULONG wait_option -> extra_parameters[2]
721 ); */
_txm_module_manager_tx_event_flags_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)722 static ALIGN_TYPE _txm_module_manager_tx_event_flags_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
723 {
724
725 ALIGN_TYPE return_value;
726
727 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
728 {
729 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
730 return(TXM_MODULE_INVALID_MEMORY);
731
732 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
733 return(TXM_MODULE_INVALID_MEMORY);
734
735 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
736 return(TXM_MODULE_INVALID_MEMORY);
737 }
738
739 return_value = (ALIGN_TYPE) _txe_event_flags_get(
740 (TX_EVENT_FLAGS_GROUP *) param_0,
741 (ULONG) param_1,
742 (UINT) extra_parameters[0],
743 (ULONG *) extra_parameters[1],
744 (ULONG) extra_parameters[2]
745 );
746 return(return_value);
747 }
748 #endif
749
750 #ifndef TXM_EVENT_FLAGS_INFO_GET_CALL_NOT_USED
751 /* UINT _txe_event_flags_info_get(
752 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
753 CHAR **name, -> param_1
754 ULONG *current_flags, -> extra_parameters[0]
755 TX_THREAD **first_suspended, -> extra_parameters[1]
756 ULONG *suspended_count, -> extra_parameters[2]
757 TX_EVENT_FLAGS_GROUP **next_group -> extra_parameters[3]
758 ); */
_txm_module_manager_tx_event_flags_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)759 static ALIGN_TYPE _txm_module_manager_tx_event_flags_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
760 {
761
762 ALIGN_TYPE return_value;
763
764 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
765 {
766 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
767 return(TXM_MODULE_INVALID_MEMORY);
768
769 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
770 return(TXM_MODULE_INVALID_MEMORY);
771
772 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
773 return(TXM_MODULE_INVALID_MEMORY);
774
775 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
776 return(TXM_MODULE_INVALID_MEMORY);
777
778 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(TX_THREAD *)))
779 return(TXM_MODULE_INVALID_MEMORY);
780
781 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
782 return(TXM_MODULE_INVALID_MEMORY);
783
784 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(TX_EVENT_FLAGS_GROUP *)))
785 return(TXM_MODULE_INVALID_MEMORY);
786 }
787
788 return_value = (ALIGN_TYPE) _txe_event_flags_info_get(
789 (TX_EVENT_FLAGS_GROUP *) param_0,
790 (CHAR **) param_1,
791 (ULONG *) extra_parameters[0],
792 (TX_THREAD **) extra_parameters[1],
793 (ULONG *) extra_parameters[2],
794 (TX_EVENT_FLAGS_GROUP **) extra_parameters[3]
795 );
796 return(return_value);
797 }
798 #endif
799
800 #ifndef TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL_NOT_USED
801 /* UINT _tx_event_flags_performance_info_get(
802 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
803 ULONG *sets, -> param_1
804 ULONG *gets, -> extra_parameters[0]
805 ULONG *suspensions, -> extra_parameters[1]
806 ULONG *timeouts -> extra_parameters[2]
807 ); */
_txm_module_manager_tx_event_flags_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)808 static ALIGN_TYPE _txm_module_manager_tx_event_flags_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
809 {
810
811 ALIGN_TYPE return_value;
812
813 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
814 {
815 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
816 return(TXM_MODULE_INVALID_MEMORY);
817
818 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
819 return(TXM_MODULE_INVALID_MEMORY);
820
821 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
822 return(TXM_MODULE_INVALID_MEMORY);
823
824 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
825 return(TXM_MODULE_INVALID_MEMORY);
826
827 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
828 return(TXM_MODULE_INVALID_MEMORY);
829
830 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
831 return(TXM_MODULE_INVALID_MEMORY);
832 }
833
834 return_value = (ALIGN_TYPE) _tx_event_flags_performance_info_get(
835 (TX_EVENT_FLAGS_GROUP *) param_0,
836 (ULONG *) param_1,
837 (ULONG *) extra_parameters[0],
838 (ULONG *) extra_parameters[1],
839 (ULONG *) extra_parameters[2]
840 );
841 return(return_value);
842 }
843 #endif
844
845 #ifndef TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
846 /* UINT _tx_event_flags_performance_system_info_get(
847 ULONG *sets, -> param_0
848 ULONG *gets, -> param_1
849 ULONG *suspensions, -> extra_parameters[0]
850 ULONG *timeouts -> extra_parameters[1]
851 ); */
_txm_module_manager_tx_event_flags_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)852 static ALIGN_TYPE _txm_module_manager_tx_event_flags_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
853 {
854
855 ALIGN_TYPE return_value;
856
857 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
858 {
859 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
860 return(TXM_MODULE_INVALID_MEMORY);
861
862 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
863 return(TXM_MODULE_INVALID_MEMORY);
864
865 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
866 return(TXM_MODULE_INVALID_MEMORY);
867
868 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
869 return(TXM_MODULE_INVALID_MEMORY);
870
871 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
872 return(TXM_MODULE_INVALID_MEMORY);
873 }
874
875 return_value = (ALIGN_TYPE) _tx_event_flags_performance_system_info_get(
876 (ULONG *) param_0,
877 (ULONG *) param_1,
878 (ULONG *) extra_parameters[0],
879 (ULONG *) extra_parameters[1]
880 );
881 return(return_value);
882 }
883 #endif
884
885 #ifndef TXM_EVENT_FLAGS_SET_CALL_NOT_USED
886 /* UINT _txe_event_flags_set(
887 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
888 ULONG flags_to_set, -> param_1
889 UINT set_option -> param_2
890 ); */
_txm_module_manager_tx_event_flags_set_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)891 static ALIGN_TYPE _txm_module_manager_tx_event_flags_set_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
892 {
893
894 ALIGN_TYPE return_value;
895
896 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
897 {
898 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
899 return(TXM_MODULE_INVALID_MEMORY);
900 }
901
902 return_value = (ALIGN_TYPE) _txe_event_flags_set(
903 (TX_EVENT_FLAGS_GROUP *) param_0,
904 (ULONG) param_1,
905 (UINT) param_2
906 );
907 return(return_value);
908 }
909 #endif
910
911 #ifndef TXM_EVENT_FLAGS_SET_NOTIFY_CALL_NOT_USED
912 /* UINT _txe_event_flags_set_notify(
913 TX_EVENT_FLAGS_GROUP *group_ptr, -> param_0
914 VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *) -> param_1
915 ); */
_txm_module_manager_tx_event_flags_set_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)916 static ALIGN_TYPE _txm_module_manager_tx_event_flags_set_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
917 {
918
919 ALIGN_TYPE return_value;
920 TX_EVENT_FLAGS_GROUP *event_flags_ptr = (TX_EVENT_FLAGS_GROUP *)param_0;
921 VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *);
922
923 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
924 {
925 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_EVENT_FLAGS_GROUP)))
926 return(TXM_MODULE_INVALID_MEMORY);
927
928 /* Since we need to write to the object, ensure it's valid. */
929 if ((event_flags_ptr == TX_NULL) || (event_flags_ptr -> tx_event_flags_group_id != TX_EVENT_FLAGS_ID))
930 return(TX_GROUP_ERROR);
931 }
932
933 /* Is it a disable request? */
934 if ((void *) param_1 == TX_NULL)
935 {
936
937 /* Clear the callback. */
938 events_set_notify = (VOID (*)(TX_EVENT_FLAGS_GROUP *)) TX_NULL;
939 }
940 else
941 {
942
943 /* Setup trampoline values. */
944 event_flags_ptr -> tx_event_flags_group_module_instance = (VOID *) module_instance;
945 event_flags_ptr -> tx_event_flags_group_set_module_notify = (VOID (*)(TX_EVENT_FLAGS_GROUP *)) param_1;
946 events_set_notify = _txm_module_manager_event_flags_notify_trampoline;
947 }
948
949 return_value = (ALIGN_TYPE) _txe_event_flags_set_notify(
950 (TX_EVENT_FLAGS_GROUP *) param_0,
951 (VOID (*)(TX_EVENT_FLAGS_GROUP *)) events_set_notify
952 );
953 return(return_value);
954 }
955 #endif
956
957 #ifndef TXM_MUTEX_CREATE_CALL_NOT_USED
958 /* UINT _txe_mutex_create(
959 TX_MUTEX *mutex_ptr, -> param_0
960 CHAR *name_ptr, -> param_1
961 UINT inherit, -> extra_parameters[0]
962 UINT mutex_control_block_size -> extra_parameters[1]
963 ); */
_txm_module_manager_tx_mutex_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)964 static ALIGN_TYPE _txm_module_manager_tx_mutex_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
965 {
966
967 ALIGN_TYPE return_value;
968
969 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
970 {
971 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_MUTEX)))
972 return(TXM_MODULE_INVALID_MEMORY);
973
974 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
975 return(TXM_MODULE_INVALID_MEMORY);
976
977 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
978 return(TXM_MODULE_INVALID_MEMORY);
979 }
980
981 return_value = (ALIGN_TYPE) _txe_mutex_create(
982 (TX_MUTEX *) param_0,
983 (CHAR *) param_1,
984 (UINT) extra_parameters[0],
985 (UINT) extra_parameters[1]
986 );
987 return(return_value);
988 }
989 #endif
990
991 #ifndef TXM_MUTEX_DELETE_CALL_NOT_USED
992 /* UINT _txe_mutex_delete(
993 TX_MUTEX *mutex_ptr -> param_0
994 ); */
_txm_module_manager_tx_mutex_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)995 static ALIGN_TYPE _txm_module_manager_tx_mutex_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
996 {
997
998 ALIGN_TYPE return_value;
999
1000 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1001 {
1002 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1003 return(TXM_MODULE_INVALID_MEMORY);
1004 }
1005
1006 return_value = (ALIGN_TYPE) _txe_mutex_delete(
1007 (TX_MUTEX *) param_0
1008 );
1009
1010 /* Deallocate object memory. */
1011 if (return_value == TX_SUCCESS)
1012 {
1013 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
1014 }
1015 return(return_value);
1016 }
1017 #endif
1018
1019 #ifndef TXM_MUTEX_GET_CALL_NOT_USED
1020 /* UINT _txe_mutex_get(
1021 TX_MUTEX *mutex_ptr, -> param_0
1022 ULONG wait_option -> param_1
1023 ); */
_txm_module_manager_tx_mutex_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)1024 static ALIGN_TYPE _txm_module_manager_tx_mutex_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
1025 {
1026
1027 ALIGN_TYPE return_value;
1028
1029 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1030 {
1031 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1032 return(TXM_MODULE_INVALID_MEMORY);
1033 }
1034
1035 return_value = (ALIGN_TYPE) _txe_mutex_get(
1036 (TX_MUTEX *) param_0,
1037 (ULONG) param_1
1038 );
1039 return(return_value);
1040 }
1041 #endif
1042
1043 #ifndef TXM_MUTEX_INFO_GET_CALL_NOT_USED
1044 /* UINT _txe_mutex_info_get(
1045 TX_MUTEX *mutex_ptr, -> param_0
1046 CHAR **name, -> param_1
1047 ULONG *count, -> extra_parameters[0]
1048 TX_THREAD **owner, -> extra_parameters[1]
1049 TX_THREAD **first_suspended, -> extra_parameters[2]
1050 ULONG *suspended_count, -> extra_parameters[3]
1051 TX_MUTEX **next_mutex -> extra_parameters[4]
1052 ); */
_txm_module_manager_tx_mutex_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1053 static ALIGN_TYPE _txm_module_manager_tx_mutex_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1054 {
1055
1056 ALIGN_TYPE return_value;
1057
1058 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1059 {
1060 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1061 return(TXM_MODULE_INVALID_MEMORY);
1062
1063 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
1064 return(TXM_MODULE_INVALID_MEMORY);
1065
1066 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
1067 return(TXM_MODULE_INVALID_MEMORY);
1068
1069 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1070 return(TXM_MODULE_INVALID_MEMORY);
1071
1072 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(TX_THREAD *)))
1073 return(TXM_MODULE_INVALID_MEMORY);
1074
1075 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(TX_THREAD *)))
1076 return(TXM_MODULE_INVALID_MEMORY);
1077
1078 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1079 return(TXM_MODULE_INVALID_MEMORY);
1080
1081 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(TX_MUTEX *)))
1082 return(TXM_MODULE_INVALID_MEMORY);
1083 }
1084
1085 return_value = (ALIGN_TYPE) _txe_mutex_info_get(
1086 (TX_MUTEX *) param_0,
1087 (CHAR **) param_1,
1088 (ULONG *) extra_parameters[0],
1089 (TX_THREAD **) extra_parameters[1],
1090 (TX_THREAD **) extra_parameters[2],
1091 (ULONG *) extra_parameters[3],
1092 (TX_MUTEX **) extra_parameters[4]
1093 );
1094 return(return_value);
1095 }
1096 #endif
1097
1098 #ifndef TXM_MUTEX_PERFORMANCE_INFO_GET_CALL_NOT_USED
1099 /* UINT _tx_mutex_performance_info_get(
1100 TX_MUTEX *mutex_ptr, -> param_0
1101 ULONG *puts, -> param_1
1102 ULONG *gets, -> extra_parameters[0]
1103 ULONG *suspensions, -> extra_parameters[1]
1104 ULONG *timeouts, -> extra_parameters[2]
1105 ULONG *inversions, -> extra_parameters[3]
1106 ULONG *inheritances -> extra_parameters[4]
1107 ); */
_txm_module_manager_tx_mutex_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1108 static ALIGN_TYPE _txm_module_manager_tx_mutex_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1109 {
1110
1111 ALIGN_TYPE return_value;
1112
1113 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1114 {
1115 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1116 return(TXM_MODULE_INVALID_MEMORY);
1117
1118 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1119 return(TXM_MODULE_INVALID_MEMORY);
1120
1121 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
1122 return(TXM_MODULE_INVALID_MEMORY);
1123
1124 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1125 return(TXM_MODULE_INVALID_MEMORY);
1126
1127 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1128 return(TXM_MODULE_INVALID_MEMORY);
1129
1130 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1131 return(TXM_MODULE_INVALID_MEMORY);
1132
1133 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1134 return(TXM_MODULE_INVALID_MEMORY);
1135
1136 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
1137 return(TXM_MODULE_INVALID_MEMORY);
1138 }
1139
1140 return_value = (ALIGN_TYPE) _tx_mutex_performance_info_get(
1141 (TX_MUTEX *) param_0,
1142 (ULONG *) param_1,
1143 (ULONG *) extra_parameters[0],
1144 (ULONG *) extra_parameters[1],
1145 (ULONG *) extra_parameters[2],
1146 (ULONG *) extra_parameters[3],
1147 (ULONG *) extra_parameters[4]
1148 );
1149 return(return_value);
1150 }
1151 #endif
1152
1153 #ifndef TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
1154 /* UINT _tx_mutex_performance_system_info_get(
1155 ULONG *puts, -> param_0
1156 ULONG *gets, -> param_1
1157 ULONG *suspensions, -> extra_parameters[0]
1158 ULONG *timeouts, -> extra_parameters[1]
1159 ULONG *inversions, -> extra_parameters[2]
1160 ULONG *inheritances -> extra_parameters[3]
1161 ); */
_txm_module_manager_tx_mutex_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1162 static ALIGN_TYPE _txm_module_manager_tx_mutex_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1163 {
1164
1165 ALIGN_TYPE return_value;
1166
1167 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1168 {
1169 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
1170 return(TXM_MODULE_INVALID_MEMORY);
1171
1172 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1173 return(TXM_MODULE_INVALID_MEMORY);
1174
1175 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
1176 return(TXM_MODULE_INVALID_MEMORY);
1177
1178 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1179 return(TXM_MODULE_INVALID_MEMORY);
1180
1181 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1182 return(TXM_MODULE_INVALID_MEMORY);
1183
1184 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1185 return(TXM_MODULE_INVALID_MEMORY);
1186
1187 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1188 return(TXM_MODULE_INVALID_MEMORY);
1189 }
1190
1191 return_value = (ALIGN_TYPE) _tx_mutex_performance_system_info_get(
1192 (ULONG *) param_0,
1193 (ULONG *) param_1,
1194 (ULONG *) extra_parameters[0],
1195 (ULONG *) extra_parameters[1],
1196 (ULONG *) extra_parameters[2],
1197 (ULONG *) extra_parameters[3]
1198 );
1199 return(return_value);
1200 }
1201 #endif
1202
1203 #ifndef TXM_MUTEX_PRIORITIZE_CALL_NOT_USED
1204 /* UINT _txe_mutex_prioritize(
1205 TX_MUTEX *mutex_ptr -> param_0
1206 ); */
_txm_module_manager_tx_mutex_prioritize_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1207 static ALIGN_TYPE _txm_module_manager_tx_mutex_prioritize_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1208 {
1209
1210 ALIGN_TYPE return_value;
1211
1212 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1213 {
1214 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1215 return(TXM_MODULE_INVALID_MEMORY);
1216 }
1217
1218 return_value = (ALIGN_TYPE) _txe_mutex_prioritize(
1219 (TX_MUTEX *) param_0
1220 );
1221 return(return_value);
1222 }
1223 #endif
1224
1225 #ifndef TXM_MUTEX_PUT_CALL_NOT_USED
1226 /* UINT _txe_mutex_put(
1227 TX_MUTEX *mutex_ptr -> param_0
1228 ); */
_txm_module_manager_tx_mutex_put_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1229 static ALIGN_TYPE _txm_module_manager_tx_mutex_put_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1230 {
1231
1232 ALIGN_TYPE return_value;
1233
1234 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1235 {
1236 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_MUTEX)))
1237 return(TXM_MODULE_INVALID_MEMORY);
1238 }
1239
1240 return_value = (ALIGN_TYPE) _txe_mutex_put(
1241 (TX_MUTEX *) param_0
1242 );
1243 return(return_value);
1244 }
1245 #endif
1246
1247 #ifndef TXM_QUEUE_CREATE_CALL_NOT_USED
1248 /* UINT _txe_queue_create(
1249 TX_QUEUE *queue_ptr, -> param_0
1250 CHAR *name_ptr, -> param_1
1251 UINT message_size, -> extra_parameters[0]
1252 VOID *queue_start, -> extra_parameters[1]
1253 ULONG queue_size, -> extra_parameters[2]
1254 UINT queue_control_block_size -> extra_parameters[3]
1255 ); */
_txm_module_manager_tx_queue_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1256 static ALIGN_TYPE _txm_module_manager_tx_queue_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1257 {
1258
1259 ALIGN_TYPE return_value;
1260
1261 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1262 {
1263 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_QUEUE)))
1264 return(TXM_MODULE_INVALID_MEMORY);
1265
1266 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
1267 return(TXM_MODULE_INVALID_MEMORY);
1268
1269 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
1270 return(TXM_MODULE_INVALID_MEMORY);
1271
1272 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], extra_parameters[2]))
1273 return(TXM_MODULE_INVALID_MEMORY);
1274 }
1275
1276 return_value = (ALIGN_TYPE) _txe_queue_create(
1277 (TX_QUEUE *) param_0,
1278 (CHAR *) param_1,
1279 (UINT) extra_parameters[0],
1280 (VOID *) extra_parameters[1],
1281 (ULONG) extra_parameters[2],
1282 (UINT) extra_parameters[3]
1283 );
1284 return(return_value);
1285 }
1286 #endif
1287
1288 #ifndef TXM_QUEUE_DELETE_CALL_NOT_USED
1289 /* UINT _txe_queue_delete(
1290 TX_QUEUE *queue_ptr -> param_0
1291 ); */
_txm_module_manager_tx_queue_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1292 static ALIGN_TYPE _txm_module_manager_tx_queue_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1293 {
1294
1295 ALIGN_TYPE return_value;
1296
1297 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1298 {
1299 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1300 return(TXM_MODULE_INVALID_MEMORY);
1301 }
1302
1303 return_value = (ALIGN_TYPE) _txe_queue_delete(
1304 (TX_QUEUE *) param_0
1305 );
1306
1307 /* Deallocate object memory. */
1308 if (return_value == TX_SUCCESS)
1309 {
1310 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
1311 }
1312 return(return_value);
1313 }
1314 #endif
1315
1316 #ifndef TXM_QUEUE_FLUSH_CALL_NOT_USED
1317 /* UINT _txe_queue_flush(
1318 TX_QUEUE *queue_ptr -> param_0
1319 ); */
_txm_module_manager_tx_queue_flush_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1320 static ALIGN_TYPE _txm_module_manager_tx_queue_flush_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1321 {
1322
1323 ALIGN_TYPE return_value;
1324
1325 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1326 {
1327 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1328 return(TXM_MODULE_INVALID_MEMORY);
1329 }
1330
1331 return_value = (ALIGN_TYPE) _txe_queue_flush(
1332 (TX_QUEUE *) param_0
1333 );
1334 return(return_value);
1335 }
1336 #endif
1337
1338 #ifndef TXM_QUEUE_FRONT_SEND_CALL_NOT_USED
1339 /* UINT _txe_queue_front_send(
1340 TX_QUEUE *queue_ptr, -> param_0
1341 VOID *source_ptr, -> param_1
1342 ULONG wait_option -> param_2
1343 ); */
_txm_module_manager_tx_queue_front_send_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)1344 static ALIGN_TYPE _txm_module_manager_tx_queue_front_send_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
1345 {
1346
1347 ALIGN_TYPE return_value;
1348 TX_QUEUE *queue_ptr;
1349
1350 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1351 {
1352 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1353 return(TXM_MODULE_INVALID_MEMORY);
1354
1355 /* We need to get the size of the message from the queue. */
1356 queue_ptr = (TX_QUEUE *) param_0;
1357 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_READ(module_instance, param_1, queue_ptr -> tx_queue_message_size))
1358 return(TXM_MODULE_INVALID_MEMORY);
1359 }
1360
1361 return_value = (ALIGN_TYPE) _txe_queue_front_send(
1362 (TX_QUEUE *) param_0,
1363 (VOID *) param_1,
1364 (ULONG) param_2
1365 );
1366 return(return_value);
1367 }
1368 #endif
1369
1370 #ifndef TXM_QUEUE_INFO_GET_CALL_NOT_USED
1371 /* UINT _txe_queue_info_get(
1372 TX_QUEUE *queue_ptr, -> param_0
1373 CHAR **name, -> param_1
1374 ULONG *enqueued, -> extra_parameters[0]
1375 ULONG *available_storage, -> extra_parameters[1]
1376 TX_THREAD **first_suspended, -> extra_parameters[2]
1377 ULONG *suspended_count, -> extra_parameters[3]
1378 TX_QUEUE **next_queue -> extra_parameters[4]
1379 ); */
_txm_module_manager_tx_queue_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1380 static ALIGN_TYPE _txm_module_manager_tx_queue_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1381 {
1382
1383 ALIGN_TYPE return_value;
1384
1385 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1386 {
1387 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1388 return(TXM_MODULE_INVALID_MEMORY);
1389
1390 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
1391 return(TXM_MODULE_INVALID_MEMORY);
1392
1393 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
1394 return(TXM_MODULE_INVALID_MEMORY);
1395
1396 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1397 return(TXM_MODULE_INVALID_MEMORY);
1398
1399 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1400 return(TXM_MODULE_INVALID_MEMORY);
1401
1402 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(TX_THREAD *)))
1403 return(TXM_MODULE_INVALID_MEMORY);
1404
1405 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1406 return(TXM_MODULE_INVALID_MEMORY);
1407
1408 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(TX_QUEUE *)))
1409 return(TXM_MODULE_INVALID_MEMORY);
1410 }
1411
1412 return_value = (ALIGN_TYPE) _txe_queue_info_get(
1413 (TX_QUEUE *) param_0,
1414 (CHAR **) param_1,
1415 (ULONG *) extra_parameters[0],
1416 (ULONG *) extra_parameters[1],
1417 (TX_THREAD **) extra_parameters[2],
1418 (ULONG *) extra_parameters[3],
1419 (TX_QUEUE **) extra_parameters[4]
1420 );
1421 return(return_value);
1422 }
1423 #endif
1424
1425 #ifndef TXM_QUEUE_PERFORMANCE_INFO_GET_CALL_NOT_USED
1426 /* UINT _tx_queue_performance_info_get(
1427 TX_QUEUE *queue_ptr, -> param_0
1428 ULONG *messages_sent, -> param_1
1429 ULONG *messages_received, -> extra_parameters[0]
1430 ULONG *empty_suspensions, -> extra_parameters[1]
1431 ULONG *full_suspensions, -> extra_parameters[2]
1432 ULONG *full_errors, -> extra_parameters[3]
1433 ULONG *timeouts -> extra_parameters[4]
1434 ); */
_txm_module_manager_tx_queue_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1435 static ALIGN_TYPE _txm_module_manager_tx_queue_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1436 {
1437
1438 ALIGN_TYPE return_value;
1439
1440 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1441 {
1442 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1443 return(TXM_MODULE_INVALID_MEMORY);
1444
1445 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1446 return(TXM_MODULE_INVALID_MEMORY);
1447
1448 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[5])))
1449 return(TXM_MODULE_INVALID_MEMORY);
1450
1451 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1452 return(TXM_MODULE_INVALID_MEMORY);
1453
1454 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1455 return(TXM_MODULE_INVALID_MEMORY);
1456
1457 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1458 return(TXM_MODULE_INVALID_MEMORY);
1459
1460 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1461 return(TXM_MODULE_INVALID_MEMORY);
1462
1463 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
1464 return(TXM_MODULE_INVALID_MEMORY);
1465 }
1466
1467 return_value = (ALIGN_TYPE) _tx_queue_performance_info_get(
1468 (TX_QUEUE *) param_0,
1469 (ULONG *) param_1,
1470 (ULONG *) extra_parameters[0],
1471 (ULONG *) extra_parameters[1],
1472 (ULONG *) extra_parameters[2],
1473 (ULONG *) extra_parameters[3],
1474 (ULONG *) extra_parameters[4]
1475 );
1476 return(return_value);
1477 }
1478 #endif
1479
1480 #ifndef TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
1481 /* UINT _tx_queue_performance_system_info_get(
1482 ULONG *messages_sent, -> param_0
1483 ULONG *messages_received, -> param_1
1484 ULONG *empty_suspensions, -> extra_parameters[0]
1485 ULONG *full_suspensions, -> extra_parameters[1]
1486 ULONG *full_errors, -> extra_parameters[2]
1487 ULONG *timeouts -> extra_parameters[3]
1488 ); */
_txm_module_manager_tx_queue_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1489 static ALIGN_TYPE _txm_module_manager_tx_queue_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1490 {
1491
1492 ALIGN_TYPE return_value;
1493
1494 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1495 {
1496 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
1497 return(TXM_MODULE_INVALID_MEMORY);
1498
1499 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1500 return(TXM_MODULE_INVALID_MEMORY);
1501
1502 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
1503 return(TXM_MODULE_INVALID_MEMORY);
1504
1505 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1506 return(TXM_MODULE_INVALID_MEMORY);
1507
1508 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1509 return(TXM_MODULE_INVALID_MEMORY);
1510
1511 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1512 return(TXM_MODULE_INVALID_MEMORY);
1513
1514 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
1515 return(TXM_MODULE_INVALID_MEMORY);
1516 }
1517
1518 return_value = (ALIGN_TYPE) _tx_queue_performance_system_info_get(
1519 (ULONG *) param_0,
1520 (ULONG *) param_1,
1521 (ULONG *) extra_parameters[0],
1522 (ULONG *) extra_parameters[1],
1523 (ULONG *) extra_parameters[2],
1524 (ULONG *) extra_parameters[3]
1525 );
1526 return(return_value);
1527 }
1528 #endif
1529
1530 #ifndef TXM_QUEUE_PRIORITIZE_CALL_NOT_USED
1531 /* UINT _txe_queue_prioritize(
1532 TX_QUEUE *queue_ptr -> param_0
1533 ); */
_txm_module_manager_tx_queue_prioritize_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1534 static ALIGN_TYPE _txm_module_manager_tx_queue_prioritize_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1535 {
1536
1537 ALIGN_TYPE return_value;
1538
1539 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1540 {
1541 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1542 return(TXM_MODULE_INVALID_MEMORY);
1543 }
1544
1545 return_value = (ALIGN_TYPE) _txe_queue_prioritize(
1546 (TX_QUEUE *) param_0
1547 );
1548 return(return_value);
1549 }
1550 #endif
1551
1552 #ifndef TXM_QUEUE_RECEIVE_CALL_NOT_USED
1553 /* UINT _txe_queue_receive(
1554 TX_QUEUE *queue_ptr, -> param_0
1555 VOID *destination_ptr, -> param_1
1556 ULONG wait_option -> param_2
1557 ); */
_txm_module_manager_tx_queue_receive_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)1558 static ALIGN_TYPE _txm_module_manager_tx_queue_receive_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
1559 {
1560
1561 ALIGN_TYPE return_value;
1562 TX_QUEUE *queue_ptr;
1563
1564 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1565 {
1566 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1567 return(TXM_MODULE_INVALID_MEMORY);
1568
1569 /* We need to get the max size of the buffer from the queue. */
1570 queue_ptr = (TX_QUEUE *) param_0;
1571 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)*queue_ptr -> tx_queue_message_size))
1572 return(TXM_MODULE_INVALID_MEMORY);
1573 }
1574
1575 return_value = (ALIGN_TYPE) _txe_queue_receive(
1576 (TX_QUEUE *) param_0,
1577 (VOID *) param_1,
1578 (ULONG) param_2
1579 );
1580 return(return_value);
1581 }
1582 #endif
1583
1584 #ifndef TXM_QUEUE_SEND_CALL_NOT_USED
1585 /* UINT _txe_queue_send(
1586 TX_QUEUE *queue_ptr, -> param_0
1587 VOID *source_ptr, -> param_1
1588 ULONG wait_option -> param_2
1589 ); */
_txm_module_manager_tx_queue_send_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)1590 static ALIGN_TYPE _txm_module_manager_tx_queue_send_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
1591 {
1592
1593 ALIGN_TYPE return_value;
1594 TX_QUEUE *queue_ptr;
1595
1596 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1597 {
1598 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1599 return(TXM_MODULE_INVALID_MEMORY);
1600
1601 /* We need to get the size of the message from the queue. */
1602 queue_ptr = (TX_QUEUE *) param_0;
1603 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_READ(module_instance, param_1, sizeof(ULONG)*queue_ptr -> tx_queue_message_size))
1604 return(TXM_MODULE_INVALID_MEMORY);
1605 }
1606
1607 return_value = (ALIGN_TYPE) _txe_queue_send(
1608 (TX_QUEUE *) param_0,
1609 (VOID *) param_1,
1610 (ULONG) param_2
1611 );
1612 return(return_value);
1613 }
1614 #endif
1615
1616 #ifndef TXM_QUEUE_SEND_NOTIFY_CALL_NOT_USED
1617 /* UINT _txe_queue_send_notify(
1618 TX_QUEUE *queue_ptr, -> param_0
1619 VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr) -> param_1
1620 ); */
_txm_module_manager_tx_queue_send_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)1621 static ALIGN_TYPE _txm_module_manager_tx_queue_send_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
1622 {
1623
1624 ALIGN_TYPE return_value;
1625 TX_QUEUE *queue_ptr = (TX_QUEUE *) param_0;
1626 VOID (*queue_send_notify)(TX_QUEUE *);
1627
1628 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1629 {
1630 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_QUEUE)))
1631 return(TXM_MODULE_INVALID_MEMORY);
1632
1633 /* Since we need to write to the object, ensure it's valid. */
1634 if ((queue_ptr == TX_NULL) || (queue_ptr -> tx_queue_id != TX_QUEUE_ID))
1635 return(TX_QUEUE_ERROR);
1636 }
1637
1638 /* Is it a disable request? */
1639 if ((void *) param_1 == TX_NULL)
1640 {
1641
1642 /* Clear the callback. */
1643 queue_send_notify = (VOID (*)(TX_QUEUE *)) TX_NULL;
1644 }
1645 else
1646 {
1647
1648 /* Setup trampoline values. */
1649 queue_ptr -> tx_queue_module_instance = (VOID *) module_instance;
1650 queue_ptr -> tx_queue_send_module_notify = (VOID (*)(TX_QUEUE *)) param_1;
1651 queue_send_notify = _txm_module_manager_queue_notify_trampoline;
1652 }
1653
1654 return_value = (ALIGN_TYPE) _txe_queue_send_notify(
1655 (TX_QUEUE *) param_0,
1656 (VOID (*)(TX_QUEUE *notify_queue_ptr)) queue_send_notify
1657 );
1658 return(return_value);
1659 }
1660 #endif
1661
1662 #ifndef TXM_SEMAPHORE_CEILING_PUT_CALL_NOT_USED
1663 /* UINT _txe_semaphore_ceiling_put(
1664 TX_SEMAPHORE *semaphore_ptr, -> param_0
1665 ULONG ceiling -> param_1
1666 ); */
_txm_module_manager_tx_semaphore_ceiling_put_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)1667 static ALIGN_TYPE _txm_module_manager_tx_semaphore_ceiling_put_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
1668 {
1669
1670 ALIGN_TYPE return_value;
1671
1672 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1673 {
1674 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1675 return(TXM_MODULE_INVALID_MEMORY);
1676 }
1677
1678 return_value = (ALIGN_TYPE) _txe_semaphore_ceiling_put(
1679 (TX_SEMAPHORE *) param_0,
1680 (ULONG) param_1
1681 );
1682 return(return_value);
1683 }
1684 #endif
1685
1686 #ifndef TXM_SEMAPHORE_CREATE_CALL_NOT_USED
1687 /* UINT _txe_semaphore_create(
1688 TX_SEMAPHORE *semaphore_ptr, -> param_0
1689 CHAR *name_ptr, -> param_1
1690 ULONG initial_count, -> extra_parameters[0]
1691 UINT semaphore_control_block_size -> extra_parameters[1]
1692 ); */
_txm_module_manager_tx_semaphore_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1693 static ALIGN_TYPE _txm_module_manager_tx_semaphore_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1694 {
1695
1696 ALIGN_TYPE return_value;
1697
1698 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1699 {
1700 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1701 return(TXM_MODULE_INVALID_MEMORY);
1702
1703 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
1704 return(TXM_MODULE_INVALID_MEMORY);
1705
1706 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
1707 return(TXM_MODULE_INVALID_MEMORY);
1708 }
1709
1710 return_value = (ALIGN_TYPE) _txe_semaphore_create(
1711 (TX_SEMAPHORE *) param_0,
1712 (CHAR *) param_1,
1713 (ULONG) extra_parameters[0],
1714 (UINT) extra_parameters[1]
1715 );
1716 return(return_value);
1717 }
1718 #endif
1719
1720 #ifndef TXM_SEMAPHORE_DELETE_CALL_NOT_USED
1721 /* UINT _txe_semaphore_delete(
1722 TX_SEMAPHORE *semaphore_ptr -> param_0
1723 ); */
_txm_module_manager_tx_semaphore_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1724 static ALIGN_TYPE _txm_module_manager_tx_semaphore_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1725 {
1726
1727 ALIGN_TYPE return_value;
1728
1729 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1730 {
1731 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1732 return(TXM_MODULE_INVALID_MEMORY);
1733 }
1734
1735 return_value = (ALIGN_TYPE) _txe_semaphore_delete(
1736 (TX_SEMAPHORE *) param_0
1737 );
1738
1739 /* Deallocate object memory. */
1740 if (return_value == TX_SUCCESS)
1741 {
1742 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
1743 }
1744 return(return_value);
1745 }
1746 #endif
1747
1748 #ifndef TXM_SEMAPHORE_GET_CALL_NOT_USED
1749 /* UINT _txe_semaphore_get(
1750 TX_SEMAPHORE *semaphore_ptr, -> param_0
1751 ULONG wait_option -> param_1
1752 ); */
_txm_module_manager_tx_semaphore_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)1753 static ALIGN_TYPE _txm_module_manager_tx_semaphore_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
1754 {
1755
1756 ALIGN_TYPE return_value;
1757
1758 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1759 {
1760 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1761 return(TXM_MODULE_INVALID_MEMORY);
1762 }
1763
1764 return_value = (ALIGN_TYPE) _txe_semaphore_get(
1765 (TX_SEMAPHORE *) param_0,
1766 (ULONG) param_1
1767 );
1768 return(return_value);
1769 }
1770 #endif
1771
1772 #ifndef TXM_SEMAPHORE_INFO_GET_CALL_NOT_USED
1773 /* UINT _txe_semaphore_info_get(
1774 TX_SEMAPHORE *semaphore_ptr, -> param_0
1775 CHAR **name, -> param_1
1776 ULONG *current_value, -> extra_parameters[0]
1777 TX_THREAD **first_suspended, -> extra_parameters[1]
1778 ULONG *suspended_count, -> extra_parameters[2]
1779 TX_SEMAPHORE **next_semaphore -> extra_parameters[3]
1780 ); */
_txm_module_manager_tx_semaphore_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1781 static ALIGN_TYPE _txm_module_manager_tx_semaphore_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1782 {
1783
1784 ALIGN_TYPE return_value;
1785
1786 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1787 {
1788 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1789 return(TXM_MODULE_INVALID_MEMORY);
1790
1791 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
1792 return(TXM_MODULE_INVALID_MEMORY);
1793
1794 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
1795 return(TXM_MODULE_INVALID_MEMORY);
1796
1797 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1798 return(TXM_MODULE_INVALID_MEMORY);
1799
1800 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(TX_THREAD *)))
1801 return(TXM_MODULE_INVALID_MEMORY);
1802
1803 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1804 return(TXM_MODULE_INVALID_MEMORY);
1805
1806 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(TX_SEMAPHORE *)))
1807 return(TXM_MODULE_INVALID_MEMORY);
1808 }
1809
1810 return_value = (ALIGN_TYPE) _txe_semaphore_info_get(
1811 (TX_SEMAPHORE *) param_0,
1812 (CHAR **) param_1,
1813 (ULONG *) extra_parameters[0],
1814 (TX_THREAD **) extra_parameters[1],
1815 (ULONG *) extra_parameters[2],
1816 (TX_SEMAPHORE **) extra_parameters[3]
1817 );
1818 return(return_value);
1819 }
1820 #endif
1821
1822 #ifndef TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL_NOT_USED
1823 /* UINT _tx_semaphore_performance_info_get(
1824 TX_SEMAPHORE *semaphore_ptr, -> param_0
1825 ULONG *puts, -> param_1
1826 ULONG *gets, -> extra_parameters[0]
1827 ULONG *suspensions, -> extra_parameters[1]
1828 ULONG *timeouts -> extra_parameters[2]
1829 ); */
_txm_module_manager_tx_semaphore_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1830 static ALIGN_TYPE _txm_module_manager_tx_semaphore_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1831 {
1832
1833 ALIGN_TYPE return_value;
1834
1835 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1836 {
1837 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1838 return(TXM_MODULE_INVALID_MEMORY);
1839
1840 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1841 return(TXM_MODULE_INVALID_MEMORY);
1842
1843 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
1844 return(TXM_MODULE_INVALID_MEMORY);
1845
1846 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1847 return(TXM_MODULE_INVALID_MEMORY);
1848
1849 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1850 return(TXM_MODULE_INVALID_MEMORY);
1851
1852 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
1853 return(TXM_MODULE_INVALID_MEMORY);
1854 }
1855
1856 return_value = (ALIGN_TYPE) _tx_semaphore_performance_info_get(
1857 (TX_SEMAPHORE *) param_0,
1858 (ULONG *) param_1,
1859 (ULONG *) extra_parameters[0],
1860 (ULONG *) extra_parameters[1],
1861 (ULONG *) extra_parameters[2]
1862 );
1863 return(return_value);
1864 }
1865 #endif
1866
1867 #ifndef TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
1868 /* UINT _tx_semaphore_performance_system_info_get(
1869 ULONG *puts, -> param_0
1870 ULONG *gets, -> param_1
1871 ULONG *suspensions, -> extra_parameters[0]
1872 ULONG *timeouts -> extra_parameters[1]
1873 ); */
_txm_module_manager_tx_semaphore_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)1874 static ALIGN_TYPE _txm_module_manager_tx_semaphore_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
1875 {
1876
1877 ALIGN_TYPE return_value;
1878
1879 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1880 {
1881 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
1882 return(TXM_MODULE_INVALID_MEMORY);
1883
1884 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
1885 return(TXM_MODULE_INVALID_MEMORY);
1886
1887 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
1888 return(TXM_MODULE_INVALID_MEMORY);
1889
1890 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
1891 return(TXM_MODULE_INVALID_MEMORY);
1892
1893 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
1894 return(TXM_MODULE_INVALID_MEMORY);
1895 }
1896
1897 return_value = (ALIGN_TYPE) _tx_semaphore_performance_system_info_get(
1898 (ULONG *) param_0,
1899 (ULONG *) param_1,
1900 (ULONG *) extra_parameters[0],
1901 (ULONG *) extra_parameters[1]
1902 );
1903 return(return_value);
1904 }
1905 #endif
1906
1907 #ifndef TXM_SEMAPHORE_PRIORITIZE_CALL_NOT_USED
1908 /* UINT _txe_semaphore_prioritize(
1909 TX_SEMAPHORE *semaphore_ptr -> param_0
1910 ); */
_txm_module_manager_tx_semaphore_prioritize_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1911 static ALIGN_TYPE _txm_module_manager_tx_semaphore_prioritize_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1912 {
1913
1914 ALIGN_TYPE return_value;
1915
1916 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1917 {
1918 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1919 return(TXM_MODULE_INVALID_MEMORY);
1920 }
1921
1922 return_value = (ALIGN_TYPE) _txe_semaphore_prioritize(
1923 (TX_SEMAPHORE *) param_0
1924 );
1925 return(return_value);
1926 }
1927 #endif
1928
1929 #ifndef TXM_SEMAPHORE_PUT_CALL_NOT_USED
1930 /* UINT _txe_semaphore_put(
1931 TX_SEMAPHORE *semaphore_ptr -> param_0
1932 ); */
_txm_module_manager_tx_semaphore_put_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)1933 static ALIGN_TYPE _txm_module_manager_tx_semaphore_put_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
1934 {
1935
1936 ALIGN_TYPE return_value;
1937
1938 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1939 {
1940 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1941 return(TXM_MODULE_INVALID_MEMORY);
1942 }
1943
1944 return_value = (ALIGN_TYPE) _txe_semaphore_put(
1945 (TX_SEMAPHORE *) param_0
1946 );
1947 return(return_value);
1948 }
1949 #endif
1950
1951 #ifndef TXM_SEMAPHORE_PUT_NOTIFY_CALL_NOT_USED
1952 /* UINT _txe_semaphore_put_notify(
1953 TX_SEMAPHORE *semaphore_ptr, -> param_0
1954 VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr) -> param_1
1955 ); */
_txm_module_manager_tx_semaphore_put_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)1956 static ALIGN_TYPE _txm_module_manager_tx_semaphore_put_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
1957 {
1958
1959 ALIGN_TYPE return_value;
1960 TX_SEMAPHORE *semaphore_ptr = (TX_SEMAPHORE *) param_0;
1961 VOID (*semaphore_put_notify)(TX_SEMAPHORE *);
1962
1963 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
1964 {
1965 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_SEMAPHORE)))
1966 return(TXM_MODULE_INVALID_MEMORY);
1967
1968 /* Since we need to write to the object, ensure it's valid. */
1969 if ((semaphore_ptr == TX_NULL) || (semaphore_ptr -> tx_semaphore_id != TX_SEMAPHORE_ID))
1970 return(TX_SEMAPHORE_ERROR);
1971 }
1972
1973 /* Is it a disable request? */
1974 if ((void *) param_1 == TX_NULL)
1975 {
1976
1977 /* Clear the callback. */
1978 semaphore_put_notify = (VOID (*)(TX_SEMAPHORE *)) TX_NULL;
1979 }
1980 else
1981 {
1982
1983 /* Setup trampoline values. */
1984 semaphore_ptr -> tx_semaphore_module_instance = (VOID *) module_instance;
1985 semaphore_ptr -> tx_semaphore_put_module_notify = (VOID (*)(TX_SEMAPHORE *)) param_1;
1986 semaphore_put_notify = _txm_module_manager_semaphore_notify_trampoline;
1987 }
1988
1989 return_value = (ALIGN_TYPE) _txe_semaphore_put_notify(
1990 (TX_SEMAPHORE *) param_0,
1991 (VOID (*)(TX_SEMAPHORE *notify_semaphore_ptr)) semaphore_put_notify
1992 );
1993 return(return_value);
1994 }
1995 #endif
1996
1997 #ifndef TXM_THREAD_CREATE_CALL_NOT_USED
1998 /* UINT _txe_thread_create(
1999 TX_THREAD *thread_ptr, -> param_0
2000 CHAR *name_ptr, -> param_1
2001 VOID (*entry_function)(ULONG entry_input), -> extra_parameters[0]
2002 ULONG entry_input, -> extra_parameters[1]
2003 VOID *stack_start, -> extra_parameters[2]
2004 ULONG stack_size, -> extra_parameters[3]
2005 UINT priority, -> extra_parameters[4]
2006 UINT preempt_threshold, -> extra_parameters[5]
2007 ULONG time_slice, -> extra_parameters[6]
2008 UINT auto_start, -> extra_parameters[7]
2009 UINT thread_control_block_size -> extra_parameters[8]
2010 ); */
_txm_module_manager_tx_thread_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2011 static ALIGN_TYPE _txm_module_manager_tx_thread_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2012 {
2013
2014 ALIGN_TYPE return_value;
2015
2016 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2017 {
2018 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_THREAD)))
2019 return(TXM_MODULE_INVALID_MEMORY);
2020
2021 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
2022 return(TXM_MODULE_INVALID_MEMORY);
2023
2024 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
2025 return(TXM_MODULE_INVALID_MEMORY);
2026
2027 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], extra_parameters[3]))
2028 return(TXM_MODULE_INVALID_MEMORY);
2029
2030 if (extra_parameters[4] < module_instance -> txm_module_instance_maximum_priority)
2031 return(TX_PRIORITY_ERROR);
2032
2033 if (extra_parameters[5] < module_instance -> txm_module_instance_maximum_priority)
2034 return(TX_THRESH_ERROR);
2035 }
2036
2037 return_value = (ALIGN_TYPE) _txm_module_manager_thread_create(
2038 (TX_THREAD *) param_0,
2039 (CHAR *) param_1,
2040 module_instance -> txm_module_instance_shell_entry_function,
2041 (VOID (*)(ULONG entry_input)) extra_parameters[0],
2042 (ULONG) extra_parameters[1],
2043 (VOID *) extra_parameters[2],
2044 (ULONG) extra_parameters[3],
2045 (UINT) extra_parameters[4],
2046 (UINT) extra_parameters[5],
2047 (ULONG) extra_parameters[6],
2048 (UINT) extra_parameters[7],
2049 (UINT) extra_parameters[8],
2050 module_instance
2051 );
2052 return(return_value);
2053 }
2054 #endif
2055
2056 #ifndef TXM_THREAD_DELETE_CALL_NOT_USED
2057 /* UINT _txe_thread_delete(
2058 TX_THREAD *thread_ptr -> param_0
2059 ); */
_txm_module_manager_tx_thread_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2060 static ALIGN_TYPE _txm_module_manager_tx_thread_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2061 {
2062
2063 ALIGN_TYPE return_value;
2064
2065 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2066 {
2067 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2068 return(TXM_MODULE_INVALID_MEMORY);
2069 }
2070
2071 return_value = (ALIGN_TYPE) _txe_thread_delete(
2072 (TX_THREAD *) param_0
2073 );
2074
2075 /* Deallocate object memory. */
2076 if (return_value == TX_SUCCESS)
2077 {
2078 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
2079 }
2080 return(return_value);
2081 }
2082 #endif
2083
2084 #ifndef TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL_NOT_USED
2085 /* UINT _txe_thread_entry_exit_notify(
2086 TX_THREAD *thread_ptr, -> param_0
2087 VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT type) -> param_1
2088 ); */
_txm_module_manager_tx_thread_entry_exit_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)2089 static ALIGN_TYPE _txm_module_manager_tx_thread_entry_exit_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
2090 {
2091
2092 ALIGN_TYPE return_value;
2093 TX_THREAD *thread_ptr = (TX_THREAD *) param_0;
2094 TXM_MODULE_THREAD_ENTRY_INFO *thread_entry_info_ptr;
2095 VOID (*thread_entry_exit_notify)(TX_THREAD *, UINT);
2096
2097 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2098 {
2099 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2100 return(TXM_MODULE_INVALID_MEMORY);
2101
2102 /* Since we need to write to the object, ensure it's valid. */
2103 if ((thread_ptr == TX_NULL) || (thread_ptr -> tx_thread_id != TX_THREAD_ID))
2104 return(TX_THREAD_ERROR);
2105
2106 /* Ensure this thread is from the module trying to set the callback. */
2107 if (thread_ptr -> tx_thread_module_instance_ptr != module_instance)
2108 return(TXM_MODULE_INVALID);
2109 }
2110
2111 /* Is it a disable request? */
2112 if ((void *) param_1 == TX_NULL)
2113 {
2114
2115 /* Clear the callback. */
2116 thread_entry_exit_notify = (VOID (*)(TX_THREAD *, UINT)) TX_NULL;
2117 }
2118 else
2119 {
2120
2121 /* Setup trampoline values. */
2122 thread_entry_info_ptr = (TXM_MODULE_THREAD_ENTRY_INFO *) thread_ptr -> tx_thread_module_entry_info_ptr;
2123 thread_entry_info_ptr -> txm_module_thread_entry_info_exit_notify = (VOID (*)(TX_THREAD *, UINT)) param_1;
2124 thread_entry_exit_notify = _txm_module_manager_thread_notify_trampoline;
2125 }
2126
2127 return_value = (ALIGN_TYPE) _txe_thread_entry_exit_notify(
2128 (TX_THREAD *) param_0,
2129 (VOID (*)(TX_THREAD *notify_thread_ptr, UINT type)) thread_entry_exit_notify
2130 );
2131 return(return_value);
2132 }
2133 #endif
2134
2135 #ifndef TXM_THREAD_IDENTIFY_CALL_NOT_USED
2136 /* TX_THREAD *_tx_thread_identify(); */
_txm_module_manager_tx_thread_identify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2137 static ALIGN_TYPE _txm_module_manager_tx_thread_identify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2138 {
2139
2140 ALIGN_TYPE return_value;
2141
2142 return_value = (ALIGN_TYPE) _tx_thread_identify();
2143 return(return_value);
2144 }
2145 #endif
2146
2147 #ifndef TXM_THREAD_INFO_GET_CALL_NOT_USED
2148 /* UINT _txe_thread_info_get(
2149 TX_THREAD *thread_ptr, -> param_0
2150 CHAR **name, -> param_1
2151 UINT *state, -> extra_parameters[0]
2152 ULONG *run_count, -> extra_parameters[1]
2153 UINT *priority, -> extra_parameters[2]
2154 UINT *preemption_threshold, -> extra_parameters[3]
2155 ULONG *time_slice, -> extra_parameters[4]
2156 TX_THREAD **next_thread, -> extra_parameters[5]
2157 TX_THREAD **next_suspended_thread -> extra_parameters[6]
2158 ); */
_txm_module_manager_tx_thread_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2159 static ALIGN_TYPE _txm_module_manager_tx_thread_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2160 {
2161
2162 ALIGN_TYPE return_value;
2163
2164 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2165 {
2166 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2167 return(TXM_MODULE_INVALID_MEMORY);
2168
2169 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
2170 return(TXM_MODULE_INVALID_MEMORY);
2171
2172 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[7])))
2173 return(TXM_MODULE_INVALID_MEMORY);
2174
2175 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
2176 return(TXM_MODULE_INVALID_MEMORY);
2177
2178 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
2179 return(TXM_MODULE_INVALID_MEMORY);
2180
2181 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(UINT)))
2182 return(TXM_MODULE_INVALID_MEMORY);
2183
2184 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(UINT)))
2185 return(TXM_MODULE_INVALID_MEMORY);
2186
2187 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
2188 return(TXM_MODULE_INVALID_MEMORY);
2189
2190 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[5], sizeof(TX_THREAD *)))
2191 return(TXM_MODULE_INVALID_MEMORY);
2192
2193 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[6], sizeof(TX_THREAD *)))
2194 return(TXM_MODULE_INVALID_MEMORY);
2195 }
2196
2197 return_value = (ALIGN_TYPE) _txe_thread_info_get(
2198 (TX_THREAD *) param_0,
2199 (CHAR **) param_1,
2200 (UINT *) extra_parameters[0],
2201 (ULONG *) extra_parameters[1],
2202 (UINT *) extra_parameters[2],
2203 (UINT *) extra_parameters[3],
2204 (ULONG *) extra_parameters[4],
2205 (TX_THREAD **) extra_parameters[5],
2206 (TX_THREAD **) extra_parameters[6]
2207 );
2208 return(return_value);
2209 }
2210 #endif
2211
2212 #ifndef TXM_THREAD_INTERRUPT_CONTROL_CALL_NOT_USED
2213 /* UINT _tx_thread_interrupt_control(
2214 UINT new_posture -> param_0
2215 ); */
_txm_module_manager_tx_thread_interrupt_control_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2216 static ALIGN_TYPE _txm_module_manager_tx_thread_interrupt_control_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2217 {
2218
2219 ALIGN_TYPE return_value;
2220
2221 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
2222 return(TXM_MODULE_INVALID_PROPERTIES);
2223
2224 return_value = (ALIGN_TYPE) _tx_thread_interrupt_control(
2225 (UINT) param_0
2226 );
2227 return(return_value);
2228 }
2229 #endif
2230
2231 #ifndef TXM_THREAD_PERFORMANCE_INFO_GET_CALL_NOT_USED
2232 /* UINT _tx_thread_performance_info_get(
2233 TX_THREAD *thread_ptr, -> param_0
2234 ULONG *resumptions, -> param_1
2235 ULONG *suspensions, -> extra_parameters[0]
2236 ULONG *solicited_preemptions, -> extra_parameters[1]
2237 ULONG *interrupt_preemptions, -> extra_parameters[2]
2238 ULONG *priority_inversions, -> extra_parameters[3]
2239 ULONG *time_slices, -> extra_parameters[4]
2240 ULONG *relinquishes, -> extra_parameters[5]
2241 ULONG *timeouts, -> extra_parameters[6]
2242 ULONG *wait_aborts, -> extra_parameters[7]
2243 TX_THREAD **last_preempted_by -> extra_parameters[8]
2244 ); */
_txm_module_manager_tx_thread_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2245 static ALIGN_TYPE _txm_module_manager_tx_thread_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2246 {
2247
2248 ALIGN_TYPE return_value;
2249
2250 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2251 {
2252 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2253 return(TXM_MODULE_INVALID_MEMORY);
2254
2255 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
2256 return(TXM_MODULE_INVALID_MEMORY);
2257
2258 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
2259 return(TXM_MODULE_INVALID_MEMORY);
2260
2261 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
2262 return(TXM_MODULE_INVALID_MEMORY);
2263
2264 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
2265 return(TXM_MODULE_INVALID_MEMORY);
2266
2267 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
2268 return(TXM_MODULE_INVALID_MEMORY);
2269
2270 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
2271 return(TXM_MODULE_INVALID_MEMORY);
2272
2273 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
2274 return(TXM_MODULE_INVALID_MEMORY);
2275
2276 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[5], sizeof(ULONG)))
2277 return(TXM_MODULE_INVALID_MEMORY);
2278
2279 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[6], sizeof(ULONG)))
2280 return(TXM_MODULE_INVALID_MEMORY);
2281
2282 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[7], sizeof(ULONG)))
2283 return(TXM_MODULE_INVALID_MEMORY);
2284
2285 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[8], sizeof(TX_THREAD *)))
2286 return(TXM_MODULE_INVALID_MEMORY);
2287 }
2288
2289 return_value = (ALIGN_TYPE) _tx_thread_performance_info_get(
2290 (TX_THREAD *) param_0,
2291 (ULONG *) param_1,
2292 (ULONG *) extra_parameters[0],
2293 (ULONG *) extra_parameters[1],
2294 (ULONG *) extra_parameters[2],
2295 (ULONG *) extra_parameters[3],
2296 (ULONG *) extra_parameters[4],
2297 (ULONG *) extra_parameters[5],
2298 (ULONG *) extra_parameters[6],
2299 (ULONG *) extra_parameters[7],
2300 (TX_THREAD **) extra_parameters[8]
2301 );
2302 return(return_value);
2303 }
2304 #endif
2305
2306 #ifndef TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
2307 /* UINT _tx_thread_performance_system_info_get(
2308 ULONG *resumptions, -> param_0
2309 ULONG *suspensions, -> param_1
2310 ULONG *solicited_preemptions, -> extra_parameters[0]
2311 ULONG *interrupt_preemptions, -> extra_parameters[1]
2312 ULONG *priority_inversions, -> extra_parameters[2]
2313 ULONG *time_slices, -> extra_parameters[3]
2314 ULONG *relinquishes, -> extra_parameters[4]
2315 ULONG *timeouts, -> extra_parameters[5]
2316 ULONG *wait_aborts, -> extra_parameters[6]
2317 ULONG *non_idle_returns, -> extra_parameters[7]
2318 ULONG *idle_returns -> extra_parameters[8]
2319 ); */
_txm_module_manager_tx_thread_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2320 static ALIGN_TYPE _txm_module_manager_tx_thread_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2321 {
2322
2323 ALIGN_TYPE return_value;
2324
2325 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2326 {
2327 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
2328 return(TXM_MODULE_INVALID_MEMORY);
2329
2330 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
2331 return(TXM_MODULE_INVALID_MEMORY);
2332
2333 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[9])))
2334 return(TXM_MODULE_INVALID_MEMORY);
2335
2336 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
2337 return(TXM_MODULE_INVALID_MEMORY);
2338
2339 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
2340 return(TXM_MODULE_INVALID_MEMORY);
2341
2342 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
2343 return(TXM_MODULE_INVALID_MEMORY);
2344
2345 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
2346 return(TXM_MODULE_INVALID_MEMORY);
2347
2348 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[4], sizeof(ULONG)))
2349 return(TXM_MODULE_INVALID_MEMORY);
2350
2351 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[5], sizeof(ULONG)))
2352 return(TXM_MODULE_INVALID_MEMORY);
2353
2354 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[6], sizeof(ULONG)))
2355 return(TXM_MODULE_INVALID_MEMORY);
2356
2357 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[7], sizeof(ULONG)))
2358 return(TXM_MODULE_INVALID_MEMORY);
2359
2360 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[8], sizeof(ULONG)))
2361 return(TXM_MODULE_INVALID_MEMORY);
2362 }
2363
2364 return_value = (ALIGN_TYPE) _tx_thread_performance_system_info_get(
2365 (ULONG *) param_0,
2366 (ULONG *) param_1,
2367 (ULONG *) extra_parameters[0],
2368 (ULONG *) extra_parameters[1],
2369 (ULONG *) extra_parameters[2],
2370 (ULONG *) extra_parameters[3],
2371 (ULONG *) extra_parameters[4],
2372 (ULONG *) extra_parameters[5],
2373 (ULONG *) extra_parameters[6],
2374 (ULONG *) extra_parameters[7],
2375 (ULONG *) extra_parameters[8]
2376 );
2377 return(return_value);
2378 }
2379 #endif
2380
2381 #ifndef TXM_THREAD_PREEMPTION_CHANGE_CALL_NOT_USED
2382 /* UINT _txe_thread_preemption_change(
2383 TX_THREAD *thread_ptr, -> param_0
2384 UINT new_threshold, -> param_1
2385 UINT *old_threshold -> param_2
2386 ); */
_txm_module_manager_tx_thread_preemption_change_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)2387 static ALIGN_TYPE _txm_module_manager_tx_thread_preemption_change_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
2388 {
2389
2390 ALIGN_TYPE return_value;
2391
2392 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2393 {
2394 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2395 return(TXM_MODULE_INVALID_MEMORY);
2396
2397 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_2, sizeof(UINT)))
2398 return(TXM_MODULE_INVALID_MEMORY);
2399 }
2400
2401 return_value = (ALIGN_TYPE) _txe_thread_preemption_change(
2402 (TX_THREAD *) param_0,
2403 (UINT) param_1,
2404 (UINT *) param_2
2405 );
2406 return(return_value);
2407 }
2408 #endif
2409
2410 #ifndef TXM_THREAD_PRIORITY_CHANGE_CALL_NOT_USED
2411 /* UINT _txe_thread_priority_change(
2412 TX_THREAD *thread_ptr, -> param_0
2413 UINT new_priority, -> param_1
2414 UINT *old_priority -> param_2
2415 ); */
_txm_module_manager_tx_thread_priority_change_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)2416 static ALIGN_TYPE _txm_module_manager_tx_thread_priority_change_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
2417 {
2418
2419 ALIGN_TYPE return_value;
2420
2421 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2422 {
2423 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2424 return(TXM_MODULE_INVALID_MEMORY);
2425
2426 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_2, sizeof(UINT)))
2427 return(TXM_MODULE_INVALID_MEMORY);
2428 }
2429
2430 return_value = (ALIGN_TYPE) _txe_thread_priority_change(
2431 (TX_THREAD *) param_0,
2432 (UINT) param_1,
2433 (UINT *) param_2
2434 );
2435 return(return_value);
2436 }
2437 #endif
2438
2439 #ifndef TXM_THREAD_RELINQUISH_CALL_NOT_USED
2440 /* VOID _txe_thread_relinquish(); */
_txm_module_manager_tx_thread_relinquish_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2441 static ALIGN_TYPE _txm_module_manager_tx_thread_relinquish_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2442 {
2443
2444 _txe_thread_relinquish();
2445 return(TX_SUCCESS);
2446 }
2447 #endif
2448
2449 #ifndef TXM_THREAD_RESET_CALL_NOT_USED
2450 /* UINT _txe_thread_reset(
2451 TX_THREAD *thread_ptr -> param_0
2452 ); */
_txm_module_manager_tx_thread_reset_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2453 static ALIGN_TYPE _txm_module_manager_tx_thread_reset_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2454 {
2455
2456 ALIGN_TYPE return_value;
2457
2458 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2459 {
2460 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2461 return(TXM_MODULE_INVALID_MEMORY);
2462 }
2463
2464 return_value = (ALIGN_TYPE) _txm_module_manager_thread_reset(
2465 (TX_THREAD *) param_0
2466 );
2467 return(return_value);
2468 }
2469 #endif
2470
2471 #ifndef TXM_THREAD_RESUME_CALL_NOT_USED
2472 /* UINT _txe_thread_resume(
2473 TX_THREAD *thread_ptr -> param_0
2474 ); */
_txm_module_manager_tx_thread_resume_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2475 static ALIGN_TYPE _txm_module_manager_tx_thread_resume_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2476 {
2477
2478 ALIGN_TYPE return_value;
2479
2480 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2481 {
2482 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2483 return(TXM_MODULE_INVALID_MEMORY);
2484 }
2485
2486 return_value = (ALIGN_TYPE) _txe_thread_resume(
2487 (TX_THREAD *) param_0
2488 );
2489 return(return_value);
2490 }
2491 #endif
2492
2493 #ifndef TXM_THREAD_SLEEP_CALL_NOT_USED
2494 /* UINT _tx_thread_sleep(
2495 ULONG timer_ticks -> param_0
2496 ); */
_txm_module_manager_tx_thread_sleep_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2497 static ALIGN_TYPE _txm_module_manager_tx_thread_sleep_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2498 {
2499
2500 ALIGN_TYPE return_value;
2501
2502 return_value = (ALIGN_TYPE) _tx_thread_sleep(
2503 (ULONG) param_0
2504 );
2505 return(return_value);
2506 }
2507 #endif
2508
2509 #ifndef TXM_THREAD_STACK_ERROR_NOTIFY_CALL_NOT_USED
2510 /* UINT _tx_thread_stack_error_notify(
2511 VOID (*stack_error_handler)(TX_THREAD *thread_ptr) -> param_0
2512 ); */
_txm_module_manager_tx_thread_stack_error_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2513 static ALIGN_TYPE _txm_module_manager_tx_thread_stack_error_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2514 {
2515
2516 ALIGN_TYPE return_value;
2517
2518 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
2519 return(TXM_MODULE_INVALID_PROPERTIES);
2520
2521 return_value = (ALIGN_TYPE) _tx_thread_stack_error_notify(
2522 (VOID (*)(TX_THREAD *thread_ptr)) param_0
2523 );
2524 return(return_value);
2525 }
2526 #endif
2527
2528 #ifndef TXM_THREAD_SUSPEND_CALL_NOT_USED
2529 /* UINT _txe_thread_suspend(
2530 TX_THREAD *thread_ptr -> param_0
2531 ); */
_txm_module_manager_tx_thread_suspend_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2532 static ALIGN_TYPE _txm_module_manager_tx_thread_suspend_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2533 {
2534
2535 ALIGN_TYPE return_value;
2536
2537 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2538 {
2539 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2540 return(TXM_MODULE_INVALID_MEMORY);
2541 }
2542
2543 return_value = (ALIGN_TYPE) _txe_thread_suspend(
2544 (TX_THREAD *) param_0
2545 );
2546 return(return_value);
2547 }
2548 #endif
2549
2550 #ifndef TXM_THREAD_SYSTEM_SUSPEND_CALL_NOT_USED
2551 /* VOID _tx_thread_system_suspend(
2552 TX_THREAD *thread_ptr -> param_0
2553 ); */
_txm_module_manager_tx_thread_system_suspend_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2554 static ALIGN_TYPE _txm_module_manager_tx_thread_system_suspend_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2555 {
2556
2557 TX_INTERRUPT_SAVE_AREA
2558
2559 TX_THREAD *thread_ptr;
2560
2561 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2562 {
2563 /* Ensure the thread is suspending itself. */
2564 if (((TX_THREAD *) param_0) != _tx_thread_current_ptr)
2565 {
2566 return(TXM_MODULE_INVALID_MEMORY);
2567 }
2568 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2569 return(TXM_MODULE_INVALID_MEMORY);
2570 }
2571
2572 /* Get the thread pointer. */
2573 thread_ptr = (TX_THREAD *) param_0;
2574
2575 /* Disable interrupts temporarily. */
2576 TX_DISABLE
2577
2578 /* Set the status to suspending, in order to indicate the suspension
2579 is in progress. */
2580 thread_ptr -> tx_thread_state = TX_COMPLETED;
2581
2582 /* Thread state change. */
2583 TX_THREAD_STATE_CHANGE(thread_ptr, TX_COMPLETED)
2584
2585 /* Set the suspending flag. */
2586 thread_ptr -> tx_thread_suspending = TX_TRUE;
2587
2588 /* Setup for no timeout period. */
2589 thread_ptr -> tx_thread_timer.tx_timer_internal_remaining_ticks = 0;
2590
2591 /* Temporarily disable preemption. */
2592 _tx_thread_preempt_disable++;
2593
2594 /* Restore interrupts. */
2595 TX_RESTORE
2596
2597 /* Perform any additional activities for tool or user purpose. */
2598 TX_THREAD_COMPLETED_EXTENSION(thread_ptr);
2599
2600 _tx_thread_system_suspend(
2601 (TX_THREAD *) param_0
2602 );
2603 return(TX_SUCCESS);
2604 }
2605 #endif
2606
2607 #ifndef TXM_THREAD_TERMINATE_CALL_NOT_USED
2608 /* UINT _txe_thread_terminate(
2609 TX_THREAD *thread_ptr -> param_0
2610 ); */
_txm_module_manager_tx_thread_terminate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2611 static ALIGN_TYPE _txm_module_manager_tx_thread_terminate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2612 {
2613
2614 ALIGN_TYPE return_value;
2615
2616 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2617 {
2618 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2619 return(TXM_MODULE_INVALID_MEMORY);
2620 }
2621
2622 return_value = (ALIGN_TYPE) _txe_thread_terminate(
2623 (TX_THREAD *) param_0
2624 );
2625 return(return_value);
2626 }
2627 #endif
2628
2629 #ifndef TXM_THREAD_TIME_SLICE_CHANGE_CALL_NOT_USED
2630 /* UINT _txe_thread_time_slice_change(
2631 TX_THREAD *thread_ptr, -> param_0
2632 ULONG new_time_slice, -> param_1
2633 ULONG *old_time_slice -> param_2
2634 ); */
_txm_module_manager_tx_thread_time_slice_change_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)2635 static ALIGN_TYPE _txm_module_manager_tx_thread_time_slice_change_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
2636 {
2637
2638 ALIGN_TYPE return_value;
2639
2640 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2641 {
2642 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2643 return(TXM_MODULE_INVALID_MEMORY);
2644
2645 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_2, sizeof(ULONG)))
2646 return(TXM_MODULE_INVALID_MEMORY);
2647 }
2648
2649 return_value = (ALIGN_TYPE) _txe_thread_time_slice_change(
2650 (TX_THREAD *) param_0,
2651 (ULONG) param_1,
2652 (ULONG *) param_2
2653 );
2654 return(return_value);
2655 }
2656 #endif
2657
2658 #ifndef TXM_THREAD_WAIT_ABORT_CALL_NOT_USED
2659 /* UINT _txe_thread_wait_abort(
2660 TX_THREAD *thread_ptr -> param_0
2661 ); */
_txm_module_manager_tx_thread_wait_abort_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2662 static ALIGN_TYPE _txm_module_manager_tx_thread_wait_abort_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2663 {
2664
2665 ALIGN_TYPE return_value;
2666
2667 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2668 {
2669 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD)))
2670 return(TXM_MODULE_INVALID_MEMORY);
2671 }
2672
2673 return_value = (ALIGN_TYPE) _txe_thread_wait_abort(
2674 (TX_THREAD *) param_0
2675 );
2676 return(return_value);
2677 }
2678 #endif
2679
2680 #ifndef TXM_TIME_GET_CALL_NOT_USED
2681 /* ULONG _tx_time_get(); */
_txm_module_manager_tx_time_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2682 static ALIGN_TYPE _txm_module_manager_tx_time_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2683 {
2684
2685 ALIGN_TYPE return_value;
2686
2687 return_value = (ALIGN_TYPE) _tx_time_get();
2688 return(return_value);
2689 }
2690 #endif
2691
2692 #ifndef TXM_TIME_SET_CALL_NOT_USED
2693 /* VOID _tx_time_set(
2694 ULONG new_time -> param_0
2695 ); */
_txm_module_manager_tx_time_set_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2696 static ALIGN_TYPE _txm_module_manager_tx_time_set_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2697 {
2698
2699 _tx_time_set(
2700 (ULONG) param_0
2701 );
2702 return(TX_SUCCESS);
2703 }
2704 #endif
2705
2706 #ifndef TXM_TIMER_ACTIVATE_CALL_NOT_USED
2707 /* UINT _txe_timer_activate(
2708 TX_TIMER *timer_ptr -> param_0
2709 ); */
_txm_module_manager_tx_timer_activate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2710 static ALIGN_TYPE _txm_module_manager_tx_timer_activate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2711 {
2712
2713 ALIGN_TYPE return_value;
2714
2715 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2716 {
2717 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2718 return(TXM_MODULE_INVALID_MEMORY);
2719 }
2720
2721 return_value = (ALIGN_TYPE) _txe_timer_activate(
2722 (TX_TIMER *) param_0
2723 );
2724 return(return_value);
2725 }
2726 #endif
2727
2728 #ifndef TXM_TIMER_CHANGE_CALL_NOT_USED
2729 /* UINT _txe_timer_change(
2730 TX_TIMER *timer_ptr, -> param_0
2731 ULONG initial_ticks, -> param_1
2732 ULONG reschedule_ticks -> param_2
2733 ); */
_txm_module_manager_tx_timer_change_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)2734 static ALIGN_TYPE _txm_module_manager_tx_timer_change_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
2735 {
2736
2737 ALIGN_TYPE return_value;
2738
2739 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2740 {
2741 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2742 return(TXM_MODULE_INVALID_MEMORY);
2743 }
2744
2745 return_value = (ALIGN_TYPE) _txe_timer_change(
2746 (TX_TIMER *) param_0,
2747 (ULONG) param_1,
2748 (ULONG) param_2
2749 );
2750 return(return_value);
2751 }
2752 #endif
2753
2754 #ifndef TXM_TIMER_CREATE_CALL_NOT_USED
2755 /* UINT _txe_timer_create(
2756 TX_TIMER *timer_ptr, -> param_0
2757 CHAR *name_ptr, -> param_1
2758 VOID (*expiration_function)(ULONG), -> extra_parameters[0]
2759 ULONG expiration_input, -> extra_parameters[1]
2760 ULONG initial_ticks, -> extra_parameters[2]
2761 ULONG reschedule_ticks, -> extra_parameters[3]
2762 UINT auto_activate, -> extra_parameters[4]
2763 UINT timer_control_block_size -> extra_parameters[5]
2764 ); */
_txm_module_manager_tx_timer_create_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2765 static ALIGN_TYPE _txm_module_manager_tx_timer_create_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2766 {
2767
2768 ALIGN_TYPE return_value;
2769 TX_TIMER *timer_ptr;
2770 VOID (*expiration_function)(ULONG);
2771
2772 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2773 {
2774 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, param_0, sizeof(TX_TIMER)))
2775 return(TXM_MODULE_INVALID_MEMORY);
2776
2777 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
2778 return(TXM_MODULE_INVALID_MEMORY);
2779
2780 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[6])))
2781 return(TXM_MODULE_INVALID_MEMORY);
2782 }
2783
2784 /* Is it a disable request? */
2785 if ((void *) extra_parameters[0] == TX_NULL)
2786 {
2787
2788 /* Clear the callback. */
2789 expiration_function = (VOID (*)(ULONG)) TX_NULL;
2790 }
2791 else
2792 {
2793
2794 /* Set trampoline callback. */
2795 expiration_function = _txm_module_manager_timer_notify_trampoline;
2796 }
2797
2798 return_value = (ALIGN_TYPE) _txe_timer_create(
2799 (TX_TIMER *) param_0,
2800 (CHAR *) param_1,
2801 (VOID (*)(ULONG)) expiration_function,
2802 (ULONG) extra_parameters[1],
2803 (ULONG) extra_parameters[2],
2804 (ULONG) extra_parameters[3],
2805 (UINT) extra_parameters[4],
2806 (UINT) extra_parameters[5]
2807 );
2808
2809 if (return_value == TX_SUCCESS)
2810 {
2811
2812 /* Get the object pointer. */
2813 timer_ptr = (TX_TIMER *) param_0;
2814
2815 /* Setup trampoline values. */
2816 if ((void *) extra_parameters[0] != TX_NULL)
2817 {
2818
2819 timer_ptr -> tx_timer_module_instance = (VOID *) module_instance;
2820 timer_ptr -> tx_timer_module_expiration_function = (VOID (*)(ULONG)) extra_parameters[0];
2821 }
2822 }
2823 return(return_value);
2824 }
2825 #endif
2826
2827 #ifndef TXM_TIMER_DEACTIVATE_CALL_NOT_USED
2828 /* UINT _txe_timer_deactivate(
2829 TX_TIMER *timer_ptr -> param_0
2830 ); */
_txm_module_manager_tx_timer_deactivate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2831 static ALIGN_TYPE _txm_module_manager_tx_timer_deactivate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2832 {
2833
2834 ALIGN_TYPE return_value;
2835
2836 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2837 {
2838 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2839 return(TXM_MODULE_INVALID_MEMORY);
2840 }
2841
2842 return_value = (ALIGN_TYPE) _txe_timer_deactivate(
2843 (TX_TIMER *) param_0
2844 );
2845 return(return_value);
2846 }
2847 #endif
2848
2849 #ifndef TXM_TIMER_DELETE_CALL_NOT_USED
2850 /* UINT _txe_timer_delete(
2851 TX_TIMER *timer_ptr -> param_0
2852 ); */
_txm_module_manager_tx_timer_delete_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)2853 static ALIGN_TYPE _txm_module_manager_tx_timer_delete_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
2854 {
2855
2856 ALIGN_TYPE return_value;
2857
2858 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2859 {
2860 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2861 return(TXM_MODULE_INVALID_MEMORY);
2862 }
2863
2864 return_value = (ALIGN_TYPE) _txe_timer_delete(
2865 (TX_TIMER *) param_0
2866 );
2867
2868 /* Deallocate object memory. */
2869 if (return_value == TX_SUCCESS)
2870 {
2871 return_value = _txm_module_manager_object_deallocate((VOID *) param_0);
2872 }
2873 return(return_value);
2874 }
2875 #endif
2876
2877 #ifndef TXM_TIMER_INFO_GET_CALL_NOT_USED
2878 /* UINT _txe_timer_info_get(
2879 TX_TIMER *timer_ptr, -> param_0
2880 CHAR **name, -> param_1
2881 UINT *active, -> extra_parameters[0]
2882 ULONG *remaining_ticks, -> extra_parameters[1]
2883 ULONG *reschedule_ticks, -> extra_parameters[2]
2884 TX_TIMER **next_timer -> extra_parameters[3]
2885 ); */
_txm_module_manager_tx_timer_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2886 static ALIGN_TYPE _txm_module_manager_tx_timer_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2887 {
2888
2889 ALIGN_TYPE return_value;
2890
2891 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2892 {
2893 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2894 return(TXM_MODULE_INVALID_MEMORY);
2895
2896 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(CHAR *)))
2897 return(TXM_MODULE_INVALID_MEMORY);
2898
2899 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
2900 return(TXM_MODULE_INVALID_MEMORY);
2901
2902 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(UINT)))
2903 return(TXM_MODULE_INVALID_MEMORY);
2904
2905 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
2906 return(TXM_MODULE_INVALID_MEMORY);
2907
2908 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
2909 return(TXM_MODULE_INVALID_MEMORY);
2910
2911 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(TX_TIMER *)))
2912 return(TXM_MODULE_INVALID_MEMORY);
2913 }
2914
2915 return_value = (ALIGN_TYPE) _txe_timer_info_get(
2916 (TX_TIMER *) param_0,
2917 (CHAR **) param_1,
2918 (UINT *) extra_parameters[0],
2919 (ULONG *) extra_parameters[1],
2920 (ULONG *) extra_parameters[2],
2921 (TX_TIMER **) extra_parameters[3]
2922 );
2923 return(return_value);
2924 }
2925 #endif
2926
2927 #ifndef TXM_TIMER_PERFORMANCE_INFO_GET_CALL_NOT_USED
2928 /* UINT _tx_timer_performance_info_get(
2929 TX_TIMER *timer_ptr, -> param_0
2930 ULONG *activates, -> param_1
2931 ULONG *reactivates, -> extra_parameters[0]
2932 ULONG *deactivates, -> extra_parameters[1]
2933 ULONG *expirations, -> extra_parameters[2]
2934 ULONG *expiration_adjusts -> extra_parameters[3]
2935 ); */
_txm_module_manager_tx_timer_performance_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2936 static ALIGN_TYPE _txm_module_manager_tx_timer_performance_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2937 {
2938
2939 ALIGN_TYPE return_value;
2940
2941 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2942 {
2943 if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_TIMER)))
2944 return(TXM_MODULE_INVALID_MEMORY);
2945
2946 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
2947 return(TXM_MODULE_INVALID_MEMORY);
2948
2949 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[4])))
2950 return(TXM_MODULE_INVALID_MEMORY);
2951
2952 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
2953 return(TXM_MODULE_INVALID_MEMORY);
2954
2955 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
2956 return(TXM_MODULE_INVALID_MEMORY);
2957
2958 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
2959 return(TXM_MODULE_INVALID_MEMORY);
2960
2961 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[3], sizeof(ULONG)))
2962 return(TXM_MODULE_INVALID_MEMORY);
2963 }
2964
2965 return_value = (ALIGN_TYPE) _tx_timer_performance_info_get(
2966 (TX_TIMER *) param_0,
2967 (ULONG *) param_1,
2968 (ULONG *) extra_parameters[0],
2969 (ULONG *) extra_parameters[1],
2970 (ULONG *) extra_parameters[2],
2971 (ULONG *) extra_parameters[3]
2972 );
2973 return(return_value);
2974 }
2975 #endif
2976
2977 #ifndef TXM_TIMER_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
2978 /* UINT _tx_timer_performance_system_info_get(
2979 ULONG *activates, -> param_0
2980 ULONG *reactivates, -> param_1
2981 ULONG *deactivates, -> extra_parameters[0]
2982 ULONG *expirations, -> extra_parameters[1]
2983 ULONG *expiration_adjusts -> extra_parameters[2]
2984 ); */
_txm_module_manager_tx_timer_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)2985 static ALIGN_TYPE _txm_module_manager_tx_timer_performance_system_info_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
2986 {
2987
2988 ALIGN_TYPE return_value;
2989
2990 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
2991 {
2992 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(ULONG)))
2993 return(TXM_MODULE_INVALID_MEMORY);
2994
2995 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_1, sizeof(ULONG)))
2996 return(TXM_MODULE_INVALID_MEMORY);
2997
2998 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
2999 return(TXM_MODULE_INVALID_MEMORY);
3000
3001 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[0], sizeof(ULONG)))
3002 return(TXM_MODULE_INVALID_MEMORY);
3003
3004 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(ULONG)))
3005 return(TXM_MODULE_INVALID_MEMORY);
3006
3007 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[2], sizeof(ULONG)))
3008 return(TXM_MODULE_INVALID_MEMORY);
3009 }
3010
3011 return_value = (ALIGN_TYPE) _tx_timer_performance_system_info_get(
3012 (ULONG *) param_0,
3013 (ULONG *) param_1,
3014 (ULONG *) extra_parameters[0],
3015 (ULONG *) extra_parameters[1],
3016 (ULONG *) extra_parameters[2]
3017 );
3018 return(return_value);
3019 }
3020 #endif
3021
3022 #ifndef TXM_TRACE_BUFFER_FULL_NOTIFY_CALL_NOT_USED
3023 /* UINT _tx_trace_buffer_full_notify(
3024 VOID (*full_buffer_callback)(VOID *buffer) -> param_0
3025 ); */
_txm_module_manager_tx_trace_buffer_full_notify_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3026 static ALIGN_TYPE _txm_module_manager_tx_trace_buffer_full_notify_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3027 {
3028
3029 ALIGN_TYPE return_value;
3030
3031 return_value = (ALIGN_TYPE) _tx_trace_buffer_full_notify(
3032 (VOID (*)(VOID *buffer)) param_0
3033 );
3034 return(return_value);
3035 }
3036 #endif
3037
3038 #ifndef TXM_TRACE_DISABLE_CALL_NOT_USED
3039 /* UINT _tx_trace_disable(); */
_txm_module_manager_tx_trace_disable_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)3040 static ALIGN_TYPE _txm_module_manager_tx_trace_disable_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
3041 {
3042
3043 ALIGN_TYPE return_value;
3044
3045 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
3046 return(TXM_MODULE_INVALID_PROPERTIES);
3047
3048 return_value = (ALIGN_TYPE) _tx_trace_disable();
3049 return(return_value);
3050 }
3051 #endif
3052
3053 #ifndef TXM_TRACE_ENABLE_CALL_NOT_USED
3054 /* UINT _tx_trace_enable(
3055 VOID *trace_buffer_start, -> param_0
3056 ULONG trace_buffer_size, -> param_1
3057 ULONG registry_entries -> param_2
3058 ); */
_txm_module_manager_tx_trace_enable_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)3059 static ALIGN_TYPE _txm_module_manager_tx_trace_enable_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
3060 {
3061
3062 ALIGN_TYPE return_value;
3063
3064 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
3065 return(TXM_MODULE_INVALID_PROPERTIES);
3066
3067 return_value = (ALIGN_TYPE) _tx_trace_enable(
3068 (VOID *) param_0,
3069 (ULONG) param_1,
3070 (ULONG) param_2
3071 );
3072 return(return_value);
3073 }
3074 #endif
3075
3076 #ifndef TXM_TRACE_EVENT_FILTER_CALL_NOT_USED
3077 /* UINT _tx_trace_event_filter(
3078 ULONG event_filter_bits -> param_0
3079 ); */
_txm_module_manager_tx_trace_event_filter_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3080 static ALIGN_TYPE _txm_module_manager_tx_trace_event_filter_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3081 {
3082
3083 ALIGN_TYPE return_value;
3084
3085 return_value = (ALIGN_TYPE) _tx_trace_event_filter(
3086 (ULONG) param_0
3087 );
3088 return(return_value);
3089 }
3090 #endif
3091
3092 #ifndef TXM_TRACE_EVENT_UNFILTER_CALL_NOT_USED
3093 /* UINT _tx_trace_event_unfilter(
3094 ULONG event_unfilter_bits -> param_0
3095 ); */
_txm_module_manager_tx_trace_event_unfilter_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3096 static ALIGN_TYPE _txm_module_manager_tx_trace_event_unfilter_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3097 {
3098
3099 ALIGN_TYPE return_value;
3100
3101 return_value = (ALIGN_TYPE) _tx_trace_event_unfilter(
3102 (ULONG) param_0
3103 );
3104 return(return_value);
3105 }
3106 #endif
3107
3108 #ifndef TXM_TRACE_INTERRUPT_CONTROL_CALL_NOT_USED
3109 /* UINT _tx_trace_interrupt_control(
3110 UINT new_posture -> param_0
3111 ); */
_txm_module_manager_tx_trace_interrupt_control_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3112 static ALIGN_TYPE _txm_module_manager_tx_trace_interrupt_control_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3113 {
3114
3115 ALIGN_TYPE return_value;
3116
3117 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
3118 return(TXM_MODULE_INVALID_PROPERTIES);
3119
3120 return_value = (ALIGN_TYPE) _tx_trace_interrupt_control(
3121 (UINT) param_0
3122 );
3123 return(return_value);
3124 }
3125 #endif
3126
3127 #ifndef TXM_TRACE_ISR_ENTER_INSERT_CALL_NOT_USED
3128 /* VOID _tx_trace_isr_enter_insert(
3129 ULONG isr_id -> param_0
3130 ); */
_txm_module_manager_tx_trace_isr_enter_insert_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3131 static ALIGN_TYPE _txm_module_manager_tx_trace_isr_enter_insert_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3132 {
3133
3134 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
3135 return(TXM_MODULE_INVALID_PROPERTIES);
3136
3137 _tx_trace_isr_enter_insert(
3138 (ULONG) param_0
3139 );
3140 return(TX_SUCCESS);
3141 }
3142 #endif
3143
3144 #ifndef TXM_TRACE_ISR_EXIT_INSERT_CALL_NOT_USED
3145 /* VOID _tx_trace_isr_exit_insert(
3146 ULONG isr_id -> param_0
3147 ); */
_txm_module_manager_tx_trace_isr_exit_insert_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3148 static ALIGN_TYPE _txm_module_manager_tx_trace_isr_exit_insert_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3149 {
3150
3151 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_USER_MODE)
3152 return(TXM_MODULE_INVALID_PROPERTIES);
3153
3154 _tx_trace_isr_exit_insert(
3155 (ULONG) param_0
3156 );
3157 return(TX_SUCCESS);
3158 }
3159 #endif
3160
3161 #ifndef TXM_TRACE_USER_EVENT_INSERT_CALL_NOT_USED
3162 /* UINT _tx_trace_user_event_insert(
3163 ULONG event_id, -> param_0
3164 ULONG info_field_1, -> param_1
3165 ULONG info_field_2, -> extra_parameters[0]
3166 ULONG info_field_3, -> extra_parameters[1]
3167 ULONG info_field_4 -> extra_parameters[2]
3168 ); */
_txm_module_manager_tx_trace_user_event_insert_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)3169 static ALIGN_TYPE _txm_module_manager_tx_trace_user_event_insert_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
3170 {
3171
3172 ALIGN_TYPE return_value;
3173
3174 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
3175 {
3176 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[3])))
3177 return(TXM_MODULE_INVALID_MEMORY);
3178 }
3179
3180 return_value = (ALIGN_TYPE) _tx_trace_user_event_insert(
3181 (ULONG) param_0,
3182 (ULONG) param_1,
3183 (ULONG) extra_parameters[0],
3184 (ULONG) extra_parameters[1],
3185 (ULONG) extra_parameters[2]
3186 );
3187 return(return_value);
3188 }
3189 #endif
3190
3191 #ifndef TXM_MODULE_OBJECT_ALLOCATE_CALL_NOT_USED
3192 /* UINT _txm_module_object_allocate(
3193 VOID **object_ptr, -> param_0
3194 ULONG object_size -> param_1
3195 ); */
_txm_module_manager_txm_module_object_allocate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1)3196 static ALIGN_TYPE _txm_module_manager_txm_module_object_allocate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1)
3197 {
3198
3199 ALIGN_TYPE return_value;
3200
3201 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
3202 {
3203 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_0, sizeof(VOID *)))
3204 return(TXM_MODULE_INVALID_MEMORY);
3205 }
3206
3207 return_value = (ALIGN_TYPE) _txm_module_manager_object_allocate(
3208 (VOID **) param_0,
3209 (ULONG) param_1,
3210 module_instance
3211 );
3212 return(return_value);
3213 }
3214 #endif
3215
3216 #ifndef TXM_MODULE_OBJECT_DEALLOCATE_CALL_NOT_USED
3217 /* UINT _txm_module_object_deallocate(
3218 VOID *object_ptr -> param_0
3219 ); */
_txm_module_manager_txm_module_object_deallocate_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0)3220 static ALIGN_TYPE _txm_module_manager_txm_module_object_deallocate_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0)
3221 {
3222
3223 ALIGN_TYPE return_value;
3224 TXM_MODULE_ALLOCATED_OBJECT *object_ptr;
3225 ALIGN_TYPE object_end;
3226 ALIGN_TYPE object_pool_end;
3227
3228 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
3229 {
3230 /* Is the object pool created? */
3231 if (_txm_module_manager_object_pool_created == TX_TRUE)
3232 {
3233
3234 /* Get the module allocated object. */
3235 object_ptr = ((TXM_MODULE_ALLOCATED_OBJECT *) param_0) - 1;
3236
3237 /* Get the end address of the object pool. */
3238 object_pool_end = (ALIGN_TYPE) (_txm_module_manager_object_pool.tx_byte_pool_start + _txm_module_manager_object_pool.tx_byte_pool_size);
3239
3240 /* Check that the pointer is in the object pool. */
3241 if ((ALIGN_TYPE) object_ptr < (ALIGN_TYPE) _txm_module_manager_object_pool.tx_byte_pool_start ||
3242 (ALIGN_TYPE) object_ptr >= (ALIGN_TYPE) object_pool_end)
3243 {
3244 /* Pointer is outside of the object pool. */
3245 return(TXM_MODULE_INVALID_MEMORY);
3246 }
3247
3248 /* Get the end addresses of the object. */
3249 object_end = ((ALIGN_TYPE) object_ptr) + sizeof(TXM_MODULE_ALLOCATED_OBJECT) + object_ptr -> txm_module_object_size;
3250
3251 /* Check that the object is in the object pool. */
3252 if (object_end >= object_pool_end)
3253 {
3254 /* Object is outside of the object pool. */
3255 return(TXM_MODULE_INVALID_MEMORY);
3256 }
3257 }
3258 }
3259
3260 return_value = (ALIGN_TYPE) _txm_module_manager_object_deallocate(
3261 (VOID *) param_0
3262 );
3263 return(return_value);
3264 }
3265 #endif
3266
3267 #ifndef TXM_MODULE_OBJECT_POINTER_GET_CALL_NOT_USED
3268 /* UINT _txm_module_object_pointer_get(
3269 UINT object_type, -> param_0
3270 CHAR *name, -> param_1
3271 VOID **object_ptr -> param_2
3272 ); */
_txm_module_manager_txm_module_object_pointer_get_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE param_2)3273 static ALIGN_TYPE _txm_module_manager_txm_module_object_pointer_get_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2)
3274 {
3275
3276 ALIGN_TYPE return_value;
3277
3278 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
3279 {
3280 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
3281 return(TXM_MODULE_INVALID_MEMORY);
3282
3283 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, param_2, sizeof(VOID *)))
3284 return(TXM_MODULE_INVALID_MEMORY);
3285 }
3286
3287 return_value = (ALIGN_TYPE) _txm_module_manager_object_pointer_get(
3288 (UINT) param_0,
3289 (CHAR *) param_1,
3290 (VOID **) param_2
3291 );
3292 return(return_value);
3293 }
3294 #endif
3295
3296 #ifndef TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL_NOT_USED
3297 /* UINT _txm_module_object_pointer_get_extended(
3298 UINT object_type, -> param_0
3299 CHAR *name, -> param_1
3300 UINT name_length, -> extra_parameters[0]
3301 VOID **object_ptr -> extra_parameters[1]
3302 ); */
_txm_module_manager_txm_module_object_pointer_get_extended_dispatch(TXM_MODULE_INSTANCE * module_instance,ALIGN_TYPE param_0,ALIGN_TYPE param_1,ALIGN_TYPE * extra_parameters)3303 static ALIGN_TYPE _txm_module_manager_txm_module_object_pointer_get_extended_dispatch(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE *extra_parameters)
3304 {
3305
3306 ALIGN_TYPE return_value;
3307
3308 if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION)
3309 {
3310 if (!TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, param_1))
3311 return(TXM_MODULE_INVALID_MEMORY);
3312
3313 if (!TXM_MODULE_MANAGER_ENSURE_INSIDE_MODULE_DATA(module_instance, (ALIGN_TYPE)extra_parameters, sizeof(ALIGN_TYPE[2])))
3314 return(TXM_MODULE_INVALID_MEMORY);
3315
3316 if (!TXM_MODULE_MANAGER_PARAM_CHECK_BUFFER_WRITE(module_instance, extra_parameters[1], sizeof(VOID *)))
3317 return(TXM_MODULE_INVALID_MEMORY);
3318 }
3319
3320 return_value = (ALIGN_TYPE) _txm_module_manager_object_pointer_get_extended(
3321 (UINT) param_0,
3322 (CHAR *) param_1,
3323 (UINT) extra_parameters[0],
3324 (VOID **) extra_parameters[1]
3325 );
3326 return(return_value);
3327 }
3328 #endif
3329