aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-02-06 16:28:05 -0800
committerH. Peter Anvin <hpa@zytor.com>2010-02-06 16:28:48 -0800
commitec7ce064361a4900d27bfe4a2040d4443ca2519c (patch)
treed6674d4fa37b2c213e16be363a242b5d01dc73f2
parentc823e677c273321821975fa4bd512f7eabf0ce51 (diff)
downloadsyslinux.git-ec7ce064361a4900d27bfe4a2040d4443ca2519c.tar.gz
syslinux.git-ec7ce064361a4900d27bfe4a2040d4443ca2519c.tar.xz
syslinux.git-ec7ce064361a4900d27bfe4a2040d4443ca2519c.zip
pxelinux: give our own IP address in the "derivate info" API call
Add our own IP address to the "get derivative-specific info" API call. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--com32/include/syslinux/config.h2
-rw-r--r--core/comboot.inc2
-rw-r--r--doc/comboot.txt1
3 files changed, 4 insertions, 1 deletions
diff --git a/com32/include/syslinux/config.h b/com32/include/syslinux/config.h
index 168a5160..868b0f10 100644
--- a/com32/include/syslinux/config.h
+++ b/com32/include/syslinux/config.h
@@ -110,7 +110,7 @@ union syslinux_derivative_info {
uint32_t _edi, _esi, _ebp, _esp, _ebx;
uint16_t apiver;
uint16_t _dxh;
- uint32_t _ecx;
+ uint32_t myip;
uint8_t filesystem, ah;
uint16_t _axh;
uint32_t _eflags;
diff --git a/core/comboot.inc b/core/comboot.inc
index cdba16d5..82b158f8 100644
--- a/core/comboot.inc
+++ b/core/comboot.inc
@@ -577,6 +577,8 @@ comapi_derinfo:
mov P_SI,ax
mov ax,[InitStack+2]
mov P_FS,ax
+ mov eax,[MyIP]
+ mov P_ECX,eax
%else
; Physical medium...
diff --git a/doc/comboot.txt b/doc/comboot.txt
index b3d8e648..4ef10f45 100644
--- a/doc/comboot.txt
+++ b/doc/comboot.txt
@@ -401,6 +401,7 @@ AX=000Ah [2.00] Get Derivative-Specific Information
Input: AX 000Ah
Output: AL 32h (PXELINUX)
DX PXE API version detected (DH=major, DL=minor)
+ ECX Local IP number (network byte order) [3.85]
ES:BX pointer to PXENV+ or !PXE structure
FS:SI pointer to original stack with invocation record