From: Matt Fleming Date: Tue, 27 Nov 2012 11:57:59 +0000 (+0000) Subject: cmenu: Delete __intcall()s X-Git-Tag: syslinux-5.00-pre11~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13bdb6b05cd0d4bb4eb853a74b71f80dc892491e;p=platform%2Fupstream%2Fsyslinux.git cmenu: Delete __intcall()s We can dynamically resolve our symbols and so we don't need to jump through __intcall(), which is deprecated anyway in favour of dynamic resolution. Signed-off-by: Matt Fleming --- diff --git a/com32/cmenu/libmenu/syslnx.c b/com32/cmenu/libmenu/syslnx.c index c681f58..5060c5d 100644 --- a/com32/cmenu/libmenu/syslnx.c +++ b/com32/cmenu/libmenu/syslnx.c @@ -19,16 +19,6 @@ com32sys_t inreg, outreg; // Global registers for this module -char issyslinux(void) -{ - REG_EAX(inreg) = 0x00003000; - REG_EBX(inreg) = REG_ECX(inreg) = REG_EDX(inreg) = 0xFFFFFFFF; - __intcall(0x21, &inreg, &outreg); - return (REG_EAX(outreg) == 0x59530000) && - (REG_EBX(outreg) == 0x4c530000) && - (REG_ECX(outreg) == 0x4e490000) && (REG_EDX(outreg) == 0x58550000); -} - void runsyslinuxcmd(const char *cmd) { char *bounce; @@ -60,43 +50,15 @@ unsigned int getversion(char *deriv, unsigned int *numfun) return __syslinux_version.version; } -void runsyslinuximage(const char *cmd, long ipappend) +char issyslinux(void) { - unsigned int numfun = 0; - char *ptr, *cmdline; - char *bounce; + return !!getversion(NULL, NULL); +} +void runsyslinuximage(const char *cmd, long ipappend) +{ (void)ipappend; // XXX: Unused?! - getversion(NULL, &numfun); - // Function 16h not supported Fall back to runcommand - if (numfun < 0x16) - runsyslinuxcmd(cmd); - // Try the Run Kernel Image function - // Split command line into - bounce = lmalloc(strlen(cmd) + 1); - if (!bounce) - return; - - strcpy(bounce, cmd); - ptr = bounce; - // serach for first space or end of string - while ((*ptr) && (*ptr != ' ')) - ptr++; - if (!*ptr) - cmdline = ptr; // no command line - else { - *ptr++ = '\0'; // terminate kernal name - cmdline = ptr + 1; - while (*cmdline != ' ') - cmdline++; // find first non-space - } - // Now call the interrupt - REG_BX(inreg) = OFFS(cmdline); - REG_ES(inreg) = SEG(cmdline); - REG_SI(inreg) = OFFS(bounce); - REG_DS(inreg) = SEG(bounce); - REG_EDX(inreg) = 0; - - __intcall(0x22, &inreg, &outreg); // If successful does not return + getversion(NULL, NULL); + runsyslinuxcmd(cmd); }