aboutsummaryrefslogtreecommitdiffstats
path: root/core/pxelinux-c.c
blob: ac23d82268bc99d6c7175fc5ca6e5dda6b2f057a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <syslinux/config.h>
#include <com32.h>

extern far_ptr_t InitStack, StrucPtr;

/*
 * IP information.  Note that the field are in the same order as the
 * Linux kernel expects in the ip= option.
 */
struct syslinux_ipinfo IPInfo;
uint16_t APIVer;		/* PXE API version found */

__export void get_derivative_info(union syslinux_derivative_info *di)
{
	di->pxe.filesystem = SYSLINUX_FS_PXELINUX;
	di->pxe.apiver = APIVer;
	di->pxe.pxenvptr = GET_PTR(StrucPtr);
	di->pxe.pxenv_offs = StrucPtr.offs;
	di->pxe.pxenv_seg = StrucPtr.seg;
	di->pxe.stack = GET_PTR(InitStack);
	di->pxe.stack_offs = InitStack.offs;
	di->pxe.stack_seg = InitStack.seg;
	di->pxe.ipinfo = &IPInfo;
	di->pxe.myip = IPInfo.myip;
}