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.
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 @@
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)]);
}