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

HAL IO object. More...

#include <ocs_hal.h>

Detailed Description

HAL IO object.

Stores the per-IO information necessary for both the lower (SLI) and upper layers (ocs).

Definition at line 589 of file ocs_hal.h.

Data Fields

ocs_list_link_t link
 
ocs_list_link_t wqe_link
 
ocs_list_link_t dnrx_link
 
ocs_hal_io_state_e state
 
ocs_hal_wqe_t wqe
 
ocs_lock_t tow_lock
 
ocs_hal_t * hal
 
ocs_remote_node_t * rnode
 
struct ocs_hal_tow_buffer_s * tow_buf
 
ocs_dma_t xfer_rdy
 
uint16_t type
 
uint32_t port_owned_abort_count
 
hal_wq_t * wq
 
uint32_t xbusy
 
ocs_hal_done_t done
 
void * arg
 
ocs_hal_done_t abort_done
 
void * abort_arg
 
ocs_ref_t ref
 
size_t length
 
uint8_t tgt_wqe_timeout
 
uint64_t submit_ticks
 
uint32_t status_saved:1
 
uint32_t abort_in_progress:1
 
uint32_t quarantine:1
 
uint32_t quarantine_first_phase:1
 
uint32_t is_port_owned:1
 
uint32_t tow_dnrx:1
 
uint32_t uint32_t saved_status:26
 
uint32_t saved_len
 
uint32_t saved_ext
 
hal_eq_t * eq
 
ocs_hal_wq_steering_e wq_steering
 
uint8_t wq_class
 
uint16_t reqtag
 
uint32_t abort_reqtag
 
uint32_t indicator
 
ocs_dma_t def_sgl
 
uint32_t def_sgl_count
 
ocs_dma_t * sgl
 
uint32_t sgl_count
 
uint32_t first_data_sge
 
ocs_dma_t * ovfl_sgl
 
uint32_t ovfl_sgl_count
 
sli4_lsp_sge_t * ovfl_lsp
 
ocs_hal_io_t * ovfl_io
 
uint32_t n_sge
 
uint32_t sge_offset
 
struct ocs_hal_io_s * sec_hio
 
ocs_hal_io_param_t sec_iparam
 
uint32_t sec_len
 
void * ul_io
 

Field Documentation

void* ocs_hal_io_t::abort_arg

argument passed to "abort done" callback

Definition at line 608 of file ocs_hal.h.

ocs_hal_done_t ocs_hal_io_t::abort_done

Function called on abort completion

Definition at line 607 of file ocs_hal.h.

uint32_t ocs_hal_io_t::abort_in_progress

if TRUE, abort is in progress

Definition at line 614 of file ocs_hal.h.

uint32_t ocs_hal_io_t::abort_reqtag
        request tag for an abort of this HAL IO (note: this is a 32 bit value

to allow us to use UINT32_MAX as an uninitialized value)

Definition at line 631 of file ocs_hal.h.

void* ocs_hal_io_t::arg

argument passed to "IO done" callback

Definition at line 606 of file ocs_hal.h.

ocs_dma_t ocs_hal_io_t::def_sgl

default scatter gather list

Definition at line 634 of file ocs_hal.h.

uint32_t ocs_hal_io_t::def_sgl_count

count of SGEs in default SGL

Definition at line 635 of file ocs_hal.h.

ocs_list_link_t ocs_hal_io_t::dnrx_link

used for io posted dnrx list

Definition at line 593 of file ocs_hal.h.

ocs_hal_done_t ocs_hal_io_t::done

Function called on IO completion

Definition at line 605 of file ocs_hal.h.

hal_eq_t* ocs_hal_io_t::eq

EQ that this HIO came up on

Definition at line 625 of file ocs_hal.h.

uint32_t ocs_hal_io_t::first_data_sge

index of first data SGE

Definition at line 638 of file ocs_hal.h.

ocs_hal_t* ocs_hal_io_t::hal

pointer back to hardware context

Definition at line 597 of file ocs_hal.h.

uint32_t ocs_hal_io_t::indicator

XRI

Definition at line 633 of file ocs_hal.h.

uint32_t ocs_hal_io_t::is_port_owned

set if POST_XRI was used to send XRI to th chip

Definition at line 614 of file ocs_hal.h.

size_t ocs_hal_io_t::length

needed for bug O127585: length of IO

Definition at line 610 of file ocs_hal.h.

ocs_list_link_t ocs_hal_io_t::link

used for busy, wait_free, free lists

Definition at line 591 of file ocs_hal.h.

uint32_t ocs_hal_io_t::n_sge

number of active SGEs

Definition at line 643 of file ocs_hal.h.

ocs_hal_io_t* ocs_hal_io_t::ovfl_io

