Get rid of the (incorrect) __attribute__((packed)) usage. Modified: trunk/reactos/ntoskrnl/kdbg/kdb.c Modified: trunk/reactos/ntoskrnl/kdbg/kdb_cli.c _____
Modified: trunk/reactos/ntoskrnl/kdbg/kdb.c --- trunk/reactos/ntoskrnl/kdbg/kdb.c 2005-07-05 16:40:01 UTC (rev 16428) +++ trunk/reactos/ntoskrnl/kdbg/kdb.c 2005-07-05 17:08:48 UTC (rev 16429) @@ -320,10 +320,7 @@
BOOLEAN KdbpStepIntoInstruction(ULONG_PTR Eip) { - struct __attribute__((packed)) { - USHORT Limit; - ULONG Base; - } Idtr; + KDESCRIPTOR Idtr; UCHAR Mem[2]; INT IntVect; ULONG IntDesc[2]; @@ -353,7 +350,7 @@ }
/* Read the interrupt descriptor table register */ - asm volatile("sidt %0" : : "m"(Idtr)); + asm volatile("sidt %0" : : "m"(Idtr.Limit)); if (IntVect >= (Idtr.Limit + 1) / 8) { /*KdbpPrint("IDT does not contain interrupt vector %d\n.", IntVect);*/ _____
Modified: trunk/reactos/ntoskrnl/kdbg/kdb_cli.c --- trunk/reactos/ntoskrnl/kdbg/kdb_cli.c 2005-07-05 16:40:01 UTC (rev 16428) +++ trunk/reactos/ntoskrnl/kdbg/kdb_cli.c 2005-07-05 17:08:48 UTC (rev 16429) @@ -411,10 +411,7 @@
else if (Argv[0][0] == 'c') /* cregs */ { ULONG Cr0, Cr2, Cr3, Cr4; - struct __attribute__((packed)) { - USHORT Limit; - ULONG Base; - } Gdtr, Ldtr, Idtr; + KDESCRIPTOR Gdtr, Ldtr, Idtr; ULONG Tr; STATIC CONST PCHAR Cr0Bits[32] = { " PE", " MP", " EM", " TS", " ET", " NE", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, @@ -431,9 +428,9 @@ Cr4 = KdbCurrentTrapFrame->Cr4;
/* Get descriptor table regs */ - asm volatile("sgdt %0" : : "m"(Gdtr)); - asm volatile("sldt %0" : : "m"(Ldtr)); - asm volatile("sidt %0" : : "m"(Idtr)); + asm volatile("sgdt %0" : : "m"(Gdtr.Limit)); + asm volatile("sldt %0" : : "m"(Ldtr.Limit)); + asm volatile("sidt %0" : : "m"(Idtr.Limit));
/* Get the task register */ asm volatile("str %0" : "=g"(Tr));