summaryrefslogtreecommitdiff
path: root/com32/include/syslinux/movebits.h
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2013-07-25 20:14:09 +0100
committerMatt Fleming <matt.fleming@intel.com>2013-07-25 22:39:57 +0100
commit77cadda8fa63289dbd3d2bbc6eaff7c7e42688c4 (patch)
treef376c57888d0e89fa1ef6f3934844c4b63c28bed /com32/include/syslinux/movebits.h
parentc8524364ff29e3f0bef0b21d66e571ba76e8d9d4 (diff)
downloadsyslinux-77cadda8fa63289dbd3d2bbc6eaff7c7e42688c4.tar.gz
load_linux: dynamically calculate the cmdline regionsyslinux-6.02-pre12
Users are hitting issues where the offset calculated by, (0x9ff0 - cmdline_size) & ~15; is not useable memory, e.g. it is SMT_RESERVED. Instead we should be trying to find the highest lowmem address. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/include/syslinux/movebits.h')
-rw-r--r--com32/include/syslinux/movebits.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/com32/include/syslinux/movebits.h b/com32/include/syslinux/movebits.h
index d12fb584..f35418f9 100644
--- a/com32/include/syslinux/movebits.h
+++ b/com32/include/syslinux/movebits.h
@@ -83,6 +83,10 @@ enum syslinux_memmap_types syslinux_memmap_type(struct syslinux_memmap *list,
int syslinux_memmap_largest(struct syslinux_memmap *list,
enum syslinux_memmap_types type,
addr_t * start, addr_t * len);
+int syslinux_memmap_highest(struct syslinux_memmap *list,
+ enum syslinux_memmap_types types,
+ addr_t *start, addr_t len,
+ addr_t ceiling, addr_t align);
void syslinux_free_memmap(struct syslinux_memmap *list);
struct syslinux_memmap *syslinux_dup_memmap(struct syslinux_memmap *list);
int syslinux_memmap_find_type(struct syslinux_memmap *list,