Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ocs_hal_t Struct Reference

HAL object. More...

#include <ocs_hal.h>

Detailed Description

HAL object.

Definition at line 724 of file ocs_hal.h.

Data Fields

ocs_os_handle_t os
 
sli4_t sli
 
ocs_domain_t * domain
 
uint8_t is_jumbo_set
 
uint8_t is_hal_initialized
 
uint8_t use_v1_multi_protocol
 
uint8_t has_fw_ue
 
uint16_t ulp_start
 
uint16_t ulp_max
 
struct {
   uint32_t   n_eq
 
   uint32_t   n_cq
 
   uint32_t   n_mq
 
   uint32_t   n_rq
 
   uint32_t   n_wq
 
   uint32_t   n_io
 
   uint32_t   rq_pl_size
 
   bool   enable_sgl_chaining
 
   uint8_t   dif_mode
 
} config
 
sli4_queue_t * wq
 
sli4_queue_t rq [OCS_HAL_MAX_NUM_RQ]
 
sli4_queue_t mq [1]
 
sli4_queue_t * cq
 
sli4_queue_t eq [OCS_HAL_MAX_NUM_EQ]
 
uint32_t cq_index_wq_tgt
 
uint32_t cq_index_wq_ini
 
uint32_t cq_index_mq
 
uint32_t num_wq_per_cq
 
sli4_queue_t ** pending_cqs [OCS_HAL_MAX_NUM_EQ]
 
ocs_lock_t cmd_lock
 
ocs_list_t cmd_head
 
ocs_list_t cmd_pending
 
ocs_list_t cmd_async
 
uint32_t cmd_head_count
 
ocs_hal_rq_lookup_t * rq_lookup [OCS_HAL_MAX_NUM_RQ]
 
ocs_hal_rq_list_t * rq_list [OCS_HAL_MAX_NUM_RQ]
 
ocs_list_t rq_list_busy [OCS_HAL_MAX_NUM_RQ]
 
ocs_list_t rq_list_free [OCS_HAL_MAX_NUM_RQ]
 
uint32_t rq_buf_cnts [OCS_HAL_RQ_BUFFER_TYPE_MAX]
 
uint32_t rq_buf_size [OCS_HAL_RQ_BUFFER_TYPE_MAX]
 
ocs_hal_rq_buffer_t * rq_buf [OCS_HAL_MAX_NUM_RQ]
 
sli4_link_event_t link
 
struct {
   int32_t(*   link )(void *, uint8_t isLinkUp)
 
   int32_t(*   cxn )(void *, ocs_hal_cxn_event_t *)
 
   ocs_hal_unsol_cb_t   unsolicited
 
   int32_t(*   bounce )(void(*)(void *arg), void
      *arg, uint32_t cpu)
 
} callback
 
struct {
   void *   link
 
   void *   cxn
 
   void *   unsolicited
 
   void *   bounce
 
} args
 
ocs_hal_io_t * io
 
ocs_hal_sgl_info_t * sgl_info
 
ocs_lock_t io_lock
 
ocs_list_t io_free
 
uint32_t io_tgt_write_quarantine_cnt
 
ocs_list_t io_tgt_write_quarantine
 
uint32_t io_ini_read_quarantine_cnt
 
ocs_list_t io_ini_read_quarantine
 
ocs_lock_t cxn_lock
 
ocs_list_t cxn_free
 
ocs_dma_t bhs_mem
 
ocs_dma_t dataout_tmpl_mem
 
ocs_dma_t cxn_mem
 
ocs_dma_t isns_mem
 
char * hal_war_version
 
ocs_hal_workaround_t workaround
 
ocs_atomic_t io_alloc_failed_count
 

Field Documentation

struct { ... } ocs_hal_t::args
ocs_dma_t ocs_hal_t::bhs_mem

Definition at line 822 of file ocs_hal.h.

int32_t(* ocs_hal_t::bounce)(void(*)(void *arg), void *arg, uint32_t cpu)

