ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ke.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.