From 46971666d3fbe15db020029034747a64738754aa Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Fri, 18 Jun 2010 18:27:55 -0700 Subject: [PATCH] sysdump: use lmalloc/lfree Use lmalloc/lfree instead of using the fixed (obsolete) bounce buffer. Signed-off-by: H. Peter Anvin --- com32/sysdump/memmap.c | 6 +++++- 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 a85f092..251107d 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 9bdc715..017f9e4 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"); } -- 2.7.4