diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2013-01-20 10:43:54 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2013-01-20 10:43:54 -0500 |
commit | 6156afe098251f590f075b5cc7d106cc8460d01c (patch) | |
tree | 428ce9058c607103bb8ea42a5d97bd5a749827d9 /src/pmm.c | |
parent | 4bd8aebf3534e10d9aa21e820903f2cf9120708c (diff) | |
download | seabios-6156afe098251f590f075b5cc7d106cc8460d01c.tar.gz |
pmm: Use 'struct segoff_s' in pmm header.
Minor cleanup - use 'struct segoff_s' instead of a manual
segment/offset pair.
Also, while at it, define the header signature at compile time instead
of at run-time. (Defining at run-time is a hold over from when
variable changes were persistent across soft-reboots.)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/pmm.c')
-rw-r--r-- | src/pmm.c | 13 |
1 files changed, 4 insertions, 9 deletions
@@ -416,8 +416,7 @@ struct pmmheader { u8 version; u8 length; u8 checksum; - u16 entry_offset; - u16 entry_seg; + struct segoff_s entry; u8 reserved[5]; } PACKED; @@ -427,9 +426,9 @@ extern struct pmmheader PMMHEADER; #if CONFIG_PMM struct pmmheader PMMHEADER __aligned(16) VAR16EXPORT = { + .signature = PMM_SIGNATURE, .version = 0x01, .length = sizeof(PMMHEADER), - .entry_seg = SEG_BIOS, }; #endif @@ -545,9 +544,6 @@ handle_pmm(u16 *args) return ret; } -// romlayout.S -extern void entry_pmm(void); - void pmm_setup(void) { @@ -556,8 +552,7 @@ pmm_setup(void) dprintf(3, "init PMM\n"); - PMMHEADER.signature = PMM_SIGNATURE; - PMMHEADER.entry_offset = (u32)entry_pmm - BUILD_BIOS_ADDR; + PMMHEADER.entry = FUNC16(entry_pmm); PMMHEADER.checksum -= checksum(&PMMHEADER, sizeof(PMMHEADER)); } @@ -570,5 +565,5 @@ pmm_finalize(void) dprintf(3, "finalize PMM\n"); PMMHEADER.signature = 0; - PMMHEADER.entry_offset = 0; + PMMHEADER.entry.segoff = 0; } |