comparison VMS.h @ 243:227cd4d33d94

fixed pointing slave to a TLF, added ones that don't trash stack fixed names
author Sean <seanhalle@yahoo.com>
date Thu, 17 May 2012 20:39:44 +0200
parents 7ed97c961901
children f1267bc7b342
comparison
equal deleted inserted replaced
118:e6ece53bc94c 119:45e63f8c98a3
8 8
9 #ifndef _VMS_H 9 #ifndef _VMS_H
10 #define _VMS_H 10 #define _VMS_H
11 #define _GNU_SOURCE 11 #define _GNU_SOURCE
12 12
13 #include "VMS_primitive_data_types.h"
14 #include "DynArray/DynArray.h" 13 #include "DynArray/DynArray.h"
15 #include "Hash_impl/PrivateHash.h" 14 #include "Hash_impl/PrivateHash.h"
16 #include "Histogram/Histogram.h" 15 #include "Histogram/Histogram.h"
17 #include "Queue_impl/PrivateQueue.h" 16 #include "Queue_impl/PrivateQueue.h"
17
18 #include "VMS_primitive_data_types.h"
18 #include "Services_Offered_by_VMS/Memory_Handling/vmalloc.h" 19 #include "Services_Offered_by_VMS/Memory_Handling/vmalloc.h"
19 20
20 #include <pthread.h> 21 #include <pthread.h>
21 #include <sys/time.h> 22 #include <sys/time.h>
22 23
47 MEAS__Insert_Counter_Handler 48 MEAS__Insert_Counter_Handler
48 //======================================== 49 //========================================
49 50
50 //============================ HW Dependent Fns ================================ 51 //============================ HW Dependent Fns ================================
51 52
52 #include "Hardware_Dependent/VMS__HW_measurement.h" 53 #include "HW_Dependent_Primitives/VMS__HW_measurement.h"
53 #include "Hardware_Dependent/VMS__primitives.h" 54 #include "HW_Dependent_Primitives/VMS__primitives.h"
54 55
55 56
56 //============= Request Related =========== 57 //============= Request Related ===========
57 // 58 //
58 59
154 155
155 /* The one and only global variable, holds many odds and ends 156 /* The one and only global variable, holds many odds and ends
156 */ 157 */
157 typedef struct 158 typedef struct
158 { //The offsets of these fields are hard-coded into assembly 159 { //The offsets of these fields are hard-coded into assembly
159 void *coreCtlrReturnPt; //offset of field used in asm 160 void *coreCtlrReturnPt; //offset to this field used in asm
160 int8 falseSharePad1[256 - sizeof(void*)]; 161 int8 falseSharePad1[256 - sizeof(void*)];
161 int32 masterLock; //offset of field used in asm 162 int32 masterLock; //offset to this field used in asm
162 int8 falseSharePad2[256 - sizeof(int32)]; 163 int8 falseSharePad2[256 - sizeof(int32)];
163 //============ below this, no fields are used in asm ============= 164 //============ below this, no fields are used in asm =============
164 165
165 //Basic VMS infrastructure 166 //Basic VMS infrastructure
166 SlaveVP **masterVPs; 167 SlaveVP **masterVPs;
287 inline SlaveVP * 288 inline SlaveVP *
288 VMS_int__create_slaveVP_helper( SlaveVP *newSlv, TopLevelFnPtr fnPtr, 289 VMS_int__create_slaveVP_helper( SlaveVP *newSlv, TopLevelFnPtr fnPtr,
289 void *dataParam, void *stackLocs ); 290 void *dataParam, void *stackLocs );
290 291
291 inline void 292 inline void
292 VMS_int__point_slaveVP_to_Fn( SlaveVP *slaveVP, TopLevelFnPtr fnPtr, 293 VMS_int__reset_slaveVP_to_TopLvlFn( SlaveVP *slaveVP, TopLevelFnPtr fnPtr,
293 void *dataParam); 294 void *dataParam);
295
296 inline void
297 VMS_int__point_slaveVP_to_OneParamFn( SlaveVP *slaveVP, void *fnPtr,
298 void *param);
299
300 inline void
301 VMS_int__point_slaveVP_to_TwoParamFn( SlaveVP *slaveVP, void *fnPtr,
302 void *param1, void *param2);
294 303
295 void 304 void
296 VMS_int__dissipate_slaveVP( SlaveVP *slaveToDissipate ); 305 VMS_int__dissipate_slaveVP( SlaveVP *slaveToDissipate );
297 #define VMS_PI__dissipate_slaveVP VMS_int__dissipate_slaveVP 306 #define VMS_PI__dissipate_slaveVP VMS_int__dissipate_slaveVP
298 //WL: dissipate a SlaveVP by sending a request 307 //WL: dissipate a SlaveVP by sending a request