From e01e93b0f29b6dc9e363d91175ef3f7ecb40f8bf Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 27 Feb 2014 21:44:06 -0800 Subject: shuffler: Actually get the shuffler size sanely Actually get the shuffler size sanely. At least for now, we are BIOS only, so stub out the functions on EFI (they shouldn't even be compiled for EFI; this stuff should be moved into some kind of BIOS-only directory.) Signed-off-by: H. Peter Anvin --- com32/lib/syslinux/shuffle.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'com32/lib/syslinux/shuffle.c') diff --git a/com32/lib/syslinux/shuffle.c b/com32/lib/syslinux/shuffle.c index ce85a5c4..dcc4afa4 100644 --- a/com32/lib/syslinux/shuffle.c +++ b/com32/lib/syslinux/shuffle.c @@ -48,16 +48,6 @@ struct shuffle_descriptor { uint32_t dst, src, len; }; -static int shuffler_size; - -static void __syslinux_get_shuffer_size(void) -{ - if (!shuffler_size) { - /* +15 padding is to guarantee alignment */ - shuffler_size = __bcopyxx_len + 15; - } -} - /* * Allocate descriptor memory in these chunks; if this is large we may * waste memory, if it is small we may get slow convergence. @@ -80,6 +70,11 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist, int nmoves, nzero; com32sys_t ireg; +#ifndef __FIRMWARE_BIOS__ + errno = ENOSYS; + return -1; /* Not supported at this time*/ +#endif + descaddr = 0; dp = dbuf = NULL; @@ -116,14 +111,14 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist, if (!rxmap) goto bail; - __syslinux_get_shuffer_size(); desc_blocks = (nzero + DESC_BLOCK_SIZE - 1) / DESC_BLOCK_SIZE; for (;;) { /* We want (desc_blocks) allocation blocks, plus the terminating descriptor, plus the shuffler safe area. */ addr_t descmem = desc_blocks * sizeof(struct shuffle_descriptor) * DESC_BLOCK_SIZE - + sizeof(struct shuffle_descriptor) + shuffler_size; + + sizeof(struct shuffle_descriptor) + + syslinux_shuffler_size(); descaddr = (desczone + descfree - descmem) & ~3; -- cgit v1.2.1