template "WIND_TCB" description "WindRiver task control block" //applies_to disk big-endian // WIND_TCB-template for WinHex // 1.0.0 // http://jjaf.de/eci/hi-focus/atu-r/dumps/ begin // Q_NODE qNode; /* 0x00: multiway q node: rdy/pend q */ // hex 16 qNode // Q_NODE tickNode; /* 0x10: multiway q node: tick q */ // Q_NODE activeNode; /* 0x20: multiway q node: active q */ goto 48 hex 4 objCore // 0x30: object management */ hex 4 name // 0x34: pointer to task name */ hex 4 options // 0x38: task option bits */ uint32 status // 0x3c: status of task */ uint32 priority // 0x40: task's current priority */ uint32 priNormal // 0x44: task's normal priority */ uint32 priMutexCnt // 0x48: nested priority mutex owned */ goto 80 uint32 lockCnt // 0x50: preemption lock count */ uint32 tslice // 0x54: current count of time slice */ uint16 swapInMask // 0x58: task's switch in hooks */ uint16 swapOutMask // 0x5a: task's switch out hooks */ // Q_HEAD * pPendQ; /* 0x5c: q head pended on (if any) */ goto 96 uint32 safeCnt // 0x60: safe-from-delete count */ // Q_HEAD safetyQHead; /* 0x64: safe-from-delete q head */ goto 116 hex 4 entry // 0x74: entry point of task */ hex 4 pStackBase // 0x78: points to bottom of stack */ hex 4 pStackLimit // 0x7c: points to stack limit */ hex 4 pStackEnd // 0x80: points to init stack limit */ int32 errorStatus // 0x84: most recent task error */ int32 exitCode // 0x88: error passed to exit () */ // struct sigtcb * pSignalInfo; /* 0x8c: ptr to signal info for task */ // SEMAPHORE selectSem; /* 0x90: select semaphore */ // struct selWkNode * pSelWakeupNode; /* 0xac: task's select info */ goto 176 uint32 taskTicks // 0xb0: total number of ticks */ uint32 taskIncTicks // 0xb4: number of ticks in slice */ // struct taskVar * pTaskVar; /* 0xb8: ptr to task variable list */ // struct rpcModList * pRPCModList; /* 0xbc: ptr to rpc module statics */ // struct fpContext * pFpContext; /* 0xc0: fpoint coprocessor context */ // struct __sFILE * taskStdFp[3]; /* 0xc4: stdin,stdout,stderr fps */ // int taskStd[3]; /* 0xd0: stdin,stdout,stderr fds */ goto 208 uint32 stdin uint32 stdout uint32 stderr hex 4 ppEnviron // 0xdc: environment var table */ hex 4 envTblSize // 0xe0: number of slots in table */ hex 4 nEnvVarEntries // 0xe4: num env vars used */ // struct sm_obj_tcb * pSmObjTcb; /* 0xe8: shared mem object TCB */ goto 236 int32 windxLock // 0xec: lock for windX */ // int pad1[2]; /* 0xf0: padding to replace DBG_INFO */ // void * pComLocal; /* 0xf8: ptr to COM task-local storage */ // REG_SET * pExcRegSet; /* 0xfc: exception regSet ptr or NULL */ goto 256 int32 reserved1 // 0x100: possible user extension */ int32 reserved2 // 0x104: possible user extension */ int32 spare1 // 0x108: possible user extension */ int32 spare2 // 0x10c: possible user extension */ int32 spare3 // 0x110: possible user extension */ int32 spare4 // 0x114: possible user extension */ end