Function for HAL bounce callback

Definition at line 793 of file ocs_hal.h.

void* ocs_hal_t::bounce

Definition at line 799 of file ocs_hal.h.

struct { ... } ocs_hal_t::callback
ocs_list_t ocs_hal_t::cmd_async

Definition at line 768 of file ocs_hal.h.

ocs_list_t ocs_hal_t::cmd_head

Definition at line 766 of file ocs_hal.h.

uint32_t ocs_hal_t::cmd_head_count

Definition at line 769 of file ocs_hal.h.

ocs_lock_t ocs_hal_t::cmd_lock

Maintain an ordered, linked list of outstanding HAL commands.

Definition at line 765 of file ocs_hal.h.

ocs_list_t ocs_hal_t::cmd_pending

Definition at line 767 of file ocs_hal.h.

struct { ... } ocs_hal_t::config

Number of SLI objects HAL has allocated and configured

sli4_queue_t* ocs_hal_t::cq

Definition at line 752 of file ocs_hal.h.

uint32_t ocs_hal_t::cq_index_mq

Definition at line 758 of file ocs_hal.h.

uint32_t ocs_hal_t::cq_index_wq_ini

Definition at line 757 of file ocs_hal.h.

uint32_t ocs_hal_t::cq_index_wq_tgt

Definition at line 756 of file ocs_hal.h.

int32_t(* ocs_hal_t::cxn)(void *, ocs_hal_cxn_event_t *)

Function + argument used to notify upper layer of connection events

Definition at line 789 of file ocs_hal.h.

void* ocs_hal_t::cxn

Definition at line 797 of file ocs_hal.h.

ocs_list_t ocs_hal_t::cxn_free

List of connection objects available for allocation

Definition at line 820 of file ocs_hal.h.

ocs_lock_t ocs_hal_t::cxn_lock

Definition at line 819 of file ocs_hal.h.

ocs_dma_t ocs_hal_t::cxn_mem

Definition at line 824 of file ocs_hal.h.

ocs_dma_t ocs_hal_t::dataout_tmpl_mem

Definition at line 823 of file ocs_hal.h.

uint8_t ocs_hal_t::dif_mode

DIF mode to use

Definition at line 745 of file ocs_hal.h.

ocs_domain_t* ocs_hal_t::domain

Definition at line 727 of file ocs_hal.h.

bool ocs_hal_t::enable_sgl_chaining

Enable SGL chaining feature

Definition at line 744 of file ocs_hal.h.

Definition at line 753 of file ocs_hal.h.

char* ocs_hal_t::hal_war_version

Definition at line 827 of file ocs_hal.h.

uint8_t ocs_hal_t::has_fw_ue

Definition at line 731 of file ocs_hal.h.

ocs_hal_io_t* ocs_hal_t::io

Array of IO objects

Definition at line 802 of file ocs_hal.h.

ocs_atomic_t ocs_hal_t::io_alloc_failed_count

Definition at line 830 of file ocs_hal.h.

ocs_list_t ocs_hal_t::io_free

List of IO objects available for allocation

Definition at line 806 of file ocs_hal.h.

ocs_list_t ocs_hal_t::io_ini_read_quarantine

Definition at line 817 of file ocs_hal.h.

uint32_t ocs_hal_t::io_ini_read_quarantine_cnt

Definition at line 816 of file ocs_hal.h.

ocs_lock_t ocs_hal_t::io_lock

Definition at line 805 of file ocs_hal.h.

ocs_list_t ocs_hal_t::io_tgt_write_quarantine

Definition at line 815 of file ocs_hal.h.

uint32_t ocs_hal_t::io_tgt_write_quarantine_cnt

Definition at line 814 of file ocs_hal.h.

uint8_t ocs_hal_t::is_hal_initialized

Definition at line 729 of file ocs_hal.h.

uint8_t ocs_hal_t::is_jumbo_set

Definition at line 728 of file ocs_hal.h.

ocs_dma_t ocs_hal_t::isns_mem

