|
iPXE
|
IBM BladeCenter Open Fabric Manager (BOFM) More...
#include <stdint.h>#include <string.h>#include <errno.h>#include <ipxe/list.h>#include <ipxe/ethernet.h>#include <ipxe/bofm.h>Go to the source code of this file.
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| static | LIST_HEAD (bofmdevs) |
| List of BOFM devices. More... | |
| int | bofm_register (struct bofm_device *bofm) |
| Register BOFM device. More... | |
| void | bofm_unregister (struct bofm_device *bofm) |
| Unregister BOFM device. More... | |
| static struct bofm_device * | bofm_find_busdevfn (unsigned int busdevfn) |
| Find BOFM device matching PCI bus:dev.fn address. More... | |
| int | bofm_find_driver (struct pci_device *pci) |
| Find BOFM driver for PCI device. More... | |
| static int | bofm_probe (struct pci_device *pci) |
| Probe PCI device for BOFM driver. More... | |
| static void | bofm_remove (struct pci_device *pci) |
| Remove PCI device. More... | |
| static struct bofm_section_header * | bofm_locate_section (struct bofm_global_header *bofmhdr, uint32_t magic) |
| Locate BOFM table section. More... | |
| static int | bofm_en (struct bofm_device *bofm, struct bofm_en *en) |
| Process BOFM Ethernet parameter entry. More... | |
| int | bofm (void *bofmtab, struct pci_device *pci) |
| Process BOFM table. More... | |
IBM BladeCenter Open Fabric Manager (BOFM)
Definition in file bofm.c.
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
List of BOFM devices.
| int bofm_register | ( | struct bofm_device * | bofm | ) |
Register BOFM device.
| bofm | BOFM device |
| rc | Return status code |
Definition at line 48 of file bofm.c.
References bofm(), DBG, list_add, PCI_ARGS, and PCI_FMT.
Referenced by bofm_dummy_probe(), and hermon_bofm_probe().
| void bofm_unregister | ( | struct bofm_device * | bofm | ) |
Unregister BOFM device.
| bofm | BOFM device |
Definition at line 61 of file bofm.c.
References bofm(), DBG, list_del, PCI_ARGS, and PCI_FMT.
Referenced by bofm_dummy_remove(), and hermon_bofm_remove().
|
static |
Find BOFM device matching PCI bus:dev.fn address.
| busdevfn | PCI bus:dev.fn address |
| bofm | BOFM device, or NULL |
Definition at line 73 of file bofm.c.
References bofm(), busdevfn, bofm_device::list, list_for_each_entry, and NULL.
Referenced by bofm().
| int bofm_find_driver | ( | struct pci_device * | pci | ) |
Find BOFM driver for PCI device.
| pci | PCI device |
| rc | Return status code |
Definition at line 89 of file bofm.c.
References BOFM_DRIVERS, pci_device::device, ENOENT, for_each_table_entry, id, pci_driver::id_count, pci_driver::ids, pci_set_driver(), and pci_device::vendor.
Referenced by bofm(), and efi_bofm_supported().
|
static |
Probe PCI device for BOFM driver.
| pci | PCI device |
| rc | Return status code |
Definition at line 113 of file bofm.c.
References DBG, PCI_ARGS, PCI_FMT, pci_probe(), rc, and strerror().
Referenced by bofm().
|
static |
|
static |
Locate BOFM table section.
| bofmhdr | BOFM table header |
| magic | Section magic |
| bofmsec | BOFM section header, or NULL if not found |
Definition at line 157 of file bofm.c.
References BOFM_DONE_MAGIC, bofm_global_header::length, bofm_section_header::length, magic, bofm_section_header::magic, NULL, and offset.
Referenced by bofm().
|
static |
Process BOFM Ethernet parameter entry.
| bofm | BOFM device |
| en | EN parameter entry |
| rc | Return status code |
Definition at line 180 of file bofm.c.
References bofm(), BOFM_EN_CHG_CHANGED, BOFM_EN_EN_A, BOFM_EN_HVST, BOFM_EN_RQ_HVST_MASK, BOFM_EN_USAGE_ENTRY, BOFM_EN_USAGE_HARVEST, DBG, en, eth_ntoa(), mac, bofm_en::mac_a, memcmp(), memcpy(), bofm_en::mport, bofm_en::options, PCI_ARGS, PCI_FMT, rc, and strerror().
| int bofm | ( | void * | bofmtab, |
| struct pci_device * | pci | ||
| ) |
Process BOFM table.
| bofmtab | BOFM table |
| pci | PCI device |
| bofmrc | BOFM return status |
Definition at line 235 of file bofm.c.
References bofm_global_header::action, bofm(), BOFM_ACTION_DFLT, BOFM_ACTION_HVST, BOFM_ACTION_NONE, BOFM_ACTION_PARM, BOFM_ACTION_UPDT, BOFM_EN_CSM_FAILED, BOFM_EN_CSM_SUCCESS, BOFM_EN_MAGIC, BOFM_EN_MAP_MASK, BOFM_EN_MAP_PFA, BOFM_ERR_DEVICE_ERROR, BOFM_ERR_INVALID_ACTION, bofm_find_busdevfn(), bofm_find_driver(), BOFM_IOAA_MAGIC, bofm_locate_section(), BOFM_MAGIC_ARGS, BOFM_MAGIC_FMT, bofm_probe(), bofm_remove(), BOFM_SKIP_INIT, BOFM_SUCCESS, bofm_en::busdevfn, DBG, DBG2, DBG2_HDA, en, bofm_section_header::length, bofm_global_header::magic, bofm_en::mport, offset, bofm_en::options, bofm_device::pci, PCI_ARGS, PCI_BUS, PCI_FMT, PCI_FUNC, PCI_SLOT, bofm_en::port, bofm_global_header::profile, rc, and bofm_en::slot.
Referenced by bofm(), bofm_dummy_harvest(), bofm_en(), bofm_find_busdevfn(), bofm_init(), bofm_register(), bofm_test(), bofm_unregister(), efi_bofm_start(), hermon_bofm_harvest(), and hermon_bofm_update().
1.8.15