iPXE
Data Fields
arbel Struct Reference

An Arbel device. More...

#include <arbel.h>

Data Fields

struct pci_devicepci
 PCI device. More...
 
void * config
 PCI configuration registers. More...
 
void * uar
 PCI user Access Region. More...
 
void * eq_ci_doorbells
 Event queue consumer index doorbells. 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...
 
size_t icm_len
 ICM size. More...
 
size_t icm_aux_len
 ICM AUX size. More...
 
userptr_t icm
 ICM area. More...
 
size_t db_rec_offset
 Offset within ICM of doorbell records. More...
 
union arbelprm_doorbell_recorddb_rec
 Doorbell records. More...
 
struct arbel_event_queue eq
 Event queue. More...
 
unsigned long lkey
 Unrestricted LKey. More...
 
arbel_bitmask_t cq_inuse [ARBEL_BITMASK_SIZE(ARBEL_MAX_CQS)]
 Completion queue in-use bitmask. More...
 
arbel_bitmask_t qp_inuse [ARBEL_BITMASK_SIZE(ARBEL_MAX_QPS)]
 Queue pair in-use bitmask. More...
 
struct arbel_dev_limits limits
 Device limits. More...
 
unsigned long special_qpn_base
 Special QPN base. More...
 
unsigned long qpn_base
 QPN base. More...
 
struct ib_deviceibdev [ARBEL_NUM_PORTS]
 Infiniband devices. More...
 

Detailed Description

An Arbel device.

Definition at line 469 of file arbel.h.

Field Documentation

◆ pci

struct pci_device* arbel::pci

PCI device.

Definition at line 471 of file arbel.h.

Referenced by arbel_probe(), arbel_remove(), and arbel_reset().

◆ config

void* arbel::config

PCI configuration registers.

Definition at line 473 of file arbel.h.

Referenced by arbel_cmd(), arbel_cmd_wait(), arbel_probe(), arbel_remove(), and arbel_reset().

◆ uar

void* arbel::uar

PCI user Access Region.

Definition at line 475 of file arbel.h.

Referenced by arbel_probe(), arbel_remove(), and arbel_ring_doorbell().

◆ eq_ci_doorbells

void* arbel::eq_ci_doorbells

Event queue consumer index doorbells.

Definition at line 477 of file arbel.h.

Referenced by arbel_create_eq(), and arbel_start_firmware().

◆ mailbox_in

void* arbel::mailbox_in

Command input mailbox.

Definition at line 480 of file arbel.h.

Referenced by arbel_alloc(), arbel_cmd(), and arbel_free().

◆ mailbox_out

void* arbel::mailbox_out

Command output mailbox.

Definition at line 482 of file arbel.h.

Referenced by arbel_alloc(), arbel_cmd(), and arbel_free().

◆ open_count

unsigned int arbel::open_count

Device open request counter.

Definition at line 485 of file arbel.h.

Referenced by arbel_close(), arbel_open(), and arbel_probe().

◆ firmware_len

size_t arbel::firmware_len

Firmware size.

Definition at line 488 of file arbel.h.

Referenced by arbel_start_firmware().

◆ firmware_area

userptr_t arbel::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 495 of file arbel.h.

Referenced by arbel_free(), arbel_start_firmware(), and arbel_stop_firmware().

◆ icm_len

size_t arbel::icm_len

ICM size.

Definition at line 497 of file arbel.h.

Referenced by arbel_alloc_icm(), and arbel_free_icm().

◆ icm_aux_len

size_t arbel::icm_aux_len

ICM AUX size.

Definition at line 499 of file arbel.h.

Referenced by arbel_alloc_icm().

◆ icm

userptr_t arbel::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 506 of file arbel.h.

Referenced by arbel_alloc_icm(), and arbel_free().

◆ db_rec_offset

size_t arbel::db_rec_offset

Offset within ICM of doorbell records.

Definition at line 508 of file arbel.h.

Referenced by arbel_alloc_icm(), and arbel_free_icm().

◆ db_rec

union arbelprm_doorbell_record* arbel::db_rec

◆ eq

struct arbel_event_queue arbel::eq

Event queue.

Definition at line 512 of file arbel.h.

Referenced by arbel_create_cq(), arbel_create_eq(), arbel_destroy_eq(), and arbel_poll_eq().

◆ lkey

unsigned long arbel::lkey

Unrestricted LKey.

Used to get unrestricted memory access.

Definition at line 517 of file arbel.h.

Referenced by arbel_create_cq(), arbel_create_eq(), arbel_create_qp(), arbel_fill_mlx_send_wqe(), arbel_fill_rc_send_wqe(), arbel_fill_ud_send_wqe(), arbel_post_recv(), arbel_setup_mpt(), and arbel_start().

◆ cq_inuse

Completion queue in-use bitmask.

Definition at line 520 of file arbel.h.

Referenced by arbel_create_cq(), and arbel_destroy_cq().

◆ qp_inuse

Queue pair in-use bitmask.

Definition at line 522 of file arbel.h.

Referenced by arbel_alloc_qpn(), and arbel_free_qpn().

◆ limits

struct arbel_dev_limits arbel::limits

◆ special_qpn_base

unsigned long arbel::special_qpn_base

◆ qpn_base

unsigned long arbel::qpn_base

QPN base.

Definition at line 529 of file arbel.h.

Referenced by arbel_alloc_qpn(), arbel_configure_special_qps(), and arbel_free_qpn().

◆ ibdev

struct ib_device* arbel::ibdev[ARBEL_NUM_PORTS]

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