summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhpa <hpa>2002-06-12 19:25:32 +0000
committerhpa <hpa>2002-06-12 19:25:32 +0000
commit55ddbef3b32a149c2ee1b37d3600ea5c4a1bf57c (patch)
tree6b41e944c0f8e621afbe55c7dd6cc51e0b00932e
parenta2102044e0d13b194f89ddc699671aee3ae6e5b9 (diff)
downloadsyslinux-55ddbef3b32a149c2ee1b37d3600ea5c4a1bf57c.tar.gz
Remove the noop API call, and instead use function 0 for internal
purposes as the actual implementation of "unimplemented syscall."
-rw-r--r--comboot.doc8
-rw-r--r--comboot.inc20
2 files changed, 13 insertions, 15 deletions
diff --git a/comboot.doc b/comboot.doc
index 50b9720b..9985b906 100644
--- a/comboot.doc
+++ b/comboot.doc
@@ -185,14 +185,6 @@ All calls return CF=0 on success, CF=1 on failure. The noted outputs
apply if CF=0 only unless otherwise noted.
-AX=0000h No Operation
-
- Input: AX 0000h
- Output: None
-
- This API call does nothing.
-
-
AX=0001h Get Version
Input: AX 0001h
diff --git a/comboot.inc b/comboot.inc
index b3b46474..546feb29 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -226,15 +226,22 @@ comboot_int22:
pop ds
cmp ax,int22_count
- jae comboot_apierr
-
+ jb .ok
+ xor ax,ax ; Function 0 -> unimplemented
+.ok:
xchg ax,bx
add bx,bx
call [bx+int22_table]
jmp comboot_resume ; On return
;
-; INT 22h AX=0000h Null system call
+; INT 22h AX=0000h Unimplemented call
+;
+comapi_err:
+ stc
+ ret
+
+;
; INT 22h AX=0001h Get SYSLINUX version
;
comapi_get_version:
@@ -360,19 +367,18 @@ comapi_close:
;
; INT 22h AX=0009h Call PXE stack
;
-comapi_pxecall:
%if IS_PXELINUX
+comapi_pxecall:
call far [PXENVEntry]
clc
ret
%else
- stc ; Function not available
- ret
+comapi_pxecall equ comapi_err ; Not available
%endif
align 2, db 0
int22_table:
- dw comapi_nop ; 0000 null syscall
+ dw comapi_err ; 0000 unimplemented syscall
dw comapi_get_version ; 0001 get SYSLINUX version
dw comapi_writestr ; 0002 write string
dw comapi_run ; 0003 run specified command