Used for SGL chaining on skyhawk

Definition at line 642 of file ocs_hal.h.

sli4_lsp_sge_t* ocs_hal_io_t::ovfl_lsp

pointer to overflow segment length

Definition at line 641 of file ocs_hal.h.

ocs_dma_t* ocs_hal_io_t::ovfl_sgl

overflow SGL

Definition at line 639 of file ocs_hal.h.

uint32_t ocs_hal_io_t::ovfl_sgl_count

count of SGEs in default SGL

Definition at line 640 of file ocs_hal.h.

uint32_t ocs_hal_io_t::port_owned_abort_count

IO abort count

Definition at line 602 of file ocs_hal.h.

uint32_t ocs_hal_io_t::quarantine

set if IO to be quarantined

Definition at line 614 of file ocs_hal.h.

uint32_t ocs_hal_io_t::quarantine_first_phase

set if first phase of IO

Definition at line 614 of file ocs_hal.h.

ocs_ref_t ocs_hal_io_t::ref

refcount object

Definition at line 609 of file ocs_hal.h.

uint16_t ocs_hal_io_t::reqtag

request tag for this HAL IO

Definition at line 630 of file ocs_hal.h.

ocs_remote_node_t* ocs_hal_io_t::rnode

Definition at line 598 of file ocs_hal.h.

uint32_t ocs_hal_io_t::saved_ext

latched extended status

Definition at line 623 of file ocs_hal.h.

uint32_t ocs_hal_io_t::saved_len

latched length

Definition at line 622 of file ocs_hal.h.

uint32_t uint32_t ocs_hal_io_t::saved_status

latched status

Definition at line 614 of file ocs_hal.h.

struct ocs_hal_io_s* ocs_hal_io_t::sec_hio

Secondary HAL IO context

Definition at line 647 of file ocs_hal.h.

ocs_hal_io_param_t ocs_hal_io_t::sec_iparam

Secondary HAL IO context saved iparam

Definition at line 648 of file ocs_hal.h.

uint32_t ocs_hal_io_t::sec_len

Secondary HAL IO context saved len

Definition at line 649 of file ocs_hal.h.

uint32_t ocs_hal_io_t::sge_offset

Definition at line 644 of file ocs_hal.h.

ocs_dma_t* ocs_hal_io_t::sgl

pointer to current active SGL

Definition at line 636 of file ocs_hal.h.

uint32_t ocs_hal_io_t::sgl_count

count of SGEs in io->sgl

Definition at line 637 of file ocs_hal.h.

ocs_hal_io_state_e ocs_hal_io_t::state

state of IO: free, busy, wait_free

Definition at line 594 of file ocs_hal.h.

uint32_t ocs_hal_io_t::status_saved

if TRUE, latched status should be returned

Definition at line 614 of file ocs_hal.h.

uint64_t ocs_hal_io_t::submit_ticks

timestamp when current WQE was submitted

Definition at line 612 of file ocs_hal.h.

uint8_t ocs_hal_io_t::tgt_wqe_timeout

timeout value for target WQEs

Definition at line 611 of file ocs_hal.h.

struct ocs_hal_tow_buffer_s* ocs_hal_io_t::tow_buf

Definition at line 599 of file ocs_hal.h.

uint32_t ocs_hal_io_t::tow_dnrx

Definition at line 614 of file ocs_hal.h.

ocs_lock_t ocs_hal_io_t::tow_lock

Lock to synchronize TRSP and TOW Data/Cmd Cqes

Definition at line 596 of file ocs_hal.h.

uint16_t ocs_hal_io_t::type

Definition at line 601 of file ocs_hal.h.

void* ocs_hal_io_t::ul_io

where upper layer can store reference to its IO

Definition at line 652 of file ocs_hal.h.

hal_wq_t* ocs_hal_io_t::wq

WQ assigned to the exchange

Definition at line 603 of file ocs_hal.h.

uint8_t ocs_hal_io_t::wq_class

WQ class if steering mode is Class

Definition at line 627 of file ocs_hal.h.

ocs_hal_wq_steering_e ocs_hal_io_t::wq_steering

WQ steering mode request

Definition at line 626 of file ocs_hal.h.

ocs_hal_wqe_t ocs_hal_io_t::wqe

Work queue object, with link for pending

Definition at line 595 of file ocs_hal.h.

ocs_list_link_t ocs_hal_io_t::wqe_link

used for timed_wqe list

Definition at line 592 of file ocs_hal.h.

uint32_t ocs_hal_io_t::xbusy

Exchange is active in FW

Definition at line 604 of file ocs_hal.h.

ocs_dma_t ocs_hal_io_t::xfer_rdy

Definition at line 600 of file ocs_hal.h.


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