Correct syslinux detection
authorhpa <hpa>
Tue, 3 Feb 2004 06:11:38 +0000 (06:11 +0000)
committerhpa <hpa>
Tue, 3 Feb 2004 06:11:38 +0000 (06:11 +0000)
menu/syslinux.c
menu/syslinux.h

index 67a1585..ebb72b5 100644 (file)
@@ -17,14 +17,17 @@ static inline int asm_issyslinux(void)
 {
   unsigned long eax, ebx, ecx, edx;
 
-  asm("movb $0x30,%%ah ; int $0x21"
-      : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx));
+  eax = 0x00003000;
+  ebx = ecx = edx = 0xFFFFFFFF;
+
+  asm("int $0x21"
+      : "+a" (eax), "+b" (ebx), "+c" (ecx), "+d" (edx));
 
   return (eax == 0x53590000) && (ebx == 0x534c0000) &&
     (ecx == 0x494e0000) && (edx == 0x55580000);
 }
 
-char issyslinux(void)
+int issyslinux(void)
 {
    return asm_issyslinux();
 }
index 87b7979..ef73d3a 100644 (file)
@@ -4,7 +4,7 @@
 
 extern int syslinux;           /* Syslinux flag */
 
-char issyslinux(void);         /* Check if syslinux is running */
+int issyslinux(void);          /* Check if syslinux is running */
 
 void runcommand(const char *cmd); /* Run specified command */