iPXE
Data Fields
hermon Struct Reference

A Hermon device. More...

#include <hermon.h>

Data Fields

struct pci_devicepci
 PCI device. More...
 
void * config
 PCI configuration registers. More...
 
void * uar
 PCI user Access Region. More...
 
unsigned int toggle
 Command toggle. More...
 
void * mailbox_in
 Command input mailbox. More...
 
void * mailbox_out
 Command output mailbox. More...
 
unsigned int open_count
 Device open request counter. More...
 
size_t firmware_len
 Firmware size. More...
 
userptr_t firmware_area
 Firmware area in external memory. More...
 
struct hermon_icm_map icm_map [HERMON_ICM_NUM_REGIONS]
 ICM map. More...
 
size_t icm_len
 ICM size. More...
 
size_t icm_aux_len
 ICM AUX size. More...
 
userptr_t icm
 ICM area. More...
 
struct hermon_event_queue eq
 Event queue. More...
 
unsigned long lkey
 Unrestricted LKey. More...
 
hermon_bitmask_t cq_inuse [HERMON_BITMASK_SIZE(HERMON_MAX_CQS)]
 Completion queue in-use bitmask. More...
 
hermon_bitmask_t qp_inuse [HERMON_BITMASK_SIZE(HERMON_MAX_QPS)]
 Queue pair in-use bitmask. More...
 
hermon_bitmask_t mtt_inuse [HERMON_BITMASK_SIZE(HERMON_MAX_MTTS)]
 MTT entry in-use bitmask. More...
 
struct hermon_dev_cap cap
 Device capabilities. More...
 
unsigned long special_qpn_base
 Special QPN base. More...
 
unsigned long qpn_base
 QPN base. More...
 
struct nvs_vpd_device nvsvpd
 Non-volatile storage in PCI VPD. More...
 
struct hermon_port port [HERMON_MAX_PORTS]
 Ports. More...
 
struct bofm_device bofm
 BOFM device. More...
 

Detailed Description

A Hermon device.

Definition at line 842 of file hermon.h.

Field Documentation

◆ pci

struct pci_device* hermon::pci

PCI device.

Definition at line 844 of file hermon.h.

Referenced by hermon_bofm_probe(), hermon_bofm_remove(), hermon_probe(), hermon_remove(), and hermon_reset().

◆ config

void* hermon::config

PCI configuration registers.

Definition at line 846 of file hermon.h.

Referenced by hermon_bofm_probe(), hermon_bofm_remove(), hermon_cmd(), hermon_cmd_wait(), hermon_probe(), hermon_remove(), and hermon_reset().

◆ uar

void* hermon::uar

PCI user Access Region.

Definition at line 848 of file hermon.h.

Referenced by hermon_create_eq(), hermon_create_qp(), hermon_probe(), and hermon_remove().

◆ toggle

unsigned int hermon::toggle

Command toggle.

Definition at line 851 of file hermon.h.

Referenced by hermon_cmd(), hermon_cmd_wait(), and hermon_reset().

◆ mailbox_in

void* hermon::mailbox_in

Command input mailbox.

Definition at line 853 of file hermon.h.

Referenced by hermon_alloc(), hermon_cmd(), and hermon_free().

◆ mailbox_out

void* hermon::mailbox_out

Command output mailbox.

Definition at line 855 of file hermon.h.

Referenced by hermon_alloc(), hermon_cmd(), and hermon_free().

◆ open_count

unsigned int hermon::open_count

Device open request counter.

Definition at line 858 of file hermon.h.

Referenced by hermon_close(), hermon_open(), and hermon_probe().

◆ firmware_len

size_t hermon::firmware_len

Firmware size.

Definition at line 861 of file hermon.h.

Referenced by hermon_start_firmware().

◆ firmware_area

userptr_t hermon::firmware_area

Firmware area in external memory.

This is allocated when first needed, and freed only on final teardown, in order to avoid memory map changes at runtime.

Definition at line 868 of file hermon.h.

Referenced by hermon_free(), hermon_start_firmware(), and hermon_stop_firmware().

◆ icm_map

struct hermon_icm_map hermon::icm_map[HERMON_ICM_NUM_REGIONS]

ICM map.

Definition at line 870 of file hermon.h.

Referenced by hermon_map_icm(), and hermon_unmap_icm().

◆ icm_len

size_t hermon::icm_len

ICM size.

Definition at line 872 of file hermon.h.

Referenced by hermon_map_icm().

◆ icm_aux_len

size_t hermon::icm_aux_len

ICM AUX size.

Definition at line 874 of file hermon.h.

Referenced by hermon_map_icm().

◆ icm

userptr_t hermon::icm

ICM area.

This is allocated when first needed, and freed only on final teardown, in order to avoid memory map changes at runtime.

Definition at line 881 of file hermon.h.

Referenced by hermon_free(), and hermon_map_icm().

◆ eq

struct hermon_event_queue hermon::eq

Event queue.

Definition at line 884 of file hermon.h.

Referenced by hermon_create_cq(), hermon_create_eq(), hermon_destroy_eq(), and hermon_poll_eq().

◆ lkey

unsigned long hermon::lkey

Unrestricted LKey.

Used to get unrestricted memory access.

Definition at line 889 of file hermon.h.

Referenced by hermon_fill_eth_send_wqe(), hermon_fill_mlx_send_wqe(), hermon_fill_rc_send_wqe(), hermon_fill_ud_send_wqe(), hermon_post_recv(), hermon_setup_mpt(), and hermon_start().

◆ cq_inuse

Completion queue in-use bitmask.

Definition at line 892 of file hermon.h.

Referenced by hermon_create_cq(), and hermon_destroy_cq().

◆ qp_inuse

Queue pair in-use bitmask.

Definition at line 894 of file hermon.h.

Referenced by hermon_alloc_qpn(), and hermon_free_qpn().

◆ mtt_inuse

MTT entry in-use bitmask.

Definition at line 896 of file hermon.h.

Referenced by hermon_alloc_mtt(), and hermon_free_mtt().

◆ cap

struct hermon_dev_cap hermon::cap

◆ special_qpn_base

unsigned long hermon::special_qpn_base

Special QPN base.

Definition at line 901 of file hermon.h.

Referenced by hermon_alloc_qpn(), and hermon_configure_special_qps().

◆ qpn_base

unsigned long hermon::qpn_base

QPN base.

Definition at line 903 of file hermon.h.

Referenced by hermon_alloc_qpn(), hermon_configure_special_qps(), and hermon_free_qpn().

◆ nvsvpd

struct nvs_vpd_device hermon::nvsvpd

Non-volatile storage in PCI VPD.

Definition at line 906 of file hermon.h.

Referenced by hermon_probe().

◆ port

struct hermon_port hermon::port[HERMON_MAX_PORTS]

Ports.

Definition at line 909 of file hermon.h.

Referenced by hermon_event_port_state_change(), hermon_probe(), hermon_remove(), and hermon_start().

◆ bofm

struct bofm_device hermon::bofm

BOFM device.

Definition at line 912 of file hermon.h.

Referenced by hermon_bofm_probe(), and hermon_bofm_remove().


The documentation for this struct was generated from the following file: