Attach driver to device.
238 DBGC (
device,
"EFIBOFM %s cannot get PCI information: %s\n",
245 &efipci.io ) ) != 0 ) {
246 DBGC (
device,
"EFIBOFM %s cannot open PCI device: %s\n",
253 &bofm1.interface ) ) != 0 ) {
255 DBGC (
device,
"EFIBOFM %s cannot find BOFM protocol\n",
257 goto err_locate_bofm;
259 bofmtab = &bofm1.bofm1->BofmTable;
260 DBGC (
device,
"EFIBOFM %s found version 1 BOFM table at %p+%04x\n",
265 &bofm2.interface ) ) == 0 ) {
266 bofmtab2 = &bofm2.bofm2->BofmTable;
267 DBGC (
device,
"EFIBOFM %s found version 2 BOFM table at " 269 bofmtab2->Parameters.Length );
270 assert ( bofm2.bofm2->RegisterSupport ==
271 bofm1.bofm1->RegisterSupport );
273 DBGC (
device,
"EFIBOFM %s cannot find BOFM2 protocol\n",
280 DBGC2 (
device,
"EFIBOFM %s version 1 before processing:\n",
284 DBGC2 (
device,
"EFIBOFM %s version 2 before processing:\n",
288 bofmrc =
bofm ( ( bofmtab2 ? bofmtab2 : bofmtab ), &efipci.pci );
291 DBGC2 (
device,
"EFIBOFM %s version 1 after processing:\n",
295 DBGC2 (
device,
"EFIBOFM %s version 2 after processing:\n",
302 if ( ( efirc = bofm2.bofm2->SetStatus ( bofm2.bofm2,
device,
303 FALSE, bofmrc ) ) != 0){
305 DBGC (
device,
"EFIBOFM %s could not set BOFM2 " 311 if ( ( efirc = bofm1.bofm1->SetStatus ( bofm1.bofm1,
device,
312 FALSE, bofmrc ) ) != 0){
314 DBGC (
device,
"EFIBOFM %s could not set BOFM "
EFI_BOOT_SERVICES * BootServices
A pointer to the EFI Boot Services Table.
struct arbelprm_rc_send_wqe rc
#define EEFI(efirc)
Convert an EFI status code to an iPXE status code.
int efipci_info(EFI_HANDLE device, struct efi_pci_device *efipci)
Get EFI PCI device information.
EFI_LOCATE_PROTOCOL LocateProtocol
EFI_GUID efi_pci_io_protocol_guid
PCI I/O protocol GUID.
#define efi_open_unsafe(handle, protocol, interface)
Open protocol for unsafe persistent use.
EFI_HANDLE device
EFI device handle.
void efi_close_unsafe(EFI_HANDLE handle, EFI_GUID *protocol)
Close protocol opened for unsafe persistent use.
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
const char * efi_handle_name(EFI_HANDLE handle)
Get name of an EFI handle.
char * strerror(int errno)
Retrieve string representation of error number.
#define EAGAIN
Resource temporarily unavailable.
int bofm(void *bofmtab, struct pci_device *pci)
Process BOFM table.
static EFI_GUID bofm2_protocol_guid
BOFM2 protocol GUID.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
static EFI_GUID bofm1_protocol_guid
BOFM1 protocol GUID.
EFI_SYSTEM_TABLE * efi_systab
#define NULL
NULL pointer (VOID *)