aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2015-05-21 10:26:49 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2015-05-21 11:44:57 +0200
commitfa9ea2e622eb105fb77f1f09e3194bfc05db7c5e (patch)
treebe8d9bd2dd39fb6cd6c090f8c7bbbf1d43a39f90 /include
parentbd363b8030716a759823d8828690e49ad4d25f96 (diff)
downloadqboot-fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e.zip
qboot-fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e.tar.gz
qboot-fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e.tar.bz2
add malloc
Allocate the e820 map in the E-segment. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/bios.h2
-rw-r--r--include/e820.h26
-rw-r--r--include/string.h3
3 files changed, 5 insertions, 26 deletions
diff --git a/include/bios.h b/include/bios.h
index 93c4c96..d3f9a22 100644
--- a/include/bios.h
+++ b/include/bios.h
@@ -38,7 +38,7 @@ extern void bios_int15(void);
extern void boot_from_fwcfg(void);
-extern struct e820map e820;
+extern uint16_t e820_seg;
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
diff --git a/include/e820.h b/include/e820.h
index 1dfd18f..085df6a 100644
--- a/include/e820.h
+++ b/include/e820.h
@@ -2,30 +2,6 @@
#define _UAPI_ASM_X86_E820_H
#define SMAP 0x534d4150 /* ASCII "SMAP" */
-#define E820MAP 0x2d0 /* our map */
-#define E820MAX 128 /* number of entries in E820MAP */
-
-/*
- * Legacy E820 BIOS limits us to 128 (E820MAX) nodes due to the
- * constrained space in the zeropage. If we have more nodes than
- * that, and if we've booted off EFI firmware, then the EFI tables
- * passed us from the EFI firmware can list more nodes. Size our
- * internal memory map tables to have room for these additional
- * nodes, based on up to three entries per node for which the
- * kernel was built: MAX_NUMNODES == (1 << CONFIG_NODES_SHIFT),
- * plus E820MAX, allowing space for the possible duplicate E820
- * entries that might need room in the same arrays, prior to the
- * call to sanitize_e820_map() to remove duplicates. The allowance
- * of three memory map entries per node is "enough" entries for
- * the initial hardware platform motivating this mechanism to make
- * use of additional EFI map entries. Future platforms may want
- * to allow more than three entries per node or otherwise refine
- * this size.
- */
-
-#define E820_X_MAX E820MAX
-
-#define E820NR 0x1e8 /* # entries in E820MAP */
#define E820_RAM 1
#define E820_RESERVED 2
@@ -50,7 +26,7 @@ struct e820entry {
struct e820map {
uint32_t nr_map;
- struct e820entry map[E820_X_MAX];
+ struct e820entry map[];
};
#define ISA_START_ADDRESS 0xa0000
diff --git a/include/string.h b/include/string.h
index 962b07e..9b0b8af 100644
--- a/include/string.h
+++ b/include/string.h
@@ -15,4 +15,7 @@ int memcmp(const void *s1, const void *s2, size_t n);
void *memmove(void *dest, const void *src, size_t n);
void *memchr(const void *s, int c, size_t n);
+void *malloc(int n);
+void *malloc_fseg(int n);
+
#endif