iPXE
|
UNDI load/unload. More...
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <pxe.h>
#include <realmode.h>
#include <bios.h>
#include <pnpbios.h>
#include <basemem.h>
#include <ipxe/pci.h>
#include <undi.h>
#include <undirom.h>
#include <undiload.h>
Go to the source code of this file.
Macros | |
#define | EINFO_EUNDILOAD |
#define | EUNDILOAD(status) EPLATFORM ( EINFO_EUNDILOAD, status ) |
#define | undi_loader __use_data16 ( undi_loader ) |
#define | undi_loader_entry __use_data16 ( undi_loader_entry ) |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
static struct s_UNDI_LOADER | __bss16 (undi_loader) |
Parameter block for calling UNDI loader. More... | |
static SEGOFF16_t | __bss16 (undi_loader_entry) |
UNDI loader entry point. More... | |
int | undi_load (struct undi_device *undi, struct undi_rom *undirom) |
Call UNDI loader to create a pixie. More... | |
int | undi_unload (struct undi_device *undi) |
Unload a pixie. More... | |
UNDI load/unload.
Definition in file undiload.c.
#define EINFO_EUNDILOAD |
Definition at line 46 of file undiload.c.
#define EUNDILOAD | ( | status | ) | EPLATFORM ( EINFO_EUNDILOAD, status ) |
Definition at line 49 of file undiload.c.
#define undi_loader __use_data16 ( undi_loader ) |
Definition at line 53 of file undiload.c.
#define undi_loader_entry __use_data16 ( undi_loader_entry ) |
Definition at line 57 of file undiload.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Parameter block for calling UNDI loader.
|
static |
UNDI loader entry point.
int undi_load | ( | struct undi_device * | undi, |
struct undi_rom * | undirom | ||
) |
Call UNDI loader to create a pixie.
undi | UNDI device |
undirom | UNDI ROM |
rc | Return status code |
Definition at line 66 of file undiload.c.
References __asm__(), __from_data16, __volatile__(), BIOS_SEG, bus, undi_rom::code_size, copy_from_real, undi_rom::data_size, DBG, DBGC, EBUSY, undi_device::entry, EUNDILOAD, undi_device::fbms, find_pnp_bios(), get_fbms(), undi_device::isapnp_csn, undi_device::isapnp_read_port, undi_rom::loader_entry, memset(), undi_device::pci_busdevfn, PCI_FUNC, PCI_SLOT, undi_device::ppxe, ppxe, undi_device::pxenv, PXENV_EXIT_SUCCESS, rc, REAL_CODE, undi_device::restore_fbms, set_fbms(), strerror(), undi_loader, undi_loader_entry, UNDI_NO_ISAPNP_CSN, and UNDI_NO_PCI_BUSDEVFN.
Referenced by undi_load_pci().
int undi_unload | ( | struct undi_device * | undi | ) |
Unload a pixie.
undi | UNDI device |
rc | Return status code |
Erases the PXENV+ and !PXE signatures, and frees the used base memory (if possible).
Definition at line 161 of file undiload.c.
References DBGC, EBUSY, undi_device::fbms, get_fbms(), memset(), undi_device::ppxe, put_real, undi_device::pxenv, undi_device::restore_fbms, set_fbms(), and undi_loader_entry.
Referenced by undipci_probe(), and undipci_remove().