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

ketypes.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0095
00002 
00003 Copyright (c) Alex Ionescu.  All rights reserved.
00004 
00005 Header Name:
00006 
00007     ketypes.h (PPC)
00008 
00009 Abstract:
00010 
00011     PowerPC Type definitions for the Kernel services.
00012 
00013 Author:
00014 
00015     Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
00016 
00017 --*/
00018 
00019 #ifndef _POWERPC_KETYPES_H
00020 #define _POWERPC_KETYPES_H
00021 
00022 //
00023 // Dependencies
00024 //
00025 
00026 //
00027 // IPI Types
00028 //
00029 #define IPI_APC                 1
00030 #define IPI_DPC                 2
00031 #define IPI_FREEZE              3
00032 #define IPI_PACKET_READY        4
00033 #define IPI_SYNCH_REQUEST       10
00034 #define MAXIMUM_VECTOR          0x100
00035 
00036 #define KSEG0_BASE 0x80000000
00037 
00038 #define PRCB_MAJOR_VERSION 1
00039 #define PRCB_BUILD_DEBUG 1
00040 
00041 #ifndef ROUND_UP
00042 #define ROUND_UP(x,y) (((x) + ((y)-1)) & ~((y)-1))
00043 #endif
00044 
00045 typedef double DOUBLE;
00046 
00047 typedef struct _FX_SAVE_AREA {
00048     ULONG Fr[32];
00049 } FX_SAVE_AREA, *PFX_SAVE_AREA;
00050 
00051 typedef struct _FXSAVE_FORMAT
00052 {
00053     ULONG Xer,Fpscr;
00054 } FXSAVE_FORMAT, *PFXSAVE_FORMAT;
00055 
00056 typedef struct _LDT_ENTRY {
00057     USHORT LimitLow;
00058     USHORT BaseLow;
00059     union
00060     {
00061         struct
00062         {
00063             UCHAR BaseMid;
00064             UCHAR Flags1;
00065             UCHAR Flags2;
00066             UCHAR BaseHi;
00067         } Bytes;
00068         struct
00069         {
00070             ULONG BaseMid : 8;
00071             ULONG Type : 5;
00072             ULONG Dpl : 2;
00073             ULONG Pres : 1;
00074             ULONG LimitHi : 4;
00075             ULONG Sys : 1;
00076             ULONG Reserved_0 : 1;
00077             ULONG Default_Big : 1;
00078             ULONG Granularity : 1;
00079             ULONG BaseHi : 8;
00080         } Bits;
00081     } HighWord;
00082 } LDT_ENTRY;
00083 
00084 #ifndef CONFIG_SMP
00085 #define SYNCH_LEVEL DISPATCH_LEVEL
00086 #else
00087 #define SYNCH_LEVEL (IPI_LEVEL - 1)
00088 #endif
00089 
00090 //
00091 // Trap Frame Definition
00092 //
00093 typedef struct _KTRAP_FRAME
00094 {
00095     PVOID TrapFrame;
00096     UCHAR OldIrql;
00097     UCHAR PreviousMode;
00098     UCHAR SavedApcStateIndex;
00099     UCHAR SavedKernelApcDisable;
00100     UCHAR ExceptionRecord[ROUND_UP(sizeof(EXCEPTION_RECORD), sizeof(ULONGLONG))];
00101     ULONG FILL2;
00102     ULONG Gpr0;
00103     ULONG Gpr1;
00104     ULONG Gpr2;
00105     ULONG Gpr3;
00106     ULONG Gpr4;
00107     ULONG Gpr5;
00108     ULONG Gpr6;
00109     ULONG Gpr7;
00110     ULONG Gpr8;
00111     ULONG Gpr9;
00112     ULONG Gpr10;
00113     ULONG Gpr11;
00114     ULONG Gpr12;
00115     DOUBLE Fpr0;
00116     DOUBLE Fpr1;
00117     DOUBLE Fpr2;
00118     DOUBLE Fpr3;
00119     DOUBLE Fpr4;
00120     DOUBLE Fpr5;
00121     DOUBLE Fpr6;
00122     DOUBLE Fpr7;
00123     DOUBLE Fpr8;
00124     DOUBLE Fpr9;
00125     DOUBLE Fpr10;
00126     DOUBLE Fpr11;
00127     DOUBLE Fpr12;
00128     DOUBLE Fpr13;
00129     DOUBLE Fpscr;
00130     ULONG Cr;
00131     ULONG Xer;
00132     ULONG Msr;
00133     ULONG Iar;
00134     ULONG Lr;
00135     ULONG Ctr;
00136     ULONG Dr0;
00137     ULONG Dr1;
00138     ULONG Dr2;
00139     ULONG Dr3;
00140     ULONG Dr4;
00141     ULONG Dr5;
00142     ULONG Dr6;
00143     ULONG Dr7;
00144 } KTRAP_FRAME, *PKTRAP_FRAME;
00145 
00146 //
00147 // GDT Entry Definition
00148 //
00149 typedef struct _KGDTENTRY
00150 {
00151     USHORT LimitLow;
00152     USHORT BaseLow;
00153     union
00154     {
00155         struct
00156         {
00157             UCHAR BaseMid;
00158             UCHAR Flags1;
00159             UCHAR Flags2;
00160             UCHAR BaseHi;
00161         } Bytes;
00162         struct
00163         {
00164             ULONG BaseMid:8;
00165             ULONG Type:5;
00166             ULONG Dpl:2;
00167             ULONG Pres:1;
00168             ULONG LimitHi:4;
00169             ULONG Sys:1;
00170             ULONG Reserved_0:1;
00171             ULONG Default_Big:1;
00172             ULONG Granularity:1;
00173             ULONG BaseHi:8;
00174         } Bits;
00175     } HighWord;
00176 } KGDTENTRY, *PKGDTENTRY;
00177 
00178 //
00179 // IDT Entry Definition
00180 //
00181 typedef struct _KIDTENTRY
00182 {
00183     USHORT Offset;
00184     USHORT Selector;
00185     USHORT Access;
00186     USHORT ExtendedOffset;
00187 } KIDTENTRY, *PKIDTENTRY;
00188 
00189 typedef struct _DESCRIPTOR
00190 {
00191     USHORT Pad;
00192     USHORT Limit;
00193     ULONG Base;
00194 } KDESCRIPTOR, *PKDESCRIPTOR;
00195 
00196 //
00197 // Special Registers Structure (outside of CONTEXT)
00198 //
00199 typedef struct _KSPECIAL_REGISTERS
00200 {
00201     ULONG KernelDr0;
00202     ULONG KernelDr1;
00203     ULONG KernelDr2;
00204     ULONG KernelDr3;
00205     ULONG KernelDr4;
00206     ULONG KernelDr5;
00207     ULONG KernelDr6;
00208     ULONG KernelDr7;
00209     ULONG Sprg0;
00210     ULONG Sprg1;
00211     ULONG Sr0;
00212     ULONG Sr1;
00213     ULONG Sr2;
00214     ULONG Sr3;
00215     ULONG Sr4;
00216     ULONG Sr5;
00217     ULONG Sr6;
00218     ULONG Sr7;
00219     ULONG Sr8;
00220     ULONG Sr9;
00221     ULONG Sr10;
00222     ULONG Sr11;
00223     ULONG Sr12;
00224     ULONG Sr13;
00225     ULONG Sr14;
00226     ULONG Sr15;
00227     ULONG DBAT0L;
00228     ULONG DBAT0U;
00229     ULONG DBAT1L;
00230     ULONG DBAT1U;
00231     ULONG DBAT2L;
00232     ULONG DBAT2U;
00233     ULONG DBAT3L;
00234     ULONG DBAT3U;
00235     ULONG IBAT0L;
00236     ULONG IBAT0U;
00237     ULONG IBAT1L;
00238     ULONG IBAT1U;
00239     ULONG IBAT2L;
00240     ULONG IBAT2U;
00241     ULONG IBAT3L;
00242     ULONG IBAT3U;
00243     ULONG Sdr1;
00244     ULONG Reserved[9];
00245 } KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS;
00246 
00247 //
00248 // Processor State Data
00249 //
00250 #pragma pack(push,4)
00251 typedef struct _KPROCESSOR_STATE
00252 {
00253     CONTEXT ContextFrame;
00254     KSPECIAL_REGISTERS SpecialRegisters;
00255 } KPROCESSOR_STATE, *PKPROCESSOR_STATE;
00256 
00257 //
00258 // Processor Region Control Block
00259 //
00260 typedef struct _KPRCB
00261 {
00262     USHORT MinorVersion;
00263     USHORT MajorVersion;
00264     struct _KTHREAD *CurrentThread;
00265     struct _KTHREAD *NextThread;
00266     struct _KTHREAD *IdleThread;
00267     UCHAR Number;
00268     UCHAR Reserved;
00269     USHORT BuildType;
00270     KAFFINITY SetMember;
00271     UCHAR CpuType;
00272     UCHAR CpuID;
00273     USHORT CpuStep;
00274     KPROCESSOR_STATE ProcessorState;
00275     ULONG KernelReserved[16];
00276     ULONG HalReserved[16];
00277 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00278     ULONG CFlushSize;
00279     UCHAR PrcbPad0[88];
00280 #else
00281     UCHAR PrcbPad0[92];
00282 #endif
00283     KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock];
00284     struct _KTHREAD *NpxThread;
00285     ULONG InterruptCount;
00286     ULONG KernelTime;
00287     ULONG UserTime;
00288     ULONG DpcTime;
00289     ULONG DebugDpcTime;
00290     ULONG InterruptTime;
00291     ULONG AdjustDpcThreshold;
00292     ULONG PageColor;
00293     UCHAR SkipTick;
00294     UCHAR DebuggerSavedIRQL;
00295 #if (NTDDI_VERSION >= NTDDI_WS03)
00296     UCHAR NodeColor;
00297 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00298     UCHAR PollSlot;
00299 #else
00300     UCHAR Spare1;
00301 #endif
00302     ULONG NodeShiftedColor;
00303 #else
00304     UCHAR Spare1[6];
00305 #endif
00306     struct _KNODE *ParentNode;
00307     ULONG MultiThreadProcessorSet;
00308     struct _KPRCB *MultiThreadSetMaster;
00309 #if (NTDDI_VERSION >= NTDDI_WS03)
00310     ULONG SecondaryColorMask;
00311 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00312     ULONG DpcTimeLimit;
00313 #else
00314     LONG Sleeping;
00315 #endif
00316 #else
00317     ULONG ThreadStartCount[2];
00318 #endif
00319     ULONG CcFastReadNoWait;
00320     ULONG CcFastReadWait;
00321     ULONG CcFastReadNotPossible;
00322     ULONG CcCopyReadNoWait;
00323     ULONG CcCopyReadWait;
00324     ULONG CcCopyReadNoWaitMiss;
00325 #if (NTDDI_VERSION < NTDDI_LONGHORN)
00326     ULONG KeAlignmentFixupCount;
00327 #endif
00328     ULONG SpareCounter0;
00329 #if (NTDDI_VERSION < NTDDI_LONGHORN)
00330     ULONG KeDcacheFlushCount;
00331     ULONG KeExceptionDispatchCount;
00332     ULONG KeFirstLevelTbFills;
00333     ULONG KeFloatingEmulationCount;
00334     ULONG KeIcacheFlushCount;
00335     ULONG KeSecondLevelTbFills;
00336     ULONG KeSystemCalls;
00337 #endif
00338     volatile ULONG IoReadOperationCount;
00339     volatile ULONG IoWriteOperationCount;
00340     volatile ULONG IoOtherOperationCount;
00341     LARGE_INTEGER IoReadTransferCount;
00342     LARGE_INTEGER IoWriteTransferCount;
00343     LARGE_INTEGER IoOtherTransferCount;
00344 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00345     ULONG CcFastMdlReadNoWait;
00346     ULONG CcFastMdlReadWait;
00347     ULONG CcFastMdlReadNotPossible;
00348     ULONG CcMapDataNoWait;
00349     ULONG CcMapDataWait;
00350     ULONG CcPinMappedDataCount;
00351     ULONG CcPinReadNoWait;
00352     ULONG CcPinReadWait;
00353     ULONG CcMdlReadNoWait;
00354     ULONG CcMdlReadWait;
00355     ULONG CcLazyWriteHotSpots;
00356     ULONG CcLazyWriteIos;
00357     ULONG CcLazyWritePages;
00358     ULONG CcDataFlushes;
00359     ULONG CcDataPages;
00360     ULONG CcLostDelayedWrites;
00361     ULONG CcFastReadResourceMiss;
00362     ULONG CcCopyReadWaitMiss;
00363     ULONG CcFastMdlReadResourceMiss;
00364     ULONG CcMapDataNoWaitMiss;
00365     ULONG CcMapDataWaitMiss;
00366     ULONG CcPinReadNoWaitMiss;
00367     ULONG CcPinReadWaitMiss;
00368     ULONG CcMdlReadNoWaitMiss;
00369     ULONG CcMdlReadWaitMiss;
00370     ULONG CcReadAheadIos;
00371     ULONG KeAlignmentFixupCount;
00372     ULONG KeExceptionDispatchCount;
00373     ULONG KeSystemCalls;
00374     ULONG PrcbPad1[3];
00375 #else
00376     ULONG SpareCounter1[8];
00377 #endif
00378     PP_LOOKASIDE_LIST PPLookasideList[16];
00379     PP_LOOKASIDE_LIST PPNPagedLookasideList[32];
00380     PP_LOOKASIDE_LIST PPPagedLookasideList[32];
00381     volatile ULONG PacketBarrier;
00382     volatile ULONG ReverseStall;
00383     PVOID IpiFrame;
00384     UCHAR PrcbPad2[52];
00385     volatile PVOID CurrentPacket[3];
00386     volatile ULONG TargetSet;
00387     volatile PKIPI_WORKER WorkerRoutine;
00388     volatile ULONG IpiFrozen;
00389     UCHAR PrcbPad3[40];
00390     volatile ULONG RequestSummary;
00391     volatile struct _KPRCB *SignalDone;
00392     UCHAR PrcbPad4[56];
00393     struct _KDPC_DATA DpcData[2];
00394     PVOID DpcStack;
00395     ULONG MaximumDpcQueueDepth;
00396     ULONG DpcRequestRate;
00397     ULONG MinimumDpcRate;
00398     volatile UCHAR DpcInterruptRequested;
00399     volatile UCHAR DpcThreadRequested;
00400     volatile UCHAR DpcRoutineActive;
00401     volatile UCHAR DpcThreadActive;
00402     ULONG PrcbLock;
00403     ULONG DpcLastCount;
00404     volatile ULONG TimerHand;
00405     volatile ULONG TimerRequest;
00406     PVOID DpcThread;
00407     KEVENT DpcEvent;
00408     UCHAR ThreadDpcEnable;
00409     volatile BOOLEAN QuantumEnd;
00410     UCHAR PrcbPad50;
00411     volatile UCHAR IdleSchedule;
00412     LONG DpcSetEventRequest;
00413 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00414     LONG Sleeping;
00415     ULONG PeriodicCount;
00416     ULONG PeriodicBias;
00417     UCHAR PrcbPad5[6];
00418 #else
00419     UCHAR PrcbPad5[18];
00420 #endif
00421     LONG TickOffset;
00422     KDPC CallDpc;
00423 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00424     LONG ClockKeepAlive;
00425     UCHAR ClockCheckSlot;
00426     UCHAR ClockPollCycle;
00427     UCHAR PrcbPad6[2];
00428     LONG DpcWatchdogPeriod;
00429     LONG DpcWatchDogCount;
00430     LONG ThreadWatchdogPeriod;
00431     LONG ThreadWatchDogCount;
00432     ULONG PrcbPad70[2];
00433 #else
00434     ULONG PrcbPad7[8];
00435 #endif
00436     LIST_ENTRY WaitListHead;
00437     ULONG ReadySummary;
00438     ULONG QueueIndex;
00439 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00440     SINGLE_LIST_ENTRY DeferredReadyListHead;
00441     ULONGLONG StartCycles;
00442     ULONGLONG CycleTime;
00443     ULONGLONG PrcbPad71[3];
00444     LIST_ENTRY DispatcherReadyListHead[32];
00445 #else
00446     LIST_ENTRY DispatcherReadyListHead[32];
00447     SINGLE_LIST_ENTRY DeferredReadyListHead;
00448     ULONG PrcbPad72[11];
00449 #endif
00450     PVOID ChainedInterruptList;
00451     LONG LookasideIrpFloat;
00452     volatile LONG MmPageFaultCount;
00453     volatile LONG MmCopyOnWriteCount;
00454     volatile LONG MmTransitionCount;
00455     volatile LONG MmCacheTransitionCount;
00456     volatile LONG MmDemandZeroCount;
00457     volatile LONG MmPageReadCount;
00458     volatile LONG MmPageReadIoCount;
00459     volatile LONG MmCacheReadCount;
00460     volatile LONG MmCacheIoCount;
00461     volatile LONG MmDirtyPagesWriteCount;
00462     volatile LONG MmDirtyWriteIoCount;
00463     volatile LONG MmMappedPagesWriteCount;
00464     volatile LONG MmMappedWriteIoCount;
00465 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00466     ULONG CachedCommit;
00467     ULONG CachedResidentAvailable;
00468     PVOID HyperPte;
00469     UCHAR CpuVendor;
00470     UCHAR PrcbPad9[3];
00471 #else
00472     ULONG SpareFields0[1];
00473 #endif
00474     CHAR VendorString[13];
00475     UCHAR InitialApicId;
00476     UCHAR LogicalProcessorsPerPhysicalProcessor;
00477     ULONG MHz;
00478     ULONG FeatureBits;
00479     LARGE_INTEGER UpdateSignature;
00480     volatile LARGE_INTEGER IsrTime;
00481     LARGE_INTEGER SpareField1;
00482     FX_SAVE_AREA NpxSaveArea;
00483     PROCESSOR_POWER_STATE PowerState;
00484 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
00485     KDPC DpcWatchdogDoc;
00486     KTIMER DpcWatchdogTimer;
00487     PVOID WheaInfo;
00488     PVOID EtwSupport;
00489     SLIST_HEADER InterruptObjectPool;
00490     LARGE_INTEGER HyperCallPagePhysical;
00491     LARGE_INTEGER HyperCallPageVirtual;
00492     PVOID RateControl;
00493     CACHE_DESCRIPTOR Cache[5];
00494     ULONG CacheCount;
00495     ULONG CacheProcessorMask[5];
00496     UCHAR LogicalProcessorsPerCore;
00497     UCHAR PrcbPad8[3];
00498     ULONG PackageProcessorSet;
00499     ULONG CoreProcessorSet;
00500 #endif
00501 } KPRCB, *PKPRCB;
00502 
00503 //
00504 // Processor Control Region
00505 //
00506 typedef struct _KIPCR
00507 {
00508     USHORT MinorVersion;
00509     USHORT MajorVersion;
00510     PKINTERRUPT_ROUTINE InterruptRoutine[MAXIMUM_VECTOR];
00511     ULONG PcrPage2;
00512     ULONG Kseg0Top;
00513     ULONG Spare7[30];
00514     ULONG FirstLevelDcacheSize;
00515     ULONG FirstLevelDcacheFillSize;
00516     ULONG FirstLevelIcacheSize;
00517     ULONG FirstLevelIcacheFillSize;
00518     ULONG SecondLevelDcacheSize;
00519     ULONG SecondLevelDcacheFillSize;
00520     ULONG SecondLevelIcacheSize;
00521     ULONG SecondLevelIcacheFillSize;
00522     struct _KPRCB *PrcbData;
00523     PVOID Teb;
00524     ULONG DcacheAlignment;
00525     ULONG DcacheFillSize;
00526     ULONG IcacheAlignment;
00527     ULONG IcacheFillSize;
00528     ULONG ProcessorVersion;
00529     ULONG ProcessorRevision;
00530     ULONG ProfileInterval;
00531     ULONG ProfileCount;
00532     ULONG StallExecutionCount;
00533     ULONG StallScaleFactor;
00534     ULONG Spare;
00535     union
00536     {
00537         ULONG CachePolicy;
00538         struct
00539         {
00540             UCHAR IcacheMode;
00541             UCHAR DcacheMode;
00542             USHORT ModeSpare;
00543         };
00544     };
00545     UCHAR IrqlMask[32];
00546     UCHAR IrqlTable[9];
00547     UCHAR CurrentIrql;
00548     CCHAR Number;
00549     KAFFINITY SetMember;
00550     ULONG ReservedVectors;
00551     struct _KTHREAD *CurrentThread;
00552     ULONG AlignedCachePolicy;
00553     union
00554     {
00555         ULONG SoftwareInterrupt;
00556         struct
00557         {
00558             UCHAR ApcInterrupt;
00559             UCHAR DispatchInterrupt;
00560             UCHAR Spare4;
00561             UCHAR Spare5;
00562         };
00563     };
00564     KAFFINITY NotMember;
00565     ULONG SystemReserved[16];
00566     ULONG HalReserved[16];
00567     ULONG FirstLevelActive;
00568     ULONG SystemServiceDispatchStart;
00569     ULONG SystemServiceDispatchEnd;
00570     ULONG InterruptStack;
00571     ULONG QuantumEnd;
00572     PVOID InitialStack;
00573     PVOID PanicStack;
00574     ULONG BadVaddr;
00575     PVOID StackLimit;
00576     PVOID SavedStackLimit;
00577     ULONG SavedV0;
00578     ULONG SavedV1;
00579     UCHAR DebugActive;
00580     UCHAR Spare6[3];
00581     ULONG GprSave[6];
00582     ULONG SiR0;
00583     ULONG SiR2;
00584     ULONG SiR3;
00585     ULONG SiR4;
00586     ULONG SiR5;
00587     ULONG Spare0;
00588     ULONG Spare8;
00589     ULONG PgDirRa;
00590     ULONG OnInterruptStack;
00591     ULONG SavedInitialStack;
00592 } KIPCR, *PKIPCR;
00593 #pragma pack(pop)
00594 
00595 //
00596 // TSS Definition
00597 //
00598 typedef struct _KTSS {
00599 } KTSS, *PKTSS;
00600 
00601 //
00602 // PowerPC Exception Frame
00603 //
00604 typedef struct _KEXCEPTION_FRAME
00605 {
00606     ULONG Fill1;
00607     ULONG Gpr13;
00608     ULONG Gpr14;
00609     ULONG Gpr15;
00610     ULONG Gpr16;
00611     ULONG Gpr17;
00612     ULONG Gpr18;
00613     ULONG Gpr19;
00614     ULONG Gpr20;
00615     ULONG Gpr21;
00616     ULONG Gpr22;
00617     ULONG Gpr23;
00618     ULONG Gpr24;
00619     ULONG Gpr25;
00620     ULONG Gpr26;
00621     ULONG Gpr27;
00622     ULONG Gpr28;
00623     ULONG Gpr29;
00624     ULONG Gpr30;
00625     ULONG Gpr31;
00626     DOUBLE Fpr14;
00627     DOUBLE Fpr15;
00628     DOUBLE Fpr16;
00629     DOUBLE Fpr17;
00630     DOUBLE Fpr18;
00631     DOUBLE Fpr19;
00632     DOUBLE Fpr20;
00633     DOUBLE Fpr21;
00634     DOUBLE Fpr22;
00635     DOUBLE Fpr23;
00636     DOUBLE Fpr24;
00637     DOUBLE Fpr25;
00638     DOUBLE Fpr26;
00639     DOUBLE Fpr27;
00640     DOUBLE Fpr28;
00641     DOUBLE Fpr29;
00642     DOUBLE Fpr30;
00643     DOUBLE Fpr31;
00644 } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
00645 
00646 FORCEINLINE
00647 struct _KPRCB *
00648 KeGetCurrentPrcb(VOID)
00649 {
00650     return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KIPCR, PrcbData));
00651 }
00652 
00653 #endif

Generated on Sat May 26 2012 04:29:26 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.