ocs_list_t
ocs_list_t domain_list;
ocs_list_t node_group_list; /**< linked list of node groups */
ocs_list_t node_list; /**< list of nodes */
ocs_list_t node_group_dir_list;
ocs_list_t sport_list; /**< linked list of SLI ports */
ocs_list_t active_ios; /**< active I/O's for this node */
ocs_list_t pend_frames; /**< inbound pending frames list */
ocs_list_t els_io_pend_list; /**< list of pending (not yet processed) ELS IOs */
ocs_list_t els_io_active_list; /**< list of active (processed) ELS IOs */
ocs_list_t domain_list; /*>> linked list of virtual fabric objects */
ocs_els_io_list_empty(ocs_node_t *node, ocs_list_t *list)
extern int32_t ocs_els_io_list_empty(ocs_node_t *node, ocs_list_t *list);
ocs_list_t io_inuse; /**< List of IO objects in use */
ocs_list_t io_timed_wqe; /**< List of IO objects with a timed target WQE */
ocs_list_t io_wait_free; /**< List of IO objects waiting to be freed */
ocs_list_t io_free; /**< List of IO objects available for allocation */
ocs_list_t io_port_owned; /**< List of IO objects posted for chip use */
ocs_list_t io_port_dnrx; /**< List of IO objects needing auto xfer rdy buffers */
ocs_list_t sec_hio_wait_list; /**< BZ 161832 Workaround: Secondary HW IO context wait list */
ocs_list_t iopc_list; /**< list of IO processing contexts */
ocs_list_t cq_list;
ocs_list_t q_list; /**< list of children queues */
ocs_list_t pending_list; /*<< list of IOs pending for this WQ */
ocs_list_t link;
ocs_list_t eq_list;
ocs_list_t cmd_head;
ocs_list_t cmd_pending;
_ocs_list_init(ocs_list_t *list, uint32_t offset)
ocs_list_empty(ocs_list_t *list)
ocs_list_valid(ocs_list_t *list)
_ocs_list_insert_link(ocs_list_t *a, ocs_list_t *b, ocs_list_t *c)
ocs_list_init_link(ocs_list_t *list, ocs_list_t *link)
ocs_list_add_head(ocs_list_t *list, void *item)
ocs_list_t *link;
ocs_list_add_tail(ocs_list_t *list, void *item)
ocs_list_t *link;
ocs_list_get_head(ocs_list_t *list)
ocs_list_get_tail(ocs_list_t *list)
static inline void *ocs_list_tail(ocs_list_t *list)
static inline void *ocs_list_next(ocs_list_t *list, void *item)
ocs_list_t *link;
static inline void *ocs_list_remove(ocs_list_t *list, void *item)
ocs_list_t *link;
ocs_list_t *prev;
ocs_list_t *next;
ocs_list_t *next; /*<< pointer to head of list (or next if link) */
ocs_list_t *prev; /*<< pointer to tail of list (or previous if link) */
typedef ocs_list_t ocs_list_link_t;
#define item2link(list, item) ((ocs_list_t*) (((uint8_t*)(item)) + (list)->offset))
ocs_frame_next(ocs_list_t *pend_list, ocs_lock_t *list_lock)
ocs_purge_pending(ocs_t *ocs, ocs_list_t *pend_list, ocs_lock_t *list_lock)
static ocs_hw_sequence_t *ocs_frame_next(ocs_list_t *pend_list, ocs_lock_t *list_lock);
static int32_t ocs_purge_pending(ocs_t *ocs, ocs_list_t *pend_list, ocs_lock_t *list_lock);
ocs_list_t freelist;
ocs_list_t segment_list;
ocs_list_t nodes_free_list; /**< linked list of free nodes */
ocs_list_t io_pending_list; /**< list of IOs waiting for HW resources
ocs_list_t vport_list; /**< list of VPORTS (NPIV) */
ocs_list_t pend_frames;