Author: tkreuzer Date: Tue Sep 27 19:29:52 2011 New Revision: 53875
URL: http://svn.reactos.org/svn/reactos?rev=53875&view=rev Log: [FREELDR] Add ebp to the bios register set.
Modified: trunk/reactos/boot/freeldr/freeldr/arch/amd64/int386.S trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S trunk/reactos/boot/freeldr/freeldr/arch/i386/int386.S trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc trunk/reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h
Modified: trunk/reactos/boot/freeldr/freeldr/arch/amd64/int386.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/a... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/amd64/int386.S [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/amd64/int386.S [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -19,6 +19,7 @@
#include <asm.inc> #include <arch/pc/x86common.h> +#include <arch/pc/pcbios.h> .code64
EXTERN CallRealMode:PROC
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/entry.S [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -19,6 +19,7 @@
#include <asm.inc> #include <arch/pc/x86common.h> +#include <arch/pc/pcbios.h>
EXTERN _BootMain:PROC EXTERN _InitIdt:PROC
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/int386.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/int386.S [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/int386.S [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -44,6 +44,8 @@ Int386_esi: .long 0 Int386_edi: + .long 0 +Int386_ebp: .long 0
Int386_ds:
Modified: trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/r... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/realmode/int386.inc [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -1,4 +1,5 @@
+#include "../../include/arch/pc/pcbios.h"
Int386: /* Save all registers + segment registers */
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch/pc/pcbios.h [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -10,6 +10,7 @@
unsigned long esi; unsigned long edi; + unsigned long ebp;
unsigned short ds; unsigned short es; @@ -29,6 +30,7 @@
unsigned short si, _upper_si; unsigned short di, _upper_di; + unsigned short bp, _upper_bp;
unsigned short ds; unsigned short es; @@ -56,6 +58,7 @@
unsigned short si, _upper_si; unsigned short di, _upper_di; + unsigned short bp, _upper_bp;
unsigned short ds; unsigned short es; @@ -96,3 +99,19 @@ VOID DetectHardware(VOID); // Implemented in hardware.c
#endif /* ! __ASM__ */ + +/* Layout of the REGS structure */ +#define REGS_EAX 0 +#define REGS_EBX 4 +#define REGS_ECX 8 +#define REGS_EDX 12 +#define REGS_ESI 16 +#define REGS_EDI 20 +#define REGS_EBP 24 +#define REGS_DS 28 +#define REGS_ES 30 +#define REGS_FS 32 +#define REGS_GS 34 +#define REGS_EFLAGS 36 +#define REGS_SIZE 40 +
Modified: trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/includ... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch/pc/x86common.h [iso-8859-1] Tue Sep 27 19:29:52 2011 @@ -23,25 +23,10 @@ #define BIOSCALLBUFSEGMENT (BIOSCALLBUFFER/16) /* Buffer to store temporary data for any Int386() call */ #define BIOSCALLBUFOFFSET HEX(0000) /* Buffer to store temporary data for any Int386() call */
-/* Layout of the REGS structure */ -#define REGS_EAX 0 -#define REGS_EBX 4 -#define REGS_ECX 8 -#define REGS_EDX 12 -#define REGS_ESI 16 -#define REGS_EDI 20 -#define REGS_DS 24 -#define REGS_ES 26 -#define REGS_FS 28 -#define REGS_GS 30 -#define REGS_EFLAGS 32 -#define REGS_SIZE 36 - /* These addresses specify the realmode "BSS section" layout */ #define BSS_RealModeEntry (BSS_START + 0) -#define BSS_CallbackAddress (BSS_START + 4) -#define BSS_CallbackReturn (BSS_START + 8) -#define BSS_RegisterSet (BSS_START + 16) /* size = 36 */ +#define BSS_CallbackReturn (BSS_START + 4) +#define BSS_RegisterSet (BSS_START + 8) /* size = 40 */ #define BSS_IntVector (BSS_START + 52) #define BSS_PxeEntryPoint (BSS_START + 56) #define BSS_PxeBufferSegment (BSS_START + 60)