diff options
| author | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-21 17:29:11 -0700 |
|---|---|---|
| committer | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-21 17:29:11 -0700 |
| commit | 7556a891b2f28617f6c95aa271aeaf29883d0981 (patch) | |
| tree | 703e50c4970c9e64f2e11f76e81001af8fb7d33e /memdisk/setup.c | |
| parent | 3df42588472b07c54b9de11a7e118d6f3f4f6c41 (diff) | |
| download | syslinux-7556a891b2f28617f6c95aa271aeaf29883d0981.tar.gz | |
memdisk: make mstructs.h includable from Linux
Make mstructs.h includable from a Linux utility.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'memdisk/setup.c')
| -rw-r--r-- | memdisk/setup.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/memdisk/setup.c b/memdisk/setup.c index ffaa2c66..20b48c47 100644 --- a/memdisk/setup.c +++ b/memdisk/setup.c @@ -718,6 +718,7 @@ void setup(const struct real_mode_args *rm_args_ptr) char *memdisk_hook; struct memdisk_header *hptr; struct patch_area *pptr; + struct mBFT *mbft; uint16_t driverseg; uint32_t driverptr, driveraddr; uint16_t dosmem_k; @@ -1090,8 +1091,8 @@ void setup(const struct real_mode_args *rm_args_ptr) hptr->safe_hook.old_hook.uint32 = pptr->mdi.oldint13.uint32; /* Re-fill the "safe hook" mBFT field with the physical address */ - hptr->safe_hook.mBFT.ptr = - (struct mBFT *)(((const char *)hptr) + hptr->safe_hook.mBFT.offset); + mbft = (struct mBFT *)(((const char *)hptr) + hptr->safe_hook.mbft); + hptr->safe_hook.mbft = (size_t)mbft; /* Update various BIOS magic data areas (gotta love this shit) */ @@ -1128,14 +1129,12 @@ void setup(const struct real_mode_args *rm_args_ptr) } /* Complete the mBFT */ - hptr->safe_hook.mBFT.ptr->acpi.signature[0] = 'm'; /* "mBFT" */ - hptr->safe_hook.mBFT.ptr->acpi.signature[1] = 'B'; - hptr->safe_hook.mBFT.ptr->acpi.signature[2] = 'F'; - hptr->safe_hook.mBFT.ptr->acpi.signature[3] = 'T'; - hptr->safe_hook.mBFT.ptr->safe_hook.ptr = &hptr->safe_hook; - hptr->safe_hook.mBFT.ptr->acpi.checksum = - -checksum_buf(hptr->safe_hook.mBFT.ptr, - hptr->safe_hook.mBFT.ptr->acpi.length); + mbft->acpi.signature[0] = 'm'; /* "mBFT" */ + mbft->acpi.signature[1] = 'B'; + mbft->acpi.signature[2] = 'F'; + mbft->acpi.signature[3] = 'T'; + mbft->safe_hook = (size_t)&hptr->safe_hook; + mbft->acpi.checksum = -checksum_buf(mbft, mbft->acpi.length); /* Install the interrupt handlers */ printf("old: int13 = %08x int15 = %08x int1e = %08x\n", |
