summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c')
-rw-r--r--contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c85
1 files changed, 0 insertions, 85 deletions
diff --git a/contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c b/contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c
deleted file mode 100644
index 251107d..0000000
--- a/contrib/syslinux/syslinux-4.03/com32/sysdump/memmap.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Dump memory map information
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <com32.h>
-#include "sysdump.h"
-#include "backend.h"
-
-#define E820_CHUNK 128
-struct e820_info {
- uint32_t ebx;
- uint32_t len;
- uint8_t data[24];
-};
-
-static void dump_e820(struct backend *be)
-{
- com32sys_t ireg, oreg;
- 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);
- memset(&curr, 0, sizeof curr);
-
- ireg.eax.l = 0xe820;
- ireg.edx.l = 0x534d4150;
- ireg.ecx.l = sizeof curr->data;
- ireg.es = SEG(curr->data);
- ireg.edi.w[0] = OFFS(curr->data);
-
- do {
- __intcall(0x15, &ireg, &oreg);
- if ((oreg.eflags.l & EFLAGS_CF) ||
- oreg.eax.l != 0x534d4150)
- break;
-
- if (nentry >= nalloc) {
- nalloc += E820_CHUNK;
- buf = realloc(buf, nalloc*sizeof *buf);
- if (!buf)
- return; /* FAILED */
- }
- memcpy(buf[nentry].data, curr->data, sizeof curr->data);
- buf[nentry].ebx = ireg.ebx.l;
- buf[nentry].len = oreg.ecx.l;
- nentry++;
-
- ireg.ebx.l = oreg.ebx.l;
- } while (ireg.ebx.l);
-
- if (nentry)
- cpio_writefile(be, "memmap/15e820", buf, nentry*sizeof *buf);
-
- free(buf);
- lfree(curr);
-}
-
-void dump_memory_map(struct backend *be)
-{
- com32sys_t ireg, oreg;
-
- cpio_mkdir(be, "memmap");
-
- memset(&ireg, 0, sizeof ireg);
- __intcall(0x12, &ireg, &oreg);
- cpio_writefile(be, "memmap/12", &oreg, sizeof oreg);
-
- ireg.eax.b[1] = 0x88;
- __intcall(0x15, &ireg, &oreg);
- cpio_writefile(be, "memmap/1588", &oreg, sizeof oreg);
-
- ireg.eax.w[0] = 0xe801;
- __intcall(0x15, &ireg, &oreg);
- cpio_writefile(be, "memmap/15e801", &oreg, sizeof oreg);
-
- dump_e820(be);
-}