diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-18 18:27:55 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-18 18:27:55 -0700 |
commit | 46971666d3fbe15db020029034747a64738754aa (patch) | |
tree | b77c7c7c3229966a8fe3255697fa98e84c9f82e0 | |
parent | 618d11938982a04070ded7291a9f12c3b0452d1d (diff) | |
download | syslinux-46971666d3fbe15db020029034747a64738754aa.tar.gz |
sysdump: use lmalloc/lfree
Use lmalloc/lfree instead of using the fixed (obsolete) bounce buffer.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | com32/sysdump/memmap.c | 6 | ||||
-rw-r--r-- | com32/sysdump/vesa.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/com32/sysdump/memmap.c b/com32/sysdump/memmap.c index a85f0925..251107d5 100644 --- a/com32/sysdump/memmap.c +++ b/com32/sysdump/memmap.c @@ -19,10 +19,12 @@ struct e820_info { static void dump_e820(struct backend *be) { com32sys_t ireg, oreg; - struct e820_info *curr = __com32.cs_bounce; + struct e820_info *curr; struct e820_info *buf, *p; int nentry, nalloc; + curr = lmalloc(sizeof *curr); + buf = p = NULL; nentry = nalloc = 0; memset(&ireg, 0, sizeof ireg); @@ -56,7 +58,9 @@ static void dump_e820(struct backend *be) if (nentry) cpio_writefile(be, "memmap/15e820", buf, nentry*sizeof *buf); + free(buf); + lfree(curr); } void dump_memory_map(struct backend *be) diff --git a/com32/sysdump/vesa.c b/com32/sysdump/vesa.c index 9bdc7153..017f9e4f 100644 --- a/com32/sysdump/vesa.c +++ b/com32/sysdump/vesa.c @@ -7,6 +7,7 @@ void dump_vesa_tables(struct backend *be) { com32sys_t rm; + struct vesa_info *vip; struct vesa_general_info *gip, gi; struct vesa_mode_info *mip, mi; uint16_t mode, *mode_ptr; @@ -15,8 +16,9 @@ void dump_vesa_tables(struct backend *be) printf("Scanning VESA BIOS... "); /* Allocate space in the bounce buffer for these structures */ - gip = &((struct vesa_info *)__com32.cs_bounce)->gi; - mip = &((struct vesa_info *)__com32.cs_bounce)->mi; + vip = lmalloc(sizeof *vip); + gip = &vip->gi; + mip = &vip->mi; memset(&rm, 0, sizeof rm); memset(gip, 0, sizeof *gip); @@ -56,5 +58,6 @@ void dump_vesa_tables(struct backend *be) cpio_writefile(be, modefile, &mi, sizeof mi); } + lfree(vip); printf("done.\n"); } |