* Comments are now recognized even without a space following #.
* Fix incorrect handling of mixes of entries with and without
MENU PASSWD.
+ * The idle API call now harmlessly returns failure if it is a
+ no-op. That way the caller can decide whether or not to
+ bother invoking it again.
Changes in 3.09:
* gcc4 compilation fix.
if ( do_idle ) {
__intcall(0x22, &sys_idle, &idle_result);
- if ( idle_result.eflags.l & EFLAGS_CF )
- do_idle = 0;
+ do_idle = ~idle_result.eflags.l & EFLAGS_CF;
}
cpu_relax();
the moment, this is a no-op on all derivatives except
PXELINUX, where it executes PXE calls to answer ARP queries.
- Note: it's safe to call this API call on previous SYSLINUX
- versions (2.00 or later); it will just harmlessly fail. If
- API call INT 22h, AX=0015h, bit 1 is set, there is no reason
- (but safe) to call this routine.
+ Starting with version 3.10, this API call harmlessly returns
+ failure (CF=1) if invoked on a platform which does not need
+ idle calls. Additionally, it's safe to call this API call on
+ previous SYSLINUX versions (2.00 or later); it will just
+ harmlessly fail. Thus, if this call returns failure (CF=1),
+ it means that there is no technical reason to call this
+ function again, although doing so is of course safe.
AX=0014h [3.10] Local boot [PXELINUX, ISOLINUX]
;
; INT 22h AX=0013h Idle call
;
+%ifdef HAVE_IDLE
+
comapi_idle:
DO_IDLE
clc
ret
+%else
+
+comapi_idle equ comapi_err
+
+%endif
+
;
; INT 22h AX=0014h Local boot
;