summaryrefslogtreecommitdiffstats
path: root/src/interface/pxe/pxe_preboot.c
Commit message (Collapse)AuthorAgeFilesLines
* [pxe] Move all PXE files to arch/i386Michael Brown2008-11-181-352/+0Star
| | | | | The initial PXE implementation in Etherboot had the goal of being architecture-agnostic, but this goal has not been realised.
* [iSCSI] Support Windows Server 2008 direct iSCSI installationMichael Brown2008-07-171-1/+1
| | | | | | | | | | | | | Add yet another ugly hack to iscsiboot.c, this time to allow the user to inhibit the shutdown/removal of the iSCSI INT13 device (and the network devices, since they are required for the iSCSI device to function). On the plus side, the fact that shutdown() now takes flags to differentiate between shutdown-for-exit and shutdown-for-boot means that another ugly hack (to allow returning via the PXE stack on BIOSes that have broken INT 18 calls) will be easier. I feel dirty.
* [i386] Change semantics of __from_data16 and __from_text16Michael Brown2008-07-011-2/+1Star
| | | | | | | | | __from_data16 and __from_text16 now take a pointer to a .data16/.text16 variable, and return the real-mode offset within the appropriate segment. This matches the use case for every occurrence of these macros, and prevents potential future bugs such as that fixed in commit d51d80f. (The bug arose essentially because "&pointer" is still syntactically valid.)
* [pxe] Fix a typo in PXENV_GET_CACHED_INFO that broke AltirisMichael Brown2008-07-011-1/+1
| | | | | | __from_data16 takes the value pointed to, rather than the pointer itself. This was silently causing gPXE to return a dud buffer pointer when the caller did not supply a buffer for PXENV_GET_CACHED_INFO.
* [Settings] Remove assumption that all settings have DHCP tag valuesMichael Brown2008-03-251-4/+4
| | | | | | | | | | | | Allow for settings to be described by something other than a DHCP option tag if desirable. Currently used only for the MAC address setting. Separate out fake DHCP packet creation code from dhcp.c to fakedhcp.c. Remove notion of settings from dhcppkt.c. Rationalise dhcp.c to use settings API only for final registration of the DHCP options, rather than using {store,fetch}_setting throughout.
* [DHCP] Fix up fake-packet creation as used by PXENV_GET_CACHED_INFOMichael Brown2008-03-231-25/+34
| | | | | | | | | | | Add dedicated functions create_dhcpdiscover(), create_dhcpack() and create_proxydhcpack() for use by external code such as the PXE preboot code. Register ProxyDHCP options under the global scope "proxydhcp". Unregister previously-acquired DHCP and ProxyDHCP settings when DHCP succeeds.
* [Settings] Migrate DHCP and NVO code to the new settings API (untested)Michael Brown2008-03-211-7/+8
|
* [PXE] Work around a buffer-size bug in WinPEMichael Brown2008-03-101-2/+12
| | | | | | | | | | | WinPE's pxeboot.n12 takes the BufferLimit returned by gPXE (indicating the size of gPXE's internal DHCP packet buffers) and erroneously passes it in as BufferSize (indicating the size of pxeboot.n12's DHCP packet buffer). If these don't match, then pxeboot.n12 ends up instructing gPXE to overwrite parts of its data segment. Change gPXE's internal DHCP packet buffers to be exactly sizeof(BOOTPLAYER_t) bytes to work around this problem.
* Add pxe_set_cached_filename() so that pxe_tftp.c can also update theMichael Brown2008-01-221-12/+20
| | | | stored DHCP packets.
* Don't complain when callers provide too-short buffers forMichael Brown2007-12-071-7/+6Star
| | | | PXENV_GET_CACHED_INFO. NTLDR does this.
* Provide individually cached constructed copies of DHCP packets viaMichael Brown2007-11-221-86/+109
| | | | | | PXENV_GET_CACHED_INFO. If we dont do this, Altiris' NBP screws up; it relies on being able to grab pointers to each of the three packets and then read them at will later.
* Do not fill in the BufferLimit field in structMichael Brown2007-11-221-3/+32
| | | | | s_PXENV_GET_CACHED_INFO, because this field doesn't exist in earlier versions of the PXE spec, and some callers don't allocate space for it.
* Centralise construction of the DHCP request and response packets.Michael Brown2007-07-311-10/+8Star
|
* Add (untested) UNDI loader C-level implementation.Michael Brown2007-07-041-18/+17Star
|
* Separated out initialisation functions from startup/shutdown functions.Michael Brown2007-07-041-26/+12Star
|
* Implemented (untested) PXENV_START_UNDI.Michael Brown2007-07-031-32/+41
|
* Use a common base-memory packet buffer for DHCP construction (as usedMichael Brown2007-07-021-3/+3
| | | | by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
* Implement the "overwrite TFTP filename" Microsoft RIS bug workaround.Michael Brown2007-06-301-0/+23
|
* Separate out pxe_start_nbp() from pxe_image.c into pxe_call.cMichael Brown2007-06-301-11/+10Star
| | | | Implement PXENV_RESTART_TFTP.
* I really, really screwed up the semantics of BufferSize and BufferLimit.Michael Brown2007-06-291-6/+7
|
* Windows RIS now gets as far as downloading NTLDR.Michael Brown2007-06-291-3/+7
|
* Include stdlib.h rather than malloc.hMichael Brown2007-01-181-1/+1
|
* Fill in BufferSize in PXENV_GET_CACHED_INFOMichael Brown2007-01-141-0/+1
|
* Implement enough of PXENV_GET_CACHED_INFO to support pxelinux.Michael Brown2006-08-091-59/+58Star
|
* Allow linking by converting functions to stubsMichael Brown2006-08-091-10/+12
|
* Updated PXE UDP implementation to use the new Etherboot UDP API.Michael Brown2006-08-031-0/+4
| | | | | | | Updated PXE API dispatcher to use copy_{to,from}_user, and moved to arch/i386 since the implementation is quite architecture-dependent. (The individual PXE API calls can be largely architecture-independent.)
* Merge from Etherboot 5.4Michael Brown2006-03-161-1/+1
|
* Some versions of doxygen seem to object to "@ret None" or similar.Michael Brown2005-05-241-1/+1
|
* Split PXE code into preboot, udp, tftp, undi and loader units.Michael Brown2005-05-241-0/+249
PXE code now compiles without errors (though it won't actually work).