diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-05-18 13:42:19 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-05-18 13:44:35 -0700 |
commit | 4826c90afd85d3bc8ee963de0bf1438340db865a (patch) | |
tree | 5975a83deef10ec240c35bcdafed5a168c49be55 /core/comboot.inc | |
parent | 208721a5fa25e5a12d31e7a51488bf5ea7e2a680 (diff) | |
download | syslinux-4826c90afd85d3bc8ee963de0bf1438340db865a.tar.gz |
Try to HLT the processor during idlesyslinux-3.81-pre4
Try to HLT the processor during idle. All the events we care about
should have interrupts associated with them, except possibly the
serial console. Try to deal with the serial console by waiting some
time before going into HLT, and giving the user the option of enabling
the serial console interrupt, on the assumption that the BIOS will
simply IRET.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/comboot.inc')
-rw-r--r-- | core/comboot.inc | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/core/comboot.inc b/core/comboot.inc index 4db0b3e0..bbb0ad71 100644 --- a/core/comboot.inc +++ b/core/comboot.inc @@ -385,24 +385,11 @@ comboot_getchar: ; ; INT 28h - DOS idle ; -%ifdef HAVE_IDLE comboot_int28: cli cld - pushad - xor ax,ax - push ds - push es - mov ds,ax - mov es,ax - DO_IDLE - pop es - pop ds - popad + call do_idle iret -%else -comboot_int28 equ comboot_iret -%endif ; ; INT 29h - DOS fast write character @@ -718,22 +705,11 @@ comapi_dnsresolv equ comapi_err ; ; INT 22h AX=0013h Idle call ; -; -; *** FIX THIS *** -; The idle call seems to have detrimental effects on some machines when -; called from a COM32 context (WHY?) -- disable it for now. -; *** IS THIS STILL TRUE? *** -; -%ifdef HAVE_IDLE comapi_idle: - DO_IDLE + call do_idle clc ret -%else -comapi_idle equ comapi_err -%endif - ; ; INT 22h AX=0014h Local boot ; @@ -1061,7 +1037,7 @@ zero_string db 0 ; Empty, null-terminated string ; in pxe_detect_nic_type ; feature_flags: - db 3 ; Have local boot, idle is noop + db 1 ; Have local boot, idle is not noop feature_flags_len equ ($-feature_flags) err_notdos db ': attempted DOS system call INT ',0 |