83 &parent, 0 ) ) != 0 ) {
84 DBGC (
device,
"CHAINED %s does not support %s: %s\n",
87 goto err_locate_device;
99 DBGC (
device,
"CHAINED %s could not open %s on ",
104 goto err_open_protocol;
136 goto err_open_protocol;
141 DBGC (
device,
"CHAINED %s %p is not the chainloaded %s\n",
150 DBGC (
device,
"CHAINED %s %p 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.
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_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 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.
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.
void * interface
Protocol instance installed on the loaded image's device handle.
static int chained_locate(struct chained_protocol *chained)
Locate chainloaded protocol instance.
EFI_SYSTEM_TABLE * efi_systab
EFI_OPEN_PROTOCOL OpenProtocol
#define INIT_LATE
Late initialisation.
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.