diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2008-11-16 18:14:33 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2008-11-16 18:14:33 -0500 |
commit | 952974e3eccaefc667466e8309e15a7fbb867326 (patch) | |
tree | 3388804ea0ca999a065103e0a1af92542a65cbfa /src/asm-offsets.c | |
parent | 3eac009553c4ecee2840a1d56358e0bb6bb0bf45 (diff) | |
download | seabios-952974e3eccaefc667466e8309e15a7fbb867326.tar.gz |
Add tool for generating assembler offset definition file.
Replace __call16 hardcoded offsets with auto generated struct offsets.
Also, load/save %ds register in __call16().
Diffstat (limited to 'src/asm-offsets.c')
-rw-r--r-- | src/asm-offsets.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/asm-offsets.c b/src/asm-offsets.c new file mode 100644 index 00000000..8f17c045 --- /dev/null +++ b/src/asm-offsets.c @@ -0,0 +1,21 @@ +// Generate assembler offsets. + +#include "gen-defs.h" +#include "bregs.h" + +/* workaround for a warning with -Wmissing-prototypes */ +void foo(void) VISIBLE16; + +void foo(void) +{ + OFFSET(BREGS_es, bregs, es); + OFFSET(BREGS_ds, bregs, ds); + OFFSET(BREGS_eax, bregs, eax); + OFFSET(BREGS_ebx, bregs, ebx); + OFFSET(BREGS_ecx, bregs, ecx); + OFFSET(BREGS_edx, bregs, edx); + OFFSET(BREGS_esi, bregs, esi); + OFFSET(BREGS_edi, bregs, edi); + OFFSET(BREGS_flags, bregs, flags); + OFFSET(BREGS_ip, bregs, ip); +} |