Definition at line 825 of file ocs_hal.h.

sli4_link_event_t ocs_hal_t::link

Definition at line 782 of file ocs_hal.h.

int32_t(* ocs_hal_t::link)(void *, uint8_t isLinkUp)

Function + argument used to notify upper layer of link events

Definition at line 786 of file ocs_hal.h.

void* ocs_hal_t::link

Definition at line 796 of file ocs_hal.h.

sli4_queue_t ocs_hal_t::mq[1]

Definition at line 751 of file ocs_hal.h.

uint32_t ocs_hal_t::n_cq

The number of completion queues

Definition at line 738 of file ocs_hal.h.

uint32_t ocs_hal_t::n_eq

The number of event queues

Definition at line 737 of file ocs_hal.h.

uint32_t ocs_hal_t::n_io

The number of IO objects

Definition at line 742 of file ocs_hal.h.

uint32_t ocs_hal_t::n_mq

The number of mailbox queues

Definition at line 739 of file ocs_hal.h.

uint32_t ocs_hal_t::n_rq

The number of receive queues

Definition at line 740 of file ocs_hal.h.

uint32_t ocs_hal_t::n_wq

The number of work queues

Definition at line 741 of file ocs_hal.h.

uint32_t ocs_hal_t::num_wq_per_cq

Definition at line 759 of file ocs_hal.h.

ocs_os_handle_t ocs_hal_t::os

Definition at line 725 of file ocs_hal.h.

sli4_queue_t** ocs_hal_t::pending_cqs[OCS_HAL_MAX_NUM_EQ]

Definition at line 762 of file ocs_hal.h.

Definition at line 750 of file ocs_hal.h.

Definition at line 780 of file ocs_hal.h.

uint32_t ocs_hal_t::rq_buf_cnts[OCS_HAL_RQ_BUFFER_TYPE_MAX]

Definition at line 778 of file ocs_hal.h.

uint32_t ocs_hal_t::rq_buf_size[OCS_HAL_RQ_BUFFER_TYPE_MAX]

Definition at line 779 of file ocs_hal.h.

ocs_hal_rq_list_t* ocs_hal_t::rq_list[OCS_HAL_MAX_NUM_RQ]

Definition at line 773 of file ocs_hal.h.

ocs_list_t ocs_hal_t::rq_list_busy[OCS_HAL_MAX_NUM_RQ]

Definition at line 774 of file ocs_hal.h.

ocs_list_t ocs_hal_t::rq_list_free[OCS_HAL_MAX_NUM_RQ]

Definition at line 775 of file ocs_hal.h.

ocs_hal_rq_lookup_t* ocs_hal_t::rq_lookup[OCS_HAL_MAX_NUM_RQ]

Definition at line 772 of file ocs_hal.h.

uint32_t ocs_hal_t::rq_pl_size

The size of the RQ payload buffers

Definition at line 743 of file ocs_hal.h.

ocs_hal_sgl_info_t* ocs_hal_t::sgl_info

Array of SGL Info objects

Definition at line 803 of file ocs_hal.h.

sli4_t ocs_hal_t::sli

Definition at line 726 of file ocs_hal.h.

uint16_t ocs_hal_t::ulp_max

Definition at line 733 of file ocs_hal.h.

uint16_t ocs_hal_t::ulp_start

Definition at line 732 of file ocs_hal.h.

ocs_hal_unsol_cb_t ocs_hal_t::unsolicited

Function + argument used to announce arrival of unsolicited frames

Definition at line 791 of file ocs_hal.h.

void* ocs_hal_t::unsolicited

Definition at line 798 of file ocs_hal.h.

uint8_t ocs_hal_t::use_v1_multi_protocol

Definition at line 730 of file ocs_hal.h.

ocs_hal_workaround_t ocs_hal_t::workaround

Definition at line 828 of file ocs_hal.h.

sli4_queue_t* ocs_hal_t::wq

Definition at line 749 of file ocs_hal.h.


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