99 for ( skip = 0 ; ; skip++ ) {
103 &
handle, skip ) ) != 0 ) {
119 DBGC (
device,
"CHAINED %s could not open %s on ",
131 DBGC (
device,
"CHAINED %s found non-matching %s on ",
170 goto err_open_protocol;
175 DBGC2 (
device,
"CHAINED %s is not the chainloaded %s\n",
184 DBGC (
device,
"CHAINED %s is the chainloaded %s\n",
EFI_GUID efi_nii31_protocol_guid
Network interface identifier protocol GUID (new version)
static int chained_supported(EFI_HANDLE device, struct chained_protocol *chained)
Check to see if driver supports a device.
static int snponly_supported(EFI_HANDLE device)
Check to see if driver supports a device.
EFI_BOOT_SERVICES * BootServices
A pointer to the EFI Boot Services Table.
EFI_LOADED_IMAGE_PROTOCOL * efi_loaded_image
Loaded image protocol for this image.
struct arbelprm_rc_send_wqe rc
#define EEFI(efirc)
Convert an EFI status code to an iPXE status code.
EFI_HANDLE device
Target device handle.
128 bit buffer containing a unique identifier value.
int nii_start(struct efi_device *efidev)
Attach driver to device.
void snpnet_stop(struct efi_device *efidev)
Detach driver from device.
EFI_GUID efi_simple_network_protocol_guid
Simple network protocol GUID.
EFI Network Interface Identifier Protocol.
void nii_stop(struct efi_device *efidev)
Detach driver from device.
EFI_GUID efi_managed_network_service_binding_protocol_guid
Managed network service binding protocol GUID.
EFI_CLOSE_PROTOCOL CloseProtocol
struct efi_driver snponly_driver __efi_driver(EFI_DRIVER_NORMAL)
EFI SNP chainloading-device-only driver.
int snpnet_start(struct efi_device *efidev)
Attach driver to device.
static int mnponly_supported(EFI_HANDLE device)
Check to see if driver supports a device.
static struct chained_protocol chained_nii
Chainloaded NII protocol.
An initialisation function.
static struct chained_protocol chained_snp
Chainloaded SNP protocol.
The EFI_SIMPLE_NETWORK_PROTOCOL provides services to initialize a network interface,...
#define EFI_OPEN_PROTOCOL_GET_PROTOCOL
const char * efi_handle_name(EFI_HANDLE handle)
Get name of an EFI handle.
const char * efi_guid_ntoa(CONST EFI_GUID *guid)
Convert GUID to a printable string.
char * strerror(int errno)
Retrieve string representation of error number.
EFI_HANDLE efi_image_handle
Image handle passed to entry point.
static int niionly_supported(EFI_HANDLE device)
Check to see if driver supports a device.
static void chained_init(void)
Initialise EFI chainloaded-device-only driver.
int efi_locate_device(EFI_HANDLE device, EFI_GUID *protocol, EFI_HANDLE *parent, unsigned int skip)
Locate parent device supporting a given protocol.
void mnpnet_stop(struct efi_device *efidev)
Detach driver from device.
EFI_GUID * protocol
Protocol GUID.
#define ENOTTY
Inappropriate I/O control operation.
struct init_fn chained_init_fn __init_fn(INIT_LATE)
EFI chainloaded-device-only initialisation function.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
static void chained_locate(struct chained_protocol *chained)
Locate chainloaded protocol.
EFI_SYSTEM_TABLE * efi_systab
EFI_OPEN_PROTOCOL OpenProtocol
#define INIT_LATE
Late initialisation.
#define NULL
NULL pointer (VOID *)
int mnpnet_start(struct efi_device *efidev)
Attach driver to device.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
EFI_HANDLE DeviceHandle
The device handle that the EFI Image was loaded from.
#define EFI_DRIVER_NORMAL
Normal drivers.
static struct chained_protocol chained_mnp
Chainloaded MNP protocol.