comboot: issue IRET for INT 2Fh
authorH. Peter Anvin <hpa@zytor.com>
Tue, 1 Jul 2008 05:21:47 +0000 (22:21 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 1 Jul 2008 05:21:47 +0000 (22:21 -0700)
At least one laptop exists which calls INT 2Fh from inside the BIOS!
So just point INT 2Fh to IRET, and hope that's good enough.

core/comboot.inc

index 40f8817..659b3bb 100644 (file)
@@ -175,6 +175,10 @@ comboot_setup_api:
                stosd
                mov ax,comboot_int22    ; INT 22h = proprietary syscalls
                stosd
+               ; There exists at least one laptop where the VESA BIOS makes INT 2Fh calls
+               ; back into DOS, for unknown reason...
+               mov ax,comboot_iret     ; INT 2Fh = DOS callbacks
+               mov [di+(2Fh-23h)*4],eax
                ret
 
 ; INT 21h: generic DOS system call
@@ -210,6 +214,7 @@ comboot_resume:
                pop fs
                pop es
                pop ds
+comboot_iret:
                iret
 
 comboot_bad_int21: