- Update PPC definitions.
authorAlex Ionescu <aionescu@gmail.com>
Sun, 4 Dec 2005 17:09:48 +0000 (17:09 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Sun, 4 Dec 2005 17:09:48 +0000 (17:09 +0000)
- Add Art to contributors.

svn path=/trunk/; revision=19877

reactos/include/ndk/powerpc/ketypes.h
reactos/include/ndk/powerpc/mmtypes.h
reactos/include/ndk/readme.txt

index a897bbb..739fb7a 100644 (file)
@@ -37,32 +37,75 @@ Author:
 //
 typedef struct _KTRAP_FRAME
 {
-       ULONG R[32];
-       ULONG SRR0, SRR1;
-       ULONG LR, CTR;
+    PVOID TrapFrame;\r
+    UCHAR OldIrql;\r
+    UCHAR PreviousMode;\r
+    UCHAR SavedApcStateIndex;\r
+    UCHAR SavedKernelApcDisable;\r
+    UCHAR ExceptionRecord[ROUND_UP(sizeof(EXCEPTION_RECORD), ULONGLONG];\r
+    ULONG FILL2;\r
+    ULONG Gpr0;\r
+    ULONG Gpr1;\r
+    ULONG Gpr2;\r
+    ULONG Gpr3;\r
+    ULONG Gpr4;\r
+    ULONG Gpr5;\r
+    ULONG Gpr6;\r
+    ULONG Gpr7;\r
+    ULONG Gpr8;\r
+    ULONG Gpr9;\r
+    ULONG Gpr10;\r
+    ULONG Gpr11;\r
+    ULONG Gpr12;\r
+    DOUBLE Fpr0;\r
+    DOUBLE Fpr1;\r
+    DOUBLE Fpr2;\r
+    DOUBLE Fpr3;\r
+    DOUBLE Fpr4;\r
+    DOUBLE Fpr5;\r
+    DOUBLE Fpr6;\r
+    DOUBLE Fpr7;\r
+    DOUBLE Fpr8;\r
+    DOUBLE Fpr9;\r
+    DOUBLE Fpr10;\r
+    DOUBLE Fpr11;\r
+    DOUBLE Fpr12;\r
+    DOUBLE Fpr13;\r
+    DOUBLE Fpscr;\r
+    ULONG Cr;\r
+    ULONG Xer;\r
+    ULONG Msr;\r
+    ULONG Iar;\r
+    ULONG Lr;\r
+    ULONG Ctr;\r
+    ULONG Dr0;\r
+    ULONG Dr1;\r
+    ULONG Dr2;\r
+    ULONG Dr3;\r
+    ULONG Dr4;\r
+    ULONG Dr5;\r
+    ULONG Dr6;\r
+    ULONG Dr7;
 } KTRAP_FRAME, *PKTRAP_FRAME;
 
 //
 // Page Table Entry Definition
 //
-// I'll use the same table format
-//
-typedef struct _SOFTWARE_PTE_PPC
+typedef struct _HARDWARE_PTE_PPC
 {
-    ULONG Valid             : 1;
-    ULONG Write             : 1;
-    ULONG Owner             : 1;
-    ULONG WriteThrough      : 1;
-    ULONG CacheDisable      : 1;
-    ULONG Accessed          : 1;
-    ULONG Dirty             : 1;
-    ULONG LargePage         : 1;
-    ULONG Global            : 1;
-    ULONG CopyOnWrite       : 1;
-    ULONG Prototype         : 1;
-    ULONG reserved          : 1;
-    ULONG PageFrameNumber   : 20;
-} SOFTWARE_PTE_X86, *PSOFTWARE_PTE_PPC;
+    ULONG Dirty:2;
+    ULONG Valid:1;
+    ULONG GuardedStorage:1;
+    ULONG MemoryCoherence:1;
+    ULONG CacheDisable:1;
+    ULONG WriteThrough:1;
+    ULONG Change:1;
+    ULONG Reference:1;
+    ULONG Write:1;
+    ULONG CopyOnWrite:1;
+    ULONG rsvd1:1;
+    ULONG PageFrameNumber:20;
+} HARDWARE_PTE_PPC, *PHARDWARE_PTE_PPC;
 
 typedef struct _DESCRIPTOR
 {
@@ -76,9 +119,50 @@ typedef struct _DESCRIPTOR
 //
 typedef struct _KSPECIAL_REGISTERS
 {
-       ULONG MSR, SDR0, SDR1;
-       ULONG BATU[4], BATL[4];
-       ULONG SR[8];
+    ULONG KernelDr0;\r
+    ULONG KernelDr1;\r
+    ULONG KernelDr2;\r
+    ULONG KernelDr3;\r
+    ULONG KernelDr4;\r
+    ULONG KernelDr5;\r
+    ULONG KernelDr6;\r
+    ULONG KernelDr7;\r
+    ULONG Sprg0;\r
+    ULONG Sprg1;\r
+    ULONG Sr0;\r
+    ULONG Sr1;\r
+    ULONG Sr2;\r
+    ULONG Sr3;\r
+    ULONG Sr4;\r
+    ULONG Sr5;\r
+    ULONG Sr6;\r
+    ULONG Sr7;\r
+    ULONG Sr8;\r
+    ULONG Sr9;\r
+    ULONG Sr10;\r
+    ULONG Sr11;\r
+    ULONG Sr12;\r
+    ULONG Sr13;\r
+    ULONG Sr14;\r
+    ULONG Sr15;\r
+    ULONG DBAT0L;\r
+    ULONG DBAT0U;\r
+    ULONG DBAT1L;\r
+    ULONG DBAT1U;\r
+    ULONG DBAT2L;\r
+    ULONG DBAT2U;\r
+    ULONG DBAT3L;\r
+    ULONG DBAT3U;\r
+    ULONG IBAT0L;\r
+    ULONG IBAT0U;\r
+    ULONG IBAT1L;\r
+    ULONG IBAT1U;\r
+    ULONG IBAT2L;\r
+    ULONG IBAT2U;\r
+    ULONG IBAT3L;\r
+    ULONG IBAT3U;\r
+    ULONG Sdr1;\r
+    ULONG Reserved[9];
 } KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS;
 
 //
@@ -229,73 +313,141 @@ typedef struct _KPRCB
 //
 typedef struct _KIPCR
 {
-    union
-    {
-        NT_TIB NtTib;
-        struct 
-        {
-            struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList;
-            PVOID Used_StackBase;
-            PVOID PerfGlobalGroupMask;
-            PVOID TssCopy;
-            ULONG ContextSwitches;
-            KAFFINITY SetMemberCopy;
-            PVOID Used_Self;
-        };
-    };
-    struct _KPCR *Self;          /* 1C */
-    struct _KPRCB *Prcb;         /* 20 */
-    KIRQL Irql;                  /* 24 */
-    ULONG IRR;                   /* 28 */
-    ULONG IrrActive;             /* 2C */
-    ULONG IDR;                   /* 30 */
-    PVOID KdVersionBlock;        /* 34 */
-    struct _KTSS *TSS;           /* 40 */
-    USHORT MajorVersion;         /* 44 */
-    USHORT MinorVersion;         /* 46 */
-    KAFFINITY SetMember;         /* 48 */
-    ULONG StallScaleFactor;      /* 4C */
-    UCHAR SparedUnused;          /* 50 */
-    UCHAR Number;                /* 51 */
-    UCHAR Reserved;              /* 52 */
-    UCHAR L2CacheAssociativity;  /* 53 */
-    ULONG VdmAlert;              /* 54 */
-    ULONG KernelReserved[14];    /* 58 */
-    ULONG L2CacheSize;           /* 90 */
-    ULONG HalReserved[16];       /* 94 */
-    ULONG InterruptMode;         /* D4 */
-    UCHAR KernelReserved2[0x48]; /* D8 */
-    KPRCB PrcbData;              /* 120 */
+    USHORT MinorVersion;\r
+    USHORT MajorVersion;\r
+    PKINTERRUPT_ROUTINE InterruptRoutine[MAXIMUM_VECTOR];\r
+    ULONG PcrPage2;\r
+    ULONG Kseg0Top;\r
+    ULONG Spare7[30];
+    ULONG FirstLevelDcacheSize;\r
+    ULONG FirstLevelDcacheFillSize;\r
+    ULONG FirstLevelIcacheSize;\r
+    ULONG FirstLevelIcacheFillSize;\r
+    ULONG SecondLevelDcacheSize;\r
+    ULONG SecondLevelDcacheFillSize;\r
+    ULONG SecondLevelIcacheSize;\r
+    ULONG SecondLevelIcacheFillSize;
+    struct _KPRCB *Prcb;
+    PVOID Teb;
+    ULONG DcacheAlignment;\r
+    ULONG DcacheFillSize;
+    ULONG IcacheAlignment;\r
+    ULONG IcacheFillSize;
+    ULONG ProcessorVersion;\r
+    ULONG ProcessorRevision;
+    ULONG ProfileInterval;\r
+    ULONG ProfileCount;\r
+    ULONG StallExecutionCount;\r
+    ULONG StallScaleFactor;
+    ULONG Spare;
+    union\r
+    {\r
+        ULONG CachePolicy;\r
+        struct\r
+        {\r
+            UCHAR IcacheMode;\r
+            UCHAR DcacheMode;\r
+            USHORT ModeSpare;\r
+        };\r
+    };\r
+    UCHAR IrqlMask[32];\r
+    UCHAR IrqlTable[9];
+    UCHAR CurrentIrql;\r
+    CCHAR Number;\r
+    KAFFINITY SetMember;\r
+    ULONG ReservedVectors;\r
+    struct _KTHREAD *CurrentThread;\r
+    ULONG AlignedCachePolicy;\r
+    union\r
+    {\r
+        ULONG SoftwareInterrupt;\r
+        struct\r
+        {\r
+            UCHAR ApcInterrupt;\r
+            UCHAR DispatchInterrupt;\r
+            UCHAR Spare4;\r
+            UCHAR Spare5;\r
+        };\r
+    };\r
+    KAFFINITY NotMember;\r
+    ULONG SystemReserved[16];\r
+    ULONG HalReserved[16];\r
+    ULONG FirstLevelActive;\r
+    ULONG SystemServiceDispatchStart;\r
+    ULONG SystemServiceDispatchEnd;\r
+    ULONG InterruptStack;\r
+    ULONG QuantumEnd;\r
+    PVOID InitialStack;\r
+    PVOID PanicStack;\r
+    ULONG BadVaddr;\r
+    PVOID StackLimit;\r
+    PVOID SavedStackLimit;\r
+    ULONG SavedV0;\r
+    ULONG SavedV1;\r
+    UCHAR DebugActive;\r
+    UCHAR Spare6[3];\r
+    ULONG GprSave[6];\r
+    ULONG SiR0;\r
+    ULONG SiR2;\r
+    ULONG SiR3;\r
+    ULONG SiR4;\r
+    ULONG SiR5;\r
+    ULONG Spare0;\r
+    ULONG Spare8;\r
+    ULONG PgDirRa;\r
+    ULONG OnInterruptStack;\r
+    ULONG SavedInitialStack;
 } KIPCR, *PKIPCR;
 #pragma pack(pop)
 
 //
 // TSS Definition
 //
-typedef struct _KiIoAccessMap
-{
-    UCHAR DirectionMap[32];
-    UCHAR IoMap[8196];
-} KIIO_ACCESS_MAP;
-
-#include <pshpack1.h>
-typedef struct _KTSS
-{
-    USHORT Backlink;
-    USHORT Reserved0;
-
-    KTRAP_FRAME Registers;
-
-    KIIO_ACCESS_MAP IoMaps[1];
-    UCHAR IntDirectionMap[32];
-} KTSS, *PKTSS;
-#include <poppack.h>
+typedef struct _KTSS, KTSS, *PKTSS;
 
 //
 // PowerPC Exception Frame
 //
-typedef struct _KEXCEPTION_FRAME {
-       
+typedef struct _KEXCEPTION_FRAME
+{
+    ULONG Fill1;\r
+    ULONG Gpr13;\r
+    ULONG Gpr14;\r
+    ULONG Gpr15;\r
+    ULONG Gpr16;\r
+    ULONG Gpr17;\r
+    ULONG Gpr18;\r
+    ULONG Gpr19;\r
+    ULONG Gpr20;\r
+    ULONG Gpr21;\r
+    ULONG Gpr22;\r
+    ULONG Gpr23;\r
+    ULONG Gpr24;\r
+    ULONG Gpr25;\r
+    ULONG Gpr26;\r
+    ULONG Gpr27;\r
+    ULONG Gpr28;\r
+    ULONG Gpr29;\r
+    ULONG Gpr30;\r
+    ULONG Gpr31;\r
+    DOUBLE Fpr14;\r
+    DOUBLE Fpr15;\r
+    DOUBLE Fpr16;\r
+    DOUBLE Fpr17;\r
+    DOUBLE Fpr18;\r
+    DOUBLE Fpr19;\r
+    DOUBLE Fpr20;\r
+    DOUBLE Fpr21;\r
+    DOUBLE Fpr22;\r
+    DOUBLE Fpr23;\r
+    DOUBLE Fpr24;\r
+    DOUBLE Fpr25;\r
+    DOUBLE Fpr26;\r
+    DOUBLE Fpr27;\r
+    DOUBLE Fpr28;\r
+    DOUBLE Fpr29;\r
+    DOUBLE Fpr30;\r
+    DOUBLE Fpr31;
 } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
 
 #endif
index e988dda..c3eb927 100644 (file)
@@ -1,7 +1,6 @@
 /*++ NDK Version: 0095
 
 Copyright (c) Alex Ionescu.  All rights reserved.
-Modified for PowerPC by Art Yerkes
 
 Header Name:
 
@@ -13,7 +12,7 @@ Abstract:
 
 Author:
 
-    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+    Art Yerkes (ayerkes@speakeasy.net)   04-Dec-2005
 
 --*/
 
index acff107..57813e3 100644 (file)
@@ -90,6 +90,7 @@ located through the Internet or purchased or licensed for lawful use.
 \r
 Additionally, the following people contributed to the NDK:\r
 \r
+- Art Yerkes\r
 - Eric Kohl\r
 - Filip Navara\r
 - Steven Edwards\r