diff options
Diffstat (limited to 'com32/lib/syslinux/shuffle.c')
-rw-r--r-- | com32/lib/syslinux/shuffle.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/com32/lib/syslinux/shuffle.c b/com32/lib/syslinux/shuffle.c index e9ee6aad..1dcdb9d0 100644 --- a/com32/lib/syslinux/shuffle.c +++ b/com32/lib/syslinux/shuffle.c @@ -38,6 +38,7 @@ #include <string.h> #include <inttypes.h> #include <com32.h> +#include <core.h> #include <minmax.h> #include <dprintf.h> #include <syslinux/movebits.h> @@ -51,12 +52,8 @@ static int shuffler_size; static void __constructor __syslinux_get_shuffer_size(void) { - static com32sys_t reg; - - reg.eax.w[0] = 0x0023; - __intcall(0x22, ®, ®); - - shuffler_size = (reg.eflags.l & EFLAGS_CF) ? 2048 : reg.ecx.w[0]; + /* +15 padding is to guarantee alignment */ + shuffler_size = __bcopyxx_len + 15; } /* @@ -135,7 +132,7 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist, goto bail; #if DEBUG > 1 - syslinux_dump_movelist(stdout, fraglist); + syslinux_dump_movelist(fraglist); #endif if (syslinux_compute_movelist(&moves, fraglist, rxmap)) @@ -155,7 +152,7 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist, #if DEBUG > 1 dprintf("Final movelist:\n"); - syslinux_dump_movelist(stdout, moves); + syslinux_dump_movelist(moves); #endif syslinux_free_memmap(rxmap); |