diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2014-03-03 10:18:09 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2014-03-03 10:18:09 -0800 |
commit | 908c3fa1c3ea57e2bba148a590ebb788b453af09 (patch) | |
tree | c1980e79f4c3d63524fcb282bd6ad4df89121de9 /com32/lib/syslinux/shuffle.c | |
parent | a562f1c87424a58daea16dc0bd8801211817c116 (diff) | |
parent | 4c8fbb20ad6f612a9fe8022c3a14b402a07b8f33 (diff) | |
download | syslinux-908c3fa1c3ea57e2bba148a590ebb788b453af09.tar.gz |
Merge branch 'nocomapi'syslinux-6.03-pre7
Diffstat (limited to 'com32/lib/syslinux/shuffle.c')
-rw-r--r-- | com32/lib/syslinux/shuffle.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/com32/lib/syslinux/shuffle.c b/com32/lib/syslinux/shuffle.c index dcc4afa4..4f9c22b7 100644 --- a/com32/lib/syslinux/shuffle.c +++ b/com32/lib/syslinux/shuffle.c @@ -43,6 +43,7 @@ #include <dprintf.h> #include <syslinux/movebits.h> #include <klibc/compiler.h> +#include <syslinux/boot.h> struct shuffle_descriptor { uint32_t dst, src, len; @@ -68,7 +69,6 @@ int syslinux_do_shuffle(struct syslinux_movelist *fraglist, int need_ptrs; addr_t desczone, descfree, descaddr; int nmoves, nzero; - com32sys_t ireg; #ifndef __FIRMWARE_BIOS__ errno = ENOSYS; @@ -219,13 +219,8 @@ bail: return rv; /* Actually do it... */ - memset(&ireg, 0, sizeof ireg); - ireg.edi.l = descaddr; - ireg.esi.l = (addr_t) dbuf; - ireg.ecx.l = (addr_t) dp - (addr_t) dbuf; - ireg.edx.w[0] = bootflags; - ireg.eax.w[0] = 0x0024; - __intcall(0x22, &ireg, NULL); + bios_do_shuffle_and_boot(bootflags, descaddr, dbuf, + (size_t)dp - (size_t)dbuf); return -1; /* Shouldn't have returned! */ } |