aboutsummaryrefslogtreecommitdiff
path: root/src/asm-offsets.c
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/asm-offsets.c
parente682cbc293d0bc6b37a80a2dadb3415d08a395cf (diff)
downloadseabios-hppa-18e38b2923565db003ff57fbd630a08d2557232f.zip
seabios-hppa-18e38b2923565db003ff57fbd630a08d2557232f.tar.gz
seabios-hppa-18e38b2923565db003ff57fbd630a08d2557232f.tar.bz2
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/asm-offsets.c')
-rw-r--r--src/asm-offsets.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/asm-offsets.c b/src/asm-offsets.c
index 8f17c04..1e3a293 100644
--- a/src/asm-offsets.c
+++ b/src/asm-offsets.c
@@ -1,13 +1,15 @@
// Generate assembler offsets.
-#include "gen-defs.h"
-#include "bregs.h"
+#include "gen-defs.h" // OFFSET
+#include "bregs.h" // struct bregs
+#include "biosvar.h" // struct bios_data_area_s
/* workaround for a warning with -Wmissing-prototypes */
void foo(void) VISIBLE16;
void foo(void)
{
+ COMMENT("BREGS");
OFFSET(BREGS_es, bregs, es);
OFFSET(BREGS_ds, bregs, ds);
OFFSET(BREGS_eax, bregs, eax);
@@ -18,4 +20,12 @@ void foo(void)
OFFSET(BREGS_edi, bregs, edi);
OFFSET(BREGS_flags, bregs, flags);
OFFSET(BREGS_ip, bregs, ip);
+
+ COMMENT("BDA");
+ OFFSET(BDA_ebda_seg, bios_data_area_s, ebda_seg);
+
+ COMMENT("EBDA");
+ OFFSET(EBDA_resume_stack_top, extended_bios_data_area_s
+ , resume_stack[FIELD_SIZEOF(struct extended_bios_data_area_s
+ , resume_stack)]);
}