Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenke.h
Go to the documentation of this file.
00001 $if (_WDMDDK_) 00002 00003 /* Interrupt request levels */ 00004 #define PASSIVE_LEVEL 0 00005 #define LOW_LEVEL 0 00006 #define APC_LEVEL 1 00007 #define DISPATCH_LEVEL 2 00008 #define PROFILE_LEVEL 27 00009 #define CLOCK1_LEVEL 28 00010 #define CLOCK2_LEVEL 28 00011 #define IPI_LEVEL 29 00012 #define POWER_LEVEL 30 00013 #define HIGH_LEVEL 31 00014 00015 // 00016 // Used to contain PFNs and PFN counts 00017 // 00018 typedef ULONG PFN_COUNT; 00019 typedef ULONG PFN_NUMBER, *PPFN_NUMBER; 00020 typedef LONG SPFN_NUMBER, *PSPFN_NUMBER; 00021 00022 00023 typedef struct _KFLOATING_SAVE { 00024 ULONG Dummy; 00025 } KFLOATING_SAVE, *PKFLOATING_SAVE; 00026 00027 typedef struct _KPCR_TIB { 00028 PVOID ExceptionList; /* 00 */ 00029 PVOID StackBase; /* 04 */ 00030 PVOID StackLimit; /* 08 */ 00031 PVOID SubSystemTib; /* 0C */ 00032 _ANONYMOUS_UNION union { 00033 PVOID FiberData; /* 10 */ 00034 ULONG Version; /* 10 */ 00035 } DUMMYUNIONNAME; 00036 PVOID ArbitraryUserPointer; /* 14 */ 00037 struct _KPCR_TIB *Self; /* 18 */ 00038 } KPCR_TIB, *PKPCR_TIB; /* 1C */ 00039 00040 #define PCR_MINOR_VERSION 1 00041 #define PCR_MAJOR_VERSION 1 00042 00043 typedef struct _KPCR { 00044 KPCR_TIB Tib; /* 00 */ 00045 struct _KPCR *Self; /* 1C */ 00046 struct _KPRCB *Prcb; /* 20 */ 00047 KIRQL Irql; /* 24 */ 00048 ULONG IRR; /* 28 */ 00049 ULONG IrrActive; /* 2C */ 00050 ULONG IDR; /* 30 */ 00051 PVOID KdVersionBlock; /* 34 */ 00052 PUSHORT IDT; /* 38 */ 00053 PUSHORT GDT; /* 3C */ 00054 struct _KTSS *TSS; /* 40 */ 00055 USHORT MajorVersion; /* 44 */ 00056 USHORT MinorVersion; /* 46 */ 00057 KAFFINITY SetMember; /* 48 */ 00058 ULONG StallScaleFactor; /* 4C */ 00059 UCHAR SpareUnused; /* 50 */ 00060 UCHAR Number; /* 51 */ 00061 } KPCR, *PKPCR; /* 54 */ 00062 00063 #define KeGetPcr() PCR 00064 00065 #define YieldProcessor() __asm__ __volatile__("nop"); 00066 00067 FORCEINLINE 00068 ULONG 00069 NTAPI 00070 KeGetCurrentProcessorNumber(VOID) 00071 { 00072 ULONG Number; 00073 __asm__ __volatile__ ( 00074 "lwz %0, %c1(12)\n" 00075 : "=r" (Number) 00076 : "i" (FIELD_OFFSET(KPCR, Number)) 00077 ); 00078 return Number; 00079 } 00080 00081 NTHALAPI 00082 VOID 00083 FASTCALL 00084 KfLowerIrql( 00085 IN KIRQL NewIrql); 00086 #define KeLowerIrql(a) KfLowerIrql(a) 00087 00088 NTHALAPI 00089 KIRQL 00090 FASTCALL 00091 KfRaiseIrql( 00092 IN KIRQL NewIrql); 00093 #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) 00094 00095 NTHALAPI 00096 KIRQL 00097 NTAPI 00098 KeRaiseIrqlToDpcLevel(VOID); 00099 00100 NTHALAPI 00101 KIRQL 00102 NTAPI 00103 KeRaiseIrqlToSynchLevel(VOID); 00104 00105 $endif 00106 00107 Generated on Fri May 25 2012 04:31:54 for ReactOS by
1.7.6.1
|