- Timestamp:
- Jul 10, 2001, 7:22:57 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/include/OS2KTCB.h
r4787 r6282 1 /* $Id: OS2KTCB.h,v 1. 2 2000-12-11 06:53:50bird Exp $1 /* $Id: OS2KTCB.h,v 1.3 2001-07-10 05:22:57 bird Exp $ 2 2 * 3 3 * TCB - Thread Control Block access methods. … … 8 8 * 9 9 */ 10 #ifndef _ tcb_h_11 #define _ tcb_h_10 #ifndef _OS2KTCB_h_ 11 #define _OS2KTCB_h_ 12 12 13 13 #ifdef __cplusplus 14 14 extern "C" { 15 15 #endif 16 17 /******************************************************************************* 18 * Defined Constants And Macros * 19 *******************************************************************************/ 20 /* 21 * sg24-4640-00: TCBForcedActions flag definitions: 22 */ 23 #define TK_FF_BUF 0x00000001 /* Buffer must be released */ 24 #define TK_FF_EXIT 0x00000002 /* Call TKExit (old FF_DES) */ 25 #define TK_FF_CRITSEC 0x00000004 /* Enter Per-task critical section */ 26 #define TK_FF_ICE 0x00000008 /* Freeze thread */ 27 #define TK_FF_NPX 0x00000010 /* NPX Error */ 28 #define TK_FF_TIB 0x00000020 /* Update the TIB */ 29 #define TK_FF_TRC 0x00000040 /* Enter Debug */ 30 #define TK_FF_SIG 0x00000080 /* Signal pending */ 31 #define TK_FF_CTXH 0x00000100 /* Pending local context hooks */ 32 #define TK_FF_STIH 0x00000200 /* Execute STI hooks */ 33 #define TK_FF_VDMBP 0x00000400 /* Execute VDM BP hooks */ 34 #define TK_FF_RTRY 0x00000800 /* Retry V86 system call */ 35 #define TK_FF_PIB 0x00001000 /* Update the PIB */ 36 #define TK_FF_SCH 0x00002000 /* Do Scheuler Processing */ 37 #define TK_FF_TFBIT 0x00004000 /* Validate user eflags TF bit */ 38 #define TK_FF_TIBPRI 0x00008000 /* Update only the priority fields in TIB */ 39 40 41 /* 42 * sg24-4640-00: TCBEntryActions flag definitions: 43 */ 44 #define TK_EF_PFCLI 1 /* Page fault inside CLI */ 45 #define TK_EF_TRC 2 /* DosDebug action pending */ 46 47 48 /* 49 * sg24-4640-00: TCBWakeFlags flag definitions: 50 */ 51 #define TK_WF_INTERRUPTED 0x01 /* Sleep was interrupted */ 52 #define TK_WF_TIMEEXP 0x02 /* Timeout expired */ 53 #define TK_WF_INTPENDING 0x04 /* Interrupt pending */ 54 #define TK_WF_SINGLEWAKEUP 0x08 /* Thread wants single wakeup */ 55 #define TK_WF_INTERRUPTIBLE 0x10 /* Thread blocked interruptibly */ 56 #define TK_WF_TIMEOUT 0x20 /* Thread blocked with timeout */ 57 #define TK_WF_SLEEPING 0x40 /* In TKSleep() */ 58 59 60 /* 61 * sg24-4640-00: TCBState and TCBQState definitions: 62 */ 63 #define STATE_VOID 0 /* Uninitialized */ 64 #define STATE_READY 1 /* Ready to run */ 65 #define STATE_BLOCKED 2 /* Blocked on an ID */ 66 #define STATE_SUSPENDED 3 /* Suspended (DosSuspendThread) */ 67 #define STATE_CRITSEC 4 /* Blocked by another CritSec thread */ 68 #define STATE_RUNNING 5 /* Thread currently running */ 69 #define STATE_READYBOOST 6 /* Ready, but apply an IO boost */ 70 #define STATE_TSD 7 /* Thread waiting for TSD */ 71 #define STATE_DELAYED 8 /* Delayed TKWakeup (Almost Ready) */ 72 #define STATE_FROZEN 9 /* Frozen Thread (FF_ICE) */ 73 #define STATE_GETSTACK 10 /* Incomming TSD */ 74 #define STATE_BADSTACK 11 /* TSD failed to swap in */ 75 76 77 /* 78 * sg24-4640-00: TCBPriClassMod definitions: 79 */ 80 #define CLASSMOD_KEYBOARD 0x04 /* Keyboard boost */ 81 #define CLASSMOD_STARVED 0x08 /* Starvation boost */ 82 #define CLASSMOD_DEVICE 0x10 /* Device I/O Done Boost */ 83 #define CLASSMOD_FOREGROUND 0x20 /* Foreground boost */ 84 #define CLASSMOD_WINDOW 0x40 /* Window Boost */ 85 #define CLASSMOD_VDM_INTERRUPT 0x80 /* VDM simulated interrupt boost */ 86 87 88 /* 89 * sg24-4640-00: TCBPriClass definitions: 90 */ 91 #define CLASS_NOCHANGE 0x00 /* No priority class change */ 92 #define CLASS_IDLE_TIME 0x01 /* Idle - Time class */ 93 #define CLASS_REGULAR 0x02 /* Regular class */ 94 #define CLASS_TIME_CRITICAL 0x03 /* Time-Critical class */ 95 #define CLASS_SERVER 0x04 /* Client-Server Server class */ 96 97 98 /* 99 * sg24-4640-00: TCBSchFlg flag definitions: 100 */ 101 #define SCH_PROTECTED_PRI 0x0001 /* Only Intra-process SetPri allowed */ 102 #define SCH_WINDOWBOOST_LOCK 0x0002 /* Lock out windoboost changes */ 103 #define SCH_MINSLICE 0x0004 /* Use minimum timeslice */ 104 #define SCH_PAGE_FAULT 0x0008 /* Dynamic timeslicing ### */ 105 #define SCH_PAGE_FAULT_BIT 0x03 /* Dynamic timeslicing P728371 */ 106 107 108 /* 109 * sg24-4640-00: TCBfSwapping flag definitions: 110 */ 111 #define SM_TCB_SWAPPING 0x01 /* swap i/o underway */ 112 #define SM_TCB_RESIZING 0x02 /* data structures are growing */ 113 114 115 /* 116 * sg24-4640-00: TCBMiscFlags flag definitions: 117 */ 118 #define TMF_CMapFailed (0x01) /* Set if alloc/realloc failed on a cluster */ 119 /* map (mft_selCMap). */ 120 #define TMF_IGNORE_HE (0x02) /* If set, ignore (auto fail) hard error */ 121 #define TMF_MULT_XCPT (0x04) /* Set if multiple ring 0 exceptions */ 122 #define TMF_NoFwd (0x08) /* Set if inhibiting forwarders */ 123 #define TMF_EXIT_TERM (0x10) /* TK_FF_EXIT means TKTermThread */ 124 #define TMF_NO_EXCEPT (0x20) /* Indicates TIB exception field invalid */ 125 #define TMF_XCPT_HE (0x40) /* Indicates an exception harderr is */ 126 /* pending */ 127 128 129 /* 130 * sg24-4640-00: TCBMSpareFlags flag definitions: 131 */ 132 #define SPFLAGS_FGND_DISKIO 0x0080 /* Foreground Disk I/O */ 133 134 135 /* 136 * sg24-4640-00: TCBReqPktFlg flag definitions: 137 */ 138 #define TK_RP_ALLOCATED 0x01 139 #define TK_RP_INUSE 0x02 140 16 141 17 142 … … 23 148 char dummy; 24 149 } TCB, *PTCB, **PPTCB; 25 26 27 150 28 151 extern PPTCB ppTCBCur;
Note:
See TracChangeset
for help on using the changeset viewer.