mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
[FREELDR]
Add ebp to the bios register set. svn path=/trunk/; revision=53875
This commit is contained in:
parent
23b2b84ce7
commit
5bfa5255bf
6 changed files with 26 additions and 17 deletions
|
@ -19,6 +19,7 @@
|
|||
|
||||
#include <asm.inc>
|
||||
#include <arch/pc/x86common.h>
|
||||
#include <arch/pc/pcbios.h>
|
||||
.code64
|
||||
|
||||
EXTERN CallRealMode:PROC
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
#include <asm.inc>
|
||||
#include <arch/pc/x86common.h>
|
||||
#include <arch/pc/pcbios.h>
|
||||
|
||||
EXTERN _BootMain:PROC
|
||||
EXTERN _InitIdt:PROC
|
||||
|
|
|
@ -45,6 +45,8 @@ Int386_esi:
|
|||
.long 0
|
||||
Int386_edi:
|
||||
.long 0
|
||||
Int386_ebp:
|
||||
.long 0
|
||||
|
||||
Int386_ds:
|
||||
.word 0
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
#include "../../include/arch/pc/pcbios.h"
|
||||
|
||||
Int386:
|
||||
/* Save all registers + segment registers */
|
||||
|
|
|
@ -10,6 +10,7 @@ typedef struct
|
|||
|
||||
unsigned long esi;
|
||||
unsigned long edi;
|
||||
unsigned long ebp;
|
||||
|
||||
unsigned short ds;
|
||||
unsigned short es;
|
||||
|
@ -29,6 +30,7 @@ typedef struct
|
|||
|
||||
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 @@ typedef struct
|
|||
|
||||
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 SoftReboot(VOID); // Implemented in boot.S
|
|||
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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue