aboutsummaryrefslogtreecommitdiffstats
path: root/src/biosvar.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-12-10 20:40:13 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-12-10 20:40:13 -0500
commit18e38b2923565db003ff57fbd630a08d2557232f (patch)
tree421237e7506c932219e4ad1da5715999829444c8 /src/biosvar.h
parente682cbc293d0bc6b37a80a2dadb3415d08a395cf (diff)
downloadseabios-18e38b2923565db003ff57fbd630a08d2557232f.tar.gz
Improve support for old 16bit resume handlers.
Detect a non-standard CMOS shutdown code during post and run a separate resume handler. Set aside space in the EBDA for the resume handler stack. Add support for several of the code supported in bochs bios.
Diffstat (limited to 'src/biosvar.h')
-rw-r--r--src/biosvar.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/biosvar.h b/src/biosvar.h
index 4571d5d2..646bd511 100644
--- a/src/biosvar.h
+++ b/src/biosvar.h
@@ -60,7 +60,8 @@ struct bios_data_area_s {
u16 crtc_address;
u8 video_msr;
u8 video_pal;
- u32 jump_cs_ip;
+ u16 jump_ip;
+ u16 jump_cs;
u8 other_6b;
u32 timer_counter;
// 40:70
@@ -272,6 +273,7 @@ struct extended_bios_data_area_s {
// 0x5d
u8 other2[0xC4];
+ // 0x121 - Begin custom storage.
u8 ps2ctr;
// Physical memory available.
@@ -280,13 +282,16 @@ struct extended_bios_data_area_s {
struct pir_header *pir_loc;
// ATA Driver data
- struct ata_s ata;
+ struct ata_s ata;
// El Torito Emulation data
struct cdemu_s cdemu;
// Initial program load
struct ipl_s ipl;
+
+ // Resume stack
+ u8 resume_stack[128] __aligned(8);
} PACKED;
#define EBDA_SIZE DIV_ROUND_UP(sizeof(struct extended_bios_data_area_s), 1024)