Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
comparison VMS.h @ 127:24466227d8bb
bugs fixed, code is now compiling
| author | Merten Sach <msach@mailbox.tu-berlin.de> |
|---|---|
| date | Wed, 07 Sep 2011 17:45:05 +0200 |
| parents | d4c881c7f03a |
| children | dbfc8382d546 |
comparison
equal
deleted
inserted
replaced
| 54:1ecbcb5e6626 | 55:0499200fe588 |
|---|---|
| 111 //=========================================================================== | 111 //=========================================================================== |
| 112 typedef unsigned long long TSCount; | 112 typedef unsigned long long TSCount; |
| 113 | 113 |
| 114 typedef struct _SchedSlot SchedSlot; | 114 typedef struct _SchedSlot SchedSlot; |
| 115 typedef struct _VMSReqst VMSReqst; | 115 typedef struct _VMSReqst VMSReqst; |
| 116 typedef struct _VirtProcr VirtProcr; | |
| 116 typedef struct _InterMasterReqst InterMasterReqst; | 117 typedef struct _InterMasterReqst InterMasterReqst; |
| 117 typedef struct _IntervalProbe IntervalProbe; | 118 typedef struct _IntervalProbe IntervalProbe; |
| 118 typedef struct _GateStruc GateStruc; | 119 typedef struct _GateStruc GateStruc; |
| 119 | 120 |
| 120 | 121 |
| 187 enum InterVMSCoreReqType | 188 enum InterVMSCoreReqType |
| 188 { | 189 { |
| 189 transfer_free_ptr = 1 //avoid starting enums at 0, for debug reasons | 190 transfer_free_ptr = 1 //avoid starting enums at 0, for debug reasons |
| 190 }; | 191 }; |
| 191 | 192 |
| 192 typedef struct //Doing a trick to save space & time -- allocate space | 193 //Doing a trick to save space & time -- allocate space |
| 193 { // for this, cast first as InterMaster then as this | 194 // for this, cast first as InterMaster then as this |
| 195 typedef struct | |
| 196 { | |
| 194 enum InterMasterReqstType reqType; //duplicate InterMasterReqst at top | 197 enum InterMasterReqstType reqType; //duplicate InterMasterReqst at top |
| 195 InterMasterReqst *nextReqst; | 198 InterMasterReqst *nextReqst; |
| 196 | 199 |
| 197 enum InterVMSCoreReqType secondReqType; | 200 enum InterVMSCoreReqType secondReqType; |
| 198 void *freePtr; //pile up fields, add as needed | 201 void *freePtr; //pile up fields, add as needed |
| 199 } | 202 } InterVMSCoreReqst; |
| 200 InterVMSCoreReqst; | |
| 201 | |
| 202 | 203 |
| 203 //This is for requests between plugins on different cores | 204 //This is for requests between plugins on different cores |
| 204 // Here, after casting, the pluginReq is extracted and handed to plugin | 205 // Here, after casting, the pluginReq is extracted and handed to plugin |
| 205 typedef struct //Doing a trick to save space & time -- allocate space | 206 //Doing a trick to save space & time -- allocate space |
| 206 { // for this, cast first as InterMaster then as this | 207 // for this, cast first as InterMaster then as this |
| 208 typedef struct | |
| 209 { | |
| 207 enum InterMasterReqstType reqType; //copy InterMasterReqst at top | 210 enum InterMasterReqstType reqType; //copy InterMasterReqst at top |
| 208 InterMasterReqst *nextReqst; | 211 InterMasterReqst *nextReqst; |
| 209 | 212 |
| 210 void *pluginReq; //plugin will cast to approp type | 213 void *pluginReq; //plugin will cast to approp type |
| 211 } | 214 } InterPluginReqst; |
| 212 InterPluginReqst; | |
| 213 | |
| 214 | 215 |
| 215 //==================== Core data structures =================== | 216 //==================== Core data structures =================== |
| 216 | 217 |
| 217 struct _SchedSlot | 218 struct _SchedSlot |
| 218 { | 219 { |
| 268 { | 269 { |
| 269 SlaveScheduler slaveScheduler; | 270 SlaveScheduler slaveScheduler; |
| 270 RequestHandler requestHandler; | 271 RequestHandler requestHandler; |
| 271 | 272 |
| 272 SchedSlot ***allSchedSlots; | 273 SchedSlot ***allSchedSlots; |
| 273 VMSQueueStruc **readyToAnimateQs; | 274 VMSQueueStruc **readyToAnimateQs; |
| 274 VirtProcr **masterVPs; | 275 VirtProcr **masterVPs; |
| 275 | 276 |
| 276 void *semanticEnv; | 277 void *semanticEnv; |
| 277 void *OSEventStruc; //for future, when add I/O to BLIS | 278 void *OSEventStruc; //for future, when add I/O to BLIS |
| 278 MallocProlog *freeListHead; | 279 MallocProlog *freeListHead; |
| 285 | 286 |
| 286 int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP | 287 int32 numMasterInARow[NUM_CORES];//detect back-to-back masterVP |
| 287 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal | 288 GateStruc *workStealingGates[ NUM_CORES ]; //concurrent work-steal |
| 288 int32 workStealingLock; | 289 int32 workStealingLock; |
| 289 | 290 |
| 290 int32 numProcrsCreated; //gives ordering to processor creation | 291 InterMasterReqst* interMasterRequestsFor[NUM_CORES]; |
| 292 RequestHandler interPluginReqHdlr; | |
| 293 | |
| 294 int32 numProcrsCreated; //gives ordering to processor creation | |
| 291 | 295 |
| 292 //=========== MEASUREMENT STUFF ============= | 296 //=========== MEASUREMENT STUFF ============= |
| 293 IntervalProbe **intervalProbes; | 297 IntervalProbe **intervalProbes; |
| 294 PrivDynArrayInfo *dynIntervalProbesInfo; | 298 PrivDynArrayInfo *dynIntervalProbesInfo; |
| 295 HashTable *probeNameHashTbl; | 299 HashTable *probeNameHashTbl; |
| 296 int32 masterCreateProbeID; | 300 int32 masterCreateProbeID; |
| 297 float64 createPtInSecs; | 301 float64 createPtInSecs; |
| 298 Histogram **measHists; | 302 Histogram **measHists; |
| 299 PrivDynArrayInfo *measHistsInfo; | 303 PrivDynArrayInfo *measHistsInfo; |
| 300 #ifdef MEAS__TIME_PLUGIN | 304 #ifdef MEAS__TIME_PLUGIN |
| 301 Histogram *reqHdlrLowTimeHist; | 305 Histogram *reqHdlrLowTimeHist; |
| 302 Histogram *reqHdlrHighTimeHist; | 306 Histogram *reqHdlrHighTimeHist; |
| 303 #endif | 307 #endif |
| 304 #ifdef MEAS__TIME_MALLOC | 308 #ifdef MEAS__TIME_MALLOC |
| 305 Histogram *mallocTimeHist; | 309 Histogram *mallocTimeHist; |
| 306 Histogram *freeTimeHist; | 310 Histogram *freeTimeHist; |
| 307 #endif | 311 #endif |
| 308 #ifdef MEAS__TIME_MASTER_LOCK | 312 #ifdef MEAS__TIME_MASTER_LOCK |
| 309 Histogram *masterLockLowTimeHist; | 313 Histogram *masterLockLowTimeHist; |
| 310 Histogram *masterLockHighTimeHist; | 314 Histogram *masterLockHighTimeHist; |
| 311 #endif | 315 #endif |
| 312 } | 316 } |
| 313 MasterEnv; | 317 MasterEnv; |
| 314 | 318 |
| 315 //========================= Extra Stuff Data Strucs ======================= | 319 //========================= Extra Stuff Data Strucs ======================= |
