summaryrefslogtreecommitdiffstats
path: root/src/interface
Commit message (Collapse)AuthorAgeFilesLines
* [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.
* [PXEXT] Add PXENV_FILE_EXEC call to PXE extensions API.Michael Brown2008-03-041-1/+39
| | | | | | | | This allows pxelinux to execute arbitrary gPXE commands. This is remarkably unsafe (not least because some of the commands will assume full ownership of memory and do nasty things like edit the e820 map underneath the calling pxelinux), but it does allow access to the "sanboot" command.
* Start restructuring pxe_tftp.c to cope with multicast (MTFTP) receives.Michael Brown2008-02-021-147/+231
|
* Add pxe_set_cached_filename() so that pxe_tftp.c can also update theMichael Brown2008-01-221-12/+20
| | | | stored DHCP packets.
* Use XFER_INIT() macro.Michael Brown2008-01-221-7/+1Star
|
* Make seek information part of the xfer metadata, rather than an entirelyMichael Brown2008-01-081-1/+0Star
| | | | | | | separate xfer method. Add missing .alloc_iob entries to several xfer_interface_operations structures.
* Fix compiler warnings that appear only on OpenBSD.Michael Brown2007-12-061-2/+2
|
* 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.
* Add PXE FILE API.Michael Brown2007-08-041-0/+191
|
* Make read_user() non-blocking, and add select() call.Michael Brown2007-08-041-15/+38
|
* Centralise construction of the DHCP request and response packets.Michael Brown2007-07-311-10/+8Star
|
* Add per-file error identifiersMichael Brown2007-07-242-0/+2
|
* Separate the "is data ready" function of xfer_seek() into anMichael Brown2007-07-081-0/+1
| | | | | xfer_window() function, which can return a scalar rather than a boolean.
* Kill off unused request() method in data-xfer interface.Michael Brown2007-07-081-1/+0Star
|
* Use net_device_operations structure and netdev_nullify() to allow forMichael Brown2007-07-071-9/+17
| | | | | | | | | | | safe dropping of the netdev ref by the driver while other refs still exist. Add netdev_irq() method. Net device open()/close() methods should no longer enable or disable IRQs. Remove rx_quota; it wasn't used anywhere and added too much complexity to implementing correct interrupt-masking behaviour in pxe_undi.c.
* Allow recording of TX and RX errors to aid in end-user debugging.Michael Brown2007-07-051-4/+4
|
* !PXE and PXENV+ structures are in code segment, not data segment.Michael Brown2007-07-041-3/+4
|
* Add (untested) UNDI loader C-level implementation.Michael Brown2007-07-042-74/+39Star
|
* Separated out initialisation functions from startup/shutdown functions.Michael Brown2007-07-041-26/+12Star
|
* Move pxe_netdev and set_pxe_netdev to pxe_undi.c and removeMichael Brown2007-07-032-182/+15Star
| | | | now-obsolete pxe.c.
* Implemented (untested) PXENV_START_UNDI.Michael Brown2007-07-031-32/+41
|
* Report our interface type as "gPXE" to avoid working around EtherbootMichael Brown2007-07-031-1/+1
| | | | 5.4 bugs when driving ourselves via UNDI.
* Kill off PXENV_UNDI_FORCE_INTERRUPT support; we have no reason toMichael Brown2007-07-031-7/+4Star
| | | | | suspect that we need it, and implementing it would require needlessly complicating the net device API.
* Reserve space for link-layer header in pxenv_undi_transmit() when notMichael Brown2007-07-031-2/+10
| | | | handed a P_UNKNOWN packet.
* Add missing call to free_iob() in pxenv_undi_isr().Michael Brown2007-07-031-5/+6
| | | | Correct typo in pxenv_set_station_address().
* Add trivial net device statistics (TX and RX packet count), reportedMichael Brown2007-07-031-8/+13
| | | | via UNDI API and also by ifstat command; may be useful for debugging.
* Place netdev_open()/netdev_close() calls in appropriate places.Michael Brown2007-07-031-8/+24
|
* Add mechanism for providing TX completion events.Michael Brown2007-07-031-9/+43
|
* Add untested support for UNDI transmit and receive.Michael Brown2007-07-021-112/+107Star
|
* 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).
* pxe_netdev now holds a reference to the network device.Michael Brown2007-07-022-55/+41Star
| | | | | | | | | Use generic fields in struct device_description rather than assuming that the struct device * is contained within a pci_device or isapnp_device; this assumption is broken when using the undionly driver. Add PXENV_UNDI_SET_STATION_ADDRESS.
* Call shutdown() from pxenv_undi_shutdown(). Probably not totallyMichael Brown2007-07-021-0/+3
| | | | correct, but it's enough to get RIS working.
* Implement the two UNDI API calls used by RIS.Michael Brown2007-06-301-42/+75
|
* Implement the "overwrite TFTP filename" Microsoft RIS bug workaround.Michael Brown2007-06-302-3/+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-292-5/+14
|
* Partial migration of UDP to data-xfer interface. (Will not link atMichael Brown2007-06-201-30/+7Star
| | | | present; DHCP is broken).
* Updated TFTP and PXE UDP API code to use not-yet-implemented data-xferMichael Brown2007-06-112-91/+89Star
| | | | UDP API.
* Updated to use POSIX-style file I/O layer.Michael Brown2007-05-181-298/+149Star
|
* Include stdlib.h rather than malloc.hMichael Brown2007-01-181-1/+1
|
* Split DBG() statement containing two inet_ntoa() statements; theyMichael Brown2007-01-141-3/+3
| | | | return a static buffer.
* Dump buffer and packet information in PXENV_UDP_READ as wellMichael Brown2007-01-141-0/+7
|
* Fill in BufferSize in PXENV_GET_CACHED_INFOMichael Brown2007-01-141-0/+1
|
* Currently unusable; do not attempt to compileMichael Brown2007-01-041-0/+3
|