diff options
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | comboot.doc | 8 | ||||
-rw-r--r-- | comboot.inc | 9 | ||||
-rw-r--r-- | pxelinux.asm | 2 |
4 files changed, 23 insertions, 2 deletions
@@ -3,7 +3,11 @@ apply to that specific program only; other changes apply to all of them. Changes in 3.08: - * SYSLINUX: Fix performance regression (-s mode always enabled.) + * SYSLINUX: Fix performance regression (-s mode always + enabled.) + * Add API function for idle loop. + * libutil: Add do_idle() function for idle loop, make + get_key() use it. Changes in 3.07: * Fix chainloading (chain.c32). diff --git a/comboot.doc b/comboot.doc index 8e25e8bd..ee2ca07e 100644 --- a/comboot.doc +++ b/comboot.doc @@ -575,3 +575,11 @@ AX=0012h [3.05] Cleanup, shuffle and boot were set up by the PXE ROM. +AX=0013h [3.08] Idle loop call + Input: AX 0013h + Output: None + + Call this routine while sitting in an idle loop. It performs + any periodic activities required by the filesystem code. At + the moment, this is a no-op on all derivatives except + PXELINUX, where it executes PXE calls to answer ARP queries. diff --git a/comboot.inc b/comboot.inc index d8a55a8a..dfe57b64 100644 --- a/comboot.inc +++ b/comboot.inc @@ -644,6 +644,14 @@ comapi_shuffle: stc ret +; +; INT 22h AX=0013h Idle call +; +comapi_idle: + DO_IDLE + clc + ret + int21_table: int21 00h, comboot_return int21 01h, comboot_getkey @@ -678,6 +686,7 @@ int22_table: dw comapi_dnsresolv ; 0010 resolve hostname dw comapi_maxshuffle ; 0011 maximum shuffle descriptors dw comapi_shuffle ; 0012 cleanup, shuffle and boot + dw comapi_idle ; 0013 idle call int22_count equ ($-int22_table)/2 APIKeyWait db 0 diff --git a/pxelinux.asm b/pxelinux.asm index e8c38062..a48093fc 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -2343,7 +2343,7 @@ check_for_arp: mov word [pxe_udp_read_pkt.buffersize],packet_buf_size mov eax,[MyIP] mov [pxe_udp_read_pkt.dip],eax - mov [pxe_udp_read_pkt.lport],ax ; 0 + mov word [pxe_udp_read_pkt.lport],htons(9) ; discard port mov di,pxe_udp_read_pkt mov bx,PXENV_UDP_READ call pxenv |