#include "sli4.h"#include "sli4_fc.h"#include "ocs_hal_config.h"#include "ocs_stats.h"#include "ocs_array.h"#include "ocs_ioctl.h"#include "ocs_hal_workaround.h"#include "ocs_hal_queues.h"Go to the source code of this file.
Defines the Hardware Abstraction Layer (HAL) interface functions.
Definition in file ocs_hal.h.
Data Structures | |
| struct | ocs_hal_profile_descriptor_t |
| A Profile Descriptor. More... | |
| struct | ocs_hal_profile_list_t |
| A Profile List. More... | |
| struct | ocs_hal_rq_buffer_t |
| Defines a wrapper for the RQ payload buffers so that we can place it back on the proper queue. More... | |
| struct | ocs_hal_dif_info_t |
| T10 DIF information passed to the transport. More... | |
| struct | ocs_command_ctx_t |
| HAL command context. More... | |
| struct | ocs_hal_sgl_t |
| union | ocs_hal_io_param_t |
| struct | ocs_hal_wqe_t |
| HAL wqe object. More... | |
| struct | ocs_hal_io_t |
| HAL IO object. More... | |
| struct | ocs_hal_rpi_ref_t |
| Node group rpi reference. More... | |
| struct | ocs_hal_sequence_t |
| Defines a general FC sequence object, consisting of a header, payload buffers and a HAL IO in the case of port owned XRI. More... | |
| struct | ocs_hal_tow_buffer_t |
| struct | ocs_hal_link_stat_counts_t |
| Node group rpi reference. More... | |
| struct | ocs_hal_host_stat_counts_t |
| HAL object describing fc host stats. More... | |
| struct | ocs_hal_iopt_t |
| struct | ocs_queue_hash_t |
| Stucture used for the hash lookup of queue IDs. More... | |
| struct | ocs_quarantine_info_t |
| struct | hal_wq_callback_t |
| Define the WQ callback object. More... | |
| struct | ocs_app_watchdog_thread_t |
| struct | ocs_hal_t |
| HAL object. More... | |
| struct | hal_eq_t |
| HAL queue forward declarations. More... | |
| struct | hal_cq_t |
| struct | hal_q_t |
| struct | hal_mq_t |
| struct | hal_wq_t |
| struct | hal_rq_t |
| struct | ocs_hal_global_t |
| struct | ocs_mq_mbx_results_t |
| struct | ocs_hal_send_frame_context_t |
| struct | ocs_hal_grp_hdr |
Typedefs | |
| typedef struct hal_rq_grp_s | hal_rq_grp_t |
| typedef int32_t(* | ocs_hal_done_t )(struct ocs_hal_io_s *, ocs_remote_node_t *, uint32_t len, int32_t status, uint32_t ext, void *ul_arg) |
| HAL callback type. More... | |
| typedef void(* | tcmd_cq_handler )(ocs_hal_t *hal, uint32_t cq_idx, void *cq_handler_arg) |
| typedef void(* | ocs_hal_port_control_cb_t )(int32_t status, uintptr_t value, void *arg) |
| typedef int32_t(* | ocs_hal_srrs_cb_t )(ocs_hal_io_t *io, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg) |
| typedef void(* | ocs_hal_fw_cb_t )(int32_t status, int32_t ext_status, uint32_t bytes_written, uint32_t change_status, void *arg) |
| typedef void(* | ocs_hal_sfp_cb_t )(void *, int32_t, uint32_t, uint32_t *, void *) |
| typedef void(* | ocs_hal_temp_cb_t )(int32_t status, uint32_t curr_temp, uint32_t crit_temp_thrshld, uint32_t warn_temp_thrshld, uint32_t norm_temp_thrshld, uint32_t fan_off_thrshld, uint32_t fan_on_thrshld, void *arg) |
| typedef void(* | ocs_hal_link_stat_cb_t )(int32_t status, uint32_t num_counters, ocs_hal_link_stat_counts_t *counters, void *arg) |
| typedef void(* | ocs_hal_host_stat_cb_t )(int32_t status, uint32_t num_counters, ocs_hal_host_stat_counts_t *counters, void *arg) |
| typedef void(* | ocs_hal_dump_get_cb_t )(int32_t status, uint32_t bytes_read, uint8_t eof, void *arg) |
| typedef void(* | ocs_get_port_protocol_cb_t )(int32_t status, ocs_hal_port_protocol_e port_protocol, void *arg) |
| typedef void(* | ocs_set_port_protocol_cb_t )(int32_t status, void *arg) |
| typedef void(* | ocs_get_profile_list_cb_t )(int32_t status, ocs_hal_profile_list_t *, void *arg) |
| typedef void(* | ocs_get_active_profile_cb_t )(int32_t status, uint32_t active_profile, void *arg) |
| typedef void(* | ocs_set_active_profile_cb_t )(int32_t status, void *arg) |
| typedef void(* | ocs_get_nvparms_cb_t )(int32_t status, uint8_t *wwpn, uint8_t *wwnn, uint8_t hard_alpa, uint32_t preferred_d_id, void *arg) |
| typedef void(* | ocs_set_nvparms_cb_t )(int32_t status, void *arg) |
| typedef void(* | ocs_hal_dump_clear_cb_t )(int32_t status, void *arg) |
| typedef void(* | ocs_hal_parity_stat_cb_t )(int32_t status, uint8_t num_ulp, ocs_parity_err_count_t *counter, void *arg) |
| typedef int32_t(* | ocs_hal_async_cb_t )(ocs_hal_t *hal, int32_t status, uint8_t *mqe, void *arg) |
Functions | |
| void | _ocs_hal_assert (const char *cond, const char *filename, int linenum) |
| Handle HAL assertion. More... | |
| void | _ocs_hal_verify (const char *cond, const char *filename, int linenum) |
| Handle HAL verify. More... | |
| hal_eq_t * | hal_new_eq (ocs_hal_t *hal, uint32_t entry_count) |
| Allocate a new EQ object. More... | |
| hal_cq_t * | hal_new_cq (hal_eq_t *eq, uint32_t entry_count) |
| Allocate a new CQ object. More... | |
| uint32_t | hal_new_cq_set (hal_eq_t *eqs[], hal_cq_t *cqs[], uint32_t num_cqs, uint32_t entry_count) |
| Allocate a new CQ Set of objects. More... | |
| hal_mq_t * | hal_new_mq (hal_cq_t *cq, uint32_t entry_count) |
| Allocate a new MQ object. More... | |
| hal_wq_t * | hal_new_wq (hal_cq_t *cq, uint32_t entry_count, uint32_t class, uint32_t ulp) |
| Allocate a new WQ object. More... | |
| hal_rq_t * | hal_new_rq (hal_cq_t *cq, uint32_t entry_count, uint32_t ulp) |
| Allocate a hal_rq_t object. More... | |
| uint32_t | hal_new_rq_set (hal_cq_t *cqs[], hal_rq_t *rqs[], uint32_t num_rq_pairs, uint32_t entry_count, uint32_t ulp) |
| Allocate a hal_rq_t object SET. More... | |
| void | hal_del_eq (hal_eq_t *eq) |
| Free an EQ object. More... | |
| void | hal_del_cq (hal_cq_t *cq) |
| Free a CQ object. More... | |
| void | hal_del_mq (hal_mq_t *mq) |
| Free a MQ object. More... | |
| void | hal_del_wq (hal_wq_t *wq) |
| Free a WQ object. More... | |
| void | hal_del_rq (hal_rq_t *rq) |
| Free an RQ object. More... | |
| void | hal_queue_dump (ocs_hal_t *hal) |
| Display HAL queue objects. More... | |
| void | hal_queue_teardown (ocs_hal_t *hal) |
| Teardown HAL queue objects. More... | |
| int32_t | hal_route_rqe (ocs_hal_t *hal, ocs_hal_sequence_t *seq) |
| int32_t | ocs_hal_queue_hash_find (ocs_queue_hash_t *, uint16_t) |
| Find index given queue ID. More... | |
| ocs_hal_rtn_e | ocs_hal_setup (ocs_hal_t *, ocs_os_handle_t, sli4_port_type_e) |
| Set up the Hardware Abstraction Layer module. More... | |
| ocs_hal_rtn_e | ocs_hal_init (ocs_hal_t *) |
| Allocate memory structures to prepare for the device operation. More... | |
| ocs_hal_rtn_e | ocs_hal_teardown (ocs_hal_t *) |
| Tear down the Hardware Abstraction Layer module. More... | |
| ocs_hal_rtn_e | ocs_hal_reset (ocs_hal_t *, ocs_hal_reset_e) |
| ocs_hal_rtn_e | ocs_hal_port_migration (ocs_hal_t *) |
| int32_t | ocs_hal_get_num_eq (ocs_hal_t *) |
| ocs_hal_rtn_e | ocs_hal_get (ocs_hal_t *, ocs_hal_property_e, uint32_t *) |
| void * | ocs_hal_get_ptr (ocs_hal_t *, ocs_hal_property_e) |
| ocs_hal_rtn_e | ocs_hal_set (ocs_hal_t *, ocs_hal_property_e, uint32_t) |
| ocs_hal_rtn_e | ocs_hal_set_ptr (ocs_hal_t *, ocs_hal_property_e, void *) |
| int32_t | ocs_hal_event_check (ocs_hal_t *, uint32_t) |
| Check for the events associated with the interrupt vector. More... | |
| int32_t | ocs_hal_process (ocs_hal_t *, uint32_t, uint32_t) |
| ocs_hal_rtn_e | ocs_hal_command (ocs_hal_t *, uint8_t *, uint32_t, void *, void *) |
| Issue a SLI command. More... | |
| ocs_hal_rtn_e | ocs_hal_callback (ocs_hal_t *, ocs_hal_callback_e, void *, void *) |
| Register a callback for the given event. More... | |
| ocs_hal_rtn_e | ocs_hal_port_alloc (ocs_hal_t *, ocs_sli_port_t *, ocs_domain_t *, uint8_t *) |
| Allocate a port object. More... | |
| ocs_hal_rtn_e | ocs_hal_port_attach (ocs_hal_t *, ocs_sli_port_t *, uint32_t) |
| Attach a physical/virtual SLI port to a domain. More... | |
| ocs_hal_rtn_e | ocs_hal_port_control (ocs_hal_t *, ocs_hal_port_e, uintptr_t, ocs_hal_port_control_cb_t, void *) |
| Control a port (initialize, shutdown, or set link configuration). More... | |
| ocs_hal_rtn_e | ocs_hal_port_free (ocs_hal_t *, ocs_sli_port_t *) |
| Free port resources. More... | |
| ocs_hal_rtn_e | ocs_hal_domain_alloc (ocs_hal_t *, ocs_domain_t *, uint32_t, uint32_t) |
| Allocate a fabric domain object. More... | |
| ocs_hal_rtn_e | ocs_hal_domain_attach (ocs_hal_t *, ocs_domain_t *, uint32_t) |
| Attach a SLI port to a domain. More... | |
| ocs_hal_rtn_e | ocs_hal_domain_free (ocs_hal_t *, ocs_domain_t *) |
| Free a fabric domain object. More... | |
| ocs_hal_rtn_e | ocs_hal_domain_force_free (ocs_hal_t *, ocs_domain_t *) |
| Free a fabric domain object. More... | |
| ocs_domain_t * | ocs_hal_domain_get (ocs_hal_t *, uint16_t) |
| ocs_hal_rtn_e | ocs_hal_node_alloc (ocs_hal_t *, ocs_remote_node_t *, uint32_t, ocs_sli_port_t *) |
| Allocate a remote node object. More... | |
| ocs_hal_rtn_e | ocs_hal_unreg_rpi_all (ocs_hal_t *, ocs_sport_t *) |
| Free all remote node objects. More... | |
| ocs_hal_rtn_e | ocs_hal_node_attach (ocs_hal_t *, ocs_remote_node_t *, ocs_dma_t *) |
| Update a remote node object with the remote port's service parameters. More... | |
| ocs_hal_rtn_e | ocs_hal_node_detach (ocs_hal_t *, ocs_remote_node_t *) |
| Free a remote node object. More... | |
| ocs_hal_rtn_e | ocs_hal_node_free_resources (ocs_hal_t *, ocs_remote_node_t *) |
| Free a remote node resource. More... | |
| ocs_hal_rtn_e | ocs_hal_node_group_alloc (ocs_hal_t *, ocs_remote_node_group_t *) |
| ocs_hal_rtn_e | ocs_hal_node_group_attach (ocs_hal_t *, ocs_remote_node_group_t *, ocs_remote_node_t *) |
| ocs_hal_rtn_e | ocs_hal_node_group_free (ocs_hal_t *, ocs_remote_node_group_t *) |
| ocs_hal_io_t * | ocs_hal_io_alloc (ocs_hal_t *) |
| Allocate a HAL IO object. More... | |
| ocs_hal_io_t * | ocs_hal_io_activate_port_owned (ocs_hal_t *, ocs_hal_io_t *) |
| Allocate/Activate a port owned HAL IO object. More... | |
| int32_t | ocs_hal_io_free (ocs_hal_t *, ocs_hal_io_t *) |
| Free a previously-allocated HAL IO object. More... | |
| uint8_t | ocs_hal_io_inuse (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Check if given HAL IO is in-use. More... | |
| ocs_hal_rtn_e | ocs_hal_srrs_send (ocs_hal_t *, ocs_hal_io_type_e, ocs_hal_io_t *, ocs_dma_t *, uint32_t, ocs_dma_t *, ocs_remote_node_t *, ocs_hal_io_param_t *, ocs_hal_srrs_cb_t, void *) |
| Send a Single Request/Response Sequence (SRRS). More... | |
| ocs_hal_rtn_e | ocs_hal_io_send (ocs_hal_t *, ocs_hal_io_type_e, ocs_hal_io_t *, uint32_t, ocs_hal_io_param_t *, ocs_remote_node_t *, void *, void *) |
| Send a read, write, or response IO. More... | |
| ocs_hal_rtn_e | _ocs_hal_io_send (ocs_hal_t *hal, ocs_hal_io_type_e type, ocs_hal_io_t *io, uint32_t len, ocs_hal_io_param_t *iparam, ocs_remote_node_t *rnode, void *cb, void *arg) |
| ocs_hal_rtn_e | ocs_hal_io_register_sgl (ocs_hal_t *, ocs_hal_io_t *, ocs_dma_t *, uint32_t) |
| ocs_hal_rtn_e | ocs_hal_io_init_sges (ocs_hal_t *hal, ocs_hal_io_t *io, ocs_hal_io_type_e type) |
| Initialize the scatter gather list entries of an IO. More... | |
| ocs_hal_rtn_e | ocs_hal_io_add_seed_sge (ocs_hal_t *hal, ocs_hal_io_t *io, ocs_hal_dif_info_t *dif_info) |
| Add a T10 PI seed scatter gather list entry. More... | |
| ocs_hal_rtn_e | ocs_hal_io_add_sge (ocs_hal_t *, ocs_hal_io_t *, uintptr_t, uint32_t) |
| Add a scatter gather list entry to an IO. More... | |
| ocs_hal_rtn_e | ocs_hal_io_add_dif_sge (ocs_hal_t *hal, ocs_hal_io_t *io, uintptr_t addr) |
| Add a T10 DIF scatter gather list entry to an IO. More... | |
| ocs_hal_rtn_e | ocs_hal_io_abort (ocs_hal_t *, ocs_hal_io_t *, uint32_t, void *, void *) |
| Abort a previously-started IO. More... | |
| int32_t | ocs_hal_io_get_xid (ocs_hal_t *, ocs_hal_io_t *) |
| Return the OX_ID/RX_ID of the IO. More... | |
| uint32_t | ocs_hal_io_get_count (ocs_hal_t *, ocs_hal_io_count_type_e) |
| Called to obtain the count for the specified type. More... | |
| uint32_t | ocs_hal_rpi_active_count (ocs_hal_t *) |
| Called to obtain active RPI count. More... | |
| uint32_t | ocs_hal_get_rqes_produced_count (ocs_hal_t *hal) |
| Called to obtain the count of produced RQs. More... | |
| ocs_hal_rtn_e | ocs_hal_firmware_write (ocs_hal_t *, ocs_dma_t *, uint32_t, uint32_t, int, ocs_hal_fw_cb_t, void *) |
| Write a portion of a firmware image to the device. More... | |
| ocs_hal_rtn_e | ocs_hal_get_sfp (ocs_hal_t *, uint16_t, ocs_hal_sfp_cb_t, void *) |
| Function to retrieve the SFP information. More... | |
| ocs_hal_rtn_e | ocs_hal_get_temperature (ocs_hal_t *, ocs_hal_temp_cb_t, void *) |
| Function to retrieve the temperature information. More... | |
| void | ocs_read_temperature_lancer_cb (int32_t status, uint32_t curr_temp, uint32_t crit_temp_thr, uint32_t warn_temp_thr, uint32_t norm_temp_thr, uint32_t fan_off_thr, uint32_t fan_on_thr, void *arg) |
| ocs_hal_rtn_e | ocs_hal_get_link_stats (ocs_hal_t *, uint8_t req_ext_counters, uint8_t clear_overflow_flags, uint8_t clear_all_counters, ocs_hal_link_stat_cb_t, void *) |
| Function to retrieve the link statistics. More... | |
| ocs_hal_rtn_e | ocs_hal_get_host_stats (ocs_hal_t *hal, uint8_t cc, ocs_hal_host_stat_cb_t, void *arg) |
| Function to retrieve the link and host statistics. More... | |
| ocs_hal_rtn_e | ocs_hal_raise_ue (ocs_hal_t *, uint8_t) |
| Cause chip to enter an unrecoverable error state. More... | |
| ocs_hal_rtn_e | ocs_hal_dump_get (ocs_hal_t *, ocs_dma_t *, uint32_t, uint32_t, ocs_hal_dump_get_cb_t, void *) |
| Read a dump image to the host. More... | |
| ocs_hal_rtn_e | ocs_hal_set_dump_to_host_buffers (ocs_hal_t *hal) |
| Allocates dump dma buffers, if not already allocated. Set the Lancer dump location. More... | |
| ocs_hal_rtn_e | ocs_hal_run_biu_diag (ocs_hal_t *hal, void *tx_buff, size_t tx_buff_len, void *rx_buff, size_t rx_buff_len) |
| Run Diagnostic PCI Loopback test. More... | |
| void | ocs_hal_free_dump_to_host_buffers (ocs_hal_t *hal) |
| ocs_hal_rtn_e | ocs_hal_clear_dump_location (ocs_hal_t *hal) |
| Clear the Lancer dump location. More... | |
| ocs_hal_rtn_e | ocs_hal_set_loopback_mode (ocs_hal_t *hal, uint32_t type) |
| Set the Lancer dump location. More... | |
| ocs_hal_rtn_e | ocs_hal_set_trunk_mode (ocs_hal_t *hal, uint32_t trunk_mode) |
| Set trunking mode. More... | |
| ocs_hal_rtn_e | ocs_hal_get_trunk_info (ocs_hal_t *hal, uint32_t *trunk_config) |
| Get trunking mode information. More... | |
| ocs_hal_rtn_e | ocs_hal_get_port_protocol (ocs_hal_t *hal, uint32_t pci_func, ocs_get_port_protocol_cb_t mgmt_cb, void *ul_arg) |
| Get the current port protocol. More... | |
| ocs_hal_rtn_e | ocs_hal_set_port_protocol (ocs_hal_t *hal, ocs_hal_port_protocol_e profile, uint32_t pci_func, ocs_set_port_protocol_cb_t mgmt_cb, void *ul_arg) |
| Set the port protocol. More... | |
| ocs_hal_rtn_e | ocs_hal_get_profile_list (ocs_hal_t *hal, ocs_get_profile_list_cb_t mgmt_cb, void *arg) |
| Get a list of available profiles. More... | |
| ocs_hal_rtn_e | ocs_hal_get_active_profile (ocs_hal_t *hal, ocs_get_active_profile_cb_t mgmt_cb, void *arg) |
| Get the currently active profile. More... | |
| ocs_hal_rtn_e | ocs_hal_set_active_profile (ocs_hal_t *hal, ocs_set_active_profile_cb_t mgmt_cb, uint32_t profile_id, void *arg) |
| Set the currently active profile. More... | |
| ocs_hal_rtn_e | ocs_hal_get_nvparms (ocs_hal_t *hal, ocs_get_nvparms_cb_t mgmt_cb, void *arg) |
| Read non-volatile parms. More... | |
| ocs_hal_rtn_e | ocs_hal_set_nvparms (ocs_hal_t *hal, ocs_set_nvparms_cb_t mgmt_cb, uint8_t *wwpn, uint8_t *wwnn, uint8_t hard_alpa, uint32_t preferred_d_id, void *arg) |
| Write non-volatile parms. More... | |
| int32_t | ocs_hal_eq_process (ocs_hal_t *hal, hal_eq_t *eq, uint32_t max_isr_time_msec) |
| Process events associated with an EQ. More... | |
| void | ocs_hal_cq_process (ocs_hal_t *hal, hal_cq_t *cq, uint32_t cq_process_limit) |
| Process entries on the given completion queue. More... | |
| void | ocs_hal_wq_process (ocs_hal_t *hal, hal_cq_t *cq, uint8_t *cqe, int32_t status, uint16_t rid) |
| Process WQ completion queue entries. More... | |
| void | ocs_hal_xabt_process (ocs_hal_t *hal, hal_cq_t *cq, uint8_t *cqe, uint16_t rid) |
| Process XABT completions. More... | |
| int32_t | hal_wq_write (hal_wq_t *wq, ocs_hal_wqe_t *wqe) |
| Write a HAL IO to a work queue. More... | |
| ocs_hal_rtn_e | ocs_hal_dump_clear (ocs_hal_t *, ocs_hal_dump_clear_cb_t, void *) |
| Clear a dump image from the device. More... | |
| ocs_hal_rtn_e | ocs_hal_get_itcm_parity_stats (ocs_hal_t *hal, bool clear_stats, ocs_hal_parity_stat_cb_t cb, void *arg) |
| uint8_t | ocs_hal_is_io_port_owned (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Determine if HAL IO is owned by the port. More... | |
| uint8_t | ocs_hal_is_xri_port_owned (ocs_hal_t *hal, uint32_t xri) |
| Return TRUE if exchange is port-owned. More... | |
| ocs_hal_io_t * | ocs_hal_io_lookup (ocs_hal_t *hal, uint32_t indicator) |
| Find IO given indicator (xri). More... | |
| uint32_t | ocs_hal_xri_move_to_port_owned (ocs_hal_t *hal, uint32_t num_xri) |
| Move XRIs from the host-controlled pool to the port. More... | |
| ocs_hal_rtn_e | ocs_hal_xri_move_to_host_owned (ocs_hal_t *hal, uint8_t num_xri) |
| Move XRIs from the port-controlled pool to the host. More... | |
| int32_t | ocs_hal_reque_xri (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Reque XRI. More... | |
| int32_t | ocs_hal_flush (ocs_hal_t *hal) |
| int32_t | ocs_hal_io_cancel (ocs_hal_t *hal) |
| ocs_hal_rtn_e | ocs_hal_send_frame (ocs_hal_t *hal, fc_header_le_t *hdr, uint8_t sof, uint8_t eof, ocs_dma_t *payload, ocs_hal_send_frame_context_t *ctx, void(*callback)(void *arg, uint8_t *cqe, int32_t status), void *arg) |
| Send a raw frame. More... | |
| int32_t | ocs_hal_rqpair_process_rq (ocs_hal_t *hal, hal_cq_t *cq, uint8_t *cqe) |
| Process receive queue completions for RQ Pair mode. More... | |
| ocs_hal_rtn_e | ocs_hal_rqpair_sequence_free (ocs_hal_t *hal, ocs_hal_sequence_t *seq) |
| Return RQ buffers (while in RQ pair mode). More... | |
| int32_t | ocs_hal_rqpair_tow_cmd_process (ocs_hal_t *hal, hal_cq_t *cq, uint8_t *cqe) |
| Process receive queue completions for RQ Pair mode - Auto xfer rdy. More... | |
| int32_t | ocs_hal_rqpair_tow_data_process (ocs_hal_t *hal, hal_cq_t *cq, uint8_t *cqe) |
| Process CQ completions for Auto xfer rdy data phases. More... | |
| ocs_hal_rtn_e | ocs_hal_rqpair_tow_buffer_alloc (ocs_hal_t *hal, uint32_t num_buffers) |
| Allocate tow buffers. More... | |
| ocs_hal_rtn_e | ocs_hal_rqpair_init (ocs_hal_t *hal) |
| Configure the rq_pair function from ocs_hal_init(). Must be after the IOs are setup and the state is active. More... | |
| ocs_hal_rtn_e | ocs_hal_rqpair_auto_xfer_rdy_buffer_alloc (ocs_hal_t *hal, uint32_t num_buffers) |
| uint8_t | ocs_hal_rqpair_tow_xri_buffer_attach (ocs_hal_t *hal, ocs_hal_io_t *io, int reuse_buf) |
| ocs_hal_rtn_e | ocs_hal_rqpair_tow_move_to_port (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Prepares an XRI to move to the chip. More... | |
| void | ocs_hal_rqpair_tow_move_to_host (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Prepares an XRI to move back to the host. More... | |
| void | ocs_hal_rqpair_teardown (ocs_hal_t *hal) |
| Tear down the rq_pair function from ocs_hal_teardown(). More... | |
| int | ocs_hal_stop_fw_diagnostic_logging (ocs_hal_t *hal) |
| Stop firmware diagnostic logging (RAS). More... | |
| ocs_hal_rtn_e | ocs_hal_rx_allocate (ocs_hal_t *hal) |
| Allocate the RQ data buffers. More... | |
| ocs_hal_rtn_e | ocs_hal_rx_post (ocs_hal_t *hal) |
| Post the RQ data buffers to the chip. More... | |
| void | ocs_hal_rx_free (ocs_hal_t *hal) |
| Free the RQ data buffers. More... | |
| void | ocs_hal_unsol_process_bounce (void *arg) |
| int32_t | ocs_hal_async_call (ocs_hal_t *hal, ocs_hal_async_cb_t callback, void *arg) |
| Make an async callback using NOP mailbox command. More... | |
| static void | ocs_hal_sequence_copy (ocs_hal_sequence_t *dst, ocs_hal_sequence_t *src) |
| static ocs_hal_rtn_e | ocs_hal_sequence_free (ocs_hal_t *hal, ocs_hal_sequence_t *seq) |
| ocs_hal_rtn_e | ocs_hal_reqtag_init (ocs_hal_t *hal) |
| Initialize the reqtag pool. More... | |
| hal_wq_callback_t * | ocs_hal_reqtag_alloc (ocs_hal_t *hal, void(*callback)(void *arg, uint8_t *cqe, int32_t status), void *arg) |
| Allocate a WQ request tag. More... | |
| void | ocs_hal_reqtag_free (ocs_hal_t *hal, hal_wq_callback_t *wqcb) |
| Free a WQ request tag. More... | |
| hal_wq_callback_t * | ocs_hal_reqtag_get_instance (ocs_hal_t *hal, uint32_t instance_index) |
| Return WQ request tag by index. More... | |
| void | ocs_hal_reqtag_reset (ocs_hal_t *hal) |
| Reset the WQ request tag pool. More... | |
| int | ocs_hal_can_accept_wqes (ocs_hal_io_t *hio) |
Variables | |
| ocs_hal_global_t | hal_global |
| #define ocs_hal_assert | ( | cond | ) |
| #define OCS_HAL_DIF_OPER_INSERT OCS_HAL_SGE_DIF_OP_IN_NODIF_OUT_CRC |
| #define OCS_HAL_DIF_OPER_PASS_THRU OCS_HAL_SGE_DIF_OP_IN_CRC_OUT_CRC |
| #define OCS_HAL_DIF_OPER_STRIP OCS_HAL_SGE_DIF_OP_IN_CRC_OUT_NODIF |
| #define OCS_HAL_IO_TYPE_STRINGS |
| #define OCS_HAL_MAX_NUM_CQ ((OCS_HAL_MAX_NUM_WQ*2) + 1 + (OCS_HAL_MAX_RQ_PAIRS)) |
| #define OCS_HAL_MAX_NUM_RQ (OCS_HAL_MAX_RQ_PAIRS * 2) |
| #define OCS_HAL_Q_HASH_SIZE |
| #define OCS_HAL_QUARANTINE_QUEUE_DEPTH 4 |
| #define OCS_HAL_RQ_INDEX_DUMMY_HDR 0xFF00 |
Structure to track optimized write buffers posted to chip owned XRIs.
Note: The rqindex will be set the following "fake" indexes. This will be used when the buffer is returned via ocs_seq_free() to make the buffer available for re-use on another XRI.
The dma->alloc pointer on the dummy header will be used to get back to this structure when the buffer is freed.
More of these object may be allocated on the fly if more XRIs are pushed to the chip.
| #define ocs_hal_verify | ( | cond, | |
| ... | |||
| ) |
| #define ocs_hal_verify_arg | ( | cond | ) | ocs_hal_verify(cond, OCS_HAL_RTN_INVALID_ARG) |
| typedef struct hal_rq_grp_s hal_rq_grp_t |
| typedef void(* ocs_get_active_profile_cb_t)(int32_t status, uint32_t active_profile, void *arg) |
| typedef void(* ocs_get_nvparms_cb_t)(int32_t status, uint8_t *wwpn, uint8_t *wwnn, uint8_t hard_alpa, uint32_t preferred_d_id, void *arg) |
| typedef void(* ocs_get_port_protocol_cb_t)(int32_t status, ocs_hal_port_protocol_e port_protocol, void *arg) |
| typedef void(* ocs_get_profile_list_cb_t)(int32_t status, ocs_hal_profile_list_t *, void *arg) |
| typedef int32_t(* ocs_hal_async_cb_t)(ocs_hal_t *hal, int32_t status, uint8_t *mqe, void *arg) |
| typedef int32_t(* ocs_hal_done_t)(struct ocs_hal_io_s *, ocs_remote_node_t *, uint32_t len, int32_t status, uint32_t ext, void *ul_arg) |
| typedef void(* ocs_hal_dump_clear_cb_t)(int32_t status, void *arg) |
| typedef void(* ocs_hal_dump_get_cb_t)(int32_t status, uint32_t bytes_read, uint8_t eof, void *arg) |
| typedef void(* ocs_hal_fw_cb_t)(int32_t status, int32_t ext_status, uint32_t bytes_written, uint32_t change_status, void *arg) |
| typedef void(* ocs_hal_host_stat_cb_t)(int32_t status, uint32_t num_counters, ocs_hal_host_stat_counts_t *counters, void *arg) |
| typedef void(* ocs_hal_link_stat_cb_t)(int32_t status, uint32_t num_counters, ocs_hal_link_stat_counts_t *counters, void *arg) |
| typedef void(* ocs_hal_parity_stat_cb_t)(int32_t status, uint8_t num_ulp, ocs_parity_err_count_t *counter, void *arg) |
| typedef void(* ocs_hal_port_control_cb_t)(int32_t status, uintptr_t value, void *arg) |
| typedef void(* ocs_hal_sfp_cb_t)(void *, int32_t, uint32_t, uint32_t *, void *) |
| typedef int32_t(* ocs_hal_srrs_cb_t)(ocs_hal_io_t *io, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg) |
| typedef void(* ocs_hal_temp_cb_t)(int32_t status, uint32_t curr_temp, uint32_t crit_temp_thrshld, uint32_t warn_temp_thrshld, uint32_t norm_temp_thrshld, uint32_t fan_off_thrshld, uint32_t fan_on_thrshld, void *arg) |
| typedef void(* ocs_set_active_profile_cb_t)(int32_t status, void *arg) |
| typedef void(* ocs_set_nvparms_cb_t)(int32_t status, void *arg) |
| typedef void(* ocs_set_port_protocol_cb_t)(int32_t status, void *arg) |
| typedef void(* tcmd_cq_handler)(ocs_hal_t *hal, uint32_t cq_idx, void *cq_handler_arg) |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
Options for ocs_hal_command().
| Enumerator | |
|---|---|
| OCS_CMD_POLL |
command executes synchronously and busy-waits for completion |
| OCS_CMD_NOWAIT |
command executes asynchronously. Uses callback |
| anonymous enum |
| enum hal_cq_handler_e |
| enum ocs_hal_callback_e |
| enum ocs_hal_dif_oper_e |
T10 DIF operations.
Fabric/Domain events.
| enum ocs_hal_host_stat_e |
| enum ocs_hal_io_state_e |
| enum ocs_hal_io_type_e |
| enum ocs_hal_link_stat_e |
HAL link stat types.
| enum ocs_hal_linkcfg_e |
| enum ocs_hal_port_e |
| enum ocs_hal_port_event_e |
| enum ocs_hal_property_e |
| enum ocs_hal_reset_e |
| enum ocs_hal_rtn_e |
| enum ocs_hal_state_e |
| void _ocs_hal_assert | ( | const char * | cond, |
| const char * | filename, | ||
| int | linenum | ||
| ) |
| ocs_hal_rtn_e _ocs_hal_io_send | ( | ocs_hal_t * | hal, |
| ocs_hal_io_type_e | type, | ||
| ocs_hal_io_t * | io, | ||
| uint32_t | len, | ||
| ocs_hal_io_param_t * | iparam, | ||
| ocs_remote_node_t * | rnode, | ||
| void * | cb, | ||
| void * | arg | ||
| ) |
| void _ocs_hal_verify | ( | const char * | cond, |
| const char * | filename, | ||
| int | linenum | ||
| ) |
| void hal_del_cq | ( | hal_cq_t * | cq | ) |
Free a CQ object.
The CQ object and any child queue objects are freed
| cq | pointer to CQ object |
Definition at line 863 of file ocs_hal_queues.c.
| void hal_del_eq | ( | hal_eq_t * | eq | ) |
Free an EQ object.
The EQ object and any child queue objects are freed
| eq | pointer to EQ object |
Definition at line 837 of file ocs_hal_queues.c.
| void hal_del_mq | ( | hal_mq_t * | mq | ) |
Free a MQ object.
The MQ object is freed
| mq | pointer to MQ object |
Definition at line 900 of file ocs_hal_queues.c.
| void hal_del_rq | ( | hal_rq_t * | rq | ) |
Free an RQ object.
The RQ object is freed
| rq | pointer to RQ object |
Definition at line 938 of file ocs_hal_queues.c.
| void hal_del_wq | ( | hal_wq_t * | wq | ) |
Free a WQ object.
The WQ object is freed
| wq | pointer to WQ object |
Definition at line 919 of file ocs_hal_queues.c.
| hal_cq_t* hal_new_cq | ( | hal_eq_t * | eq, |
| uint32_t | entry_count | ||
| ) |
Allocate a new CQ object.
A new CQ object is instantiated
| eq | pointer to parent EQ object |
| entry_count | number of entries in the CQ |
Definition at line 477 of file ocs_hal_queues.c.
| uint32_t hal_new_cq_set | ( | hal_eq_t * | eqs[], |
| hal_cq_t * | cqs[], | ||
| uint32_t | num_cqs, | ||
| uint32_t | entry_count | ||
| ) |
Allocate a new CQ Set of objects.
| eqs | pointer to a set of EQ objects. |
| cqs | pointer to a set of CQ objects to be returned. |
| num_cqs | number of CQ queues in the set. |
| entry_count | number of entries in the CQ. |
Definition at line 518 of file ocs_hal_queues.c.
| hal_eq_t* hal_new_eq | ( | ocs_hal_t * | hal, |
| uint32_t | entry_count | ||
| ) |
Allocate a new EQ object.
A new EQ object is instantiated
| hal | pointer to HAL object |
| entry_count | number of entries in the EQ |
Definition at line 433 of file ocs_hal_queues.c.
| hal_mq_t* hal_new_mq | ( | hal_cq_t * | cq, |
| uint32_t | entry_count | ||
| ) |
Allocate a new MQ object.
A new MQ object is instantiated
| cq | pointer to parent CQ object |
| entry_count | number of entries in the MQ |
Definition at line 581 of file ocs_hal_queues.c.
| hal_rq_t* hal_new_rq | ( | hal_cq_t * | cq, |
| uint32_t | entry_count, | ||
| uint32_t | ulp | ||
| ) |
Allocate a hal_rq_t object.
Allocate an RQ object, which encapsulates 2 SLI queues (for rq pair)
| cq | pointer to parent CQ object |
| entry_count | number of entries in the RQs |
| ulp | ULP index for this RQ |
Definition at line 668 of file ocs_hal_queues.c.
| uint32_t hal_new_rq_set | ( | hal_cq_t * | cqs[], |
| hal_rq_t * | rqs[], | ||
| uint32_t | num_rq_pairs, | ||
| uint32_t | entry_count, | ||
| uint32_t | ulp | ||
| ) |
Allocate a hal_rq_t object SET.
Allocate an RQ object SET, where each element in set encapsulates 2 SLI queues (for rq pair)
| cqs | pointers to be associated with RQs. |
| rqs | RQ pointers to be returned on success. |
| num_rq_pairs | number of rq pairs in the Set. |
| entry_count | number of entries in the RQs |
| ulp | ULP index for this RQ |
Definition at line 747 of file ocs_hal_queues.c.
| hal_wq_t* hal_new_wq | ( | hal_cq_t * | cq, |
| uint32_t | entry_count, | ||
| uint32_t | class, | ||
| uint32_t | ulp | ||
| ) |
Allocate a new WQ object.
A new WQ object is instantiated
| cq | pointer to parent CQ object |
| entry_count | number of entries in the WQ |
| class | WQ class |
| ulp | index of chute |
Definition at line 623 of file ocs_hal_queues.c.
| void hal_queue_dump | ( | ocs_hal_t * | hal | ) |
Display HAL queue objects.
The HAL queue objects are displayed using ocs_log
| hal | pointer to HAL object |
Definition at line 967 of file ocs_hal_queues.c.
| void hal_queue_teardown | ( | ocs_hal_t * | hal | ) |
Teardown HAL queue objects.
The HAL queue objects are freed
| hal | pointer to HAL object |
Definition at line 1012 of file ocs_hal_queues.c.
| int32_t hal_route_rqe | ( | ocs_hal_t * | hal, |
| ocs_hal_sequence_t * | seq | ||
| ) |
| int32_t hal_wq_write | ( | hal_wq_t * | wq, |
| ocs_hal_wqe_t * | wqe | ||
| ) |
| int32_t ocs_hal_async_call | ( | ocs_hal_t * | hal, |
| ocs_hal_async_cb_t | callback, | ||
| void * | arg | ||
| ) |
Make an async callback using NOP mailbox command.
| hal | Pointer to HAL object. |
| callback | Pointer to callback function. |
| arg | Caller-provided callback. |
| int ocs_hal_can_accept_wqes | ( | ocs_hal_io_t * | hio | ) |
| ocs_hal_rtn_e ocs_hal_clear_dump_location | ( | ocs_hal_t * | hal | ) |
| void ocs_hal_cq_process | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint32_t | cq_process_limit | ||
| ) |
| ocs_domain_t* ocs_hal_domain_get | ( | ocs_hal_t * | , |
| uint16_t | |||
| ) |
| ocs_hal_rtn_e ocs_hal_dump_clear | ( | ocs_hal_t * | hal, |
| ocs_hal_dump_clear_cb_t | cb, | ||
| void * | arg | ||
| ) |
Clear a dump image from the device.
| hal | Hardware context. |
| cb | Pointer to a callback function that is called when the command completes. The callback function prototype is void cb(int32_t status, uint32_t bytes_written, void *arg). |
| arg | Pointer to be passed to the callback function. |
| ocs_hal_rtn_e ocs_hal_dump_get | ( | ocs_hal_t * | hal, |
| ocs_dma_t * | dma, | ||
| uint32_t | size, | ||
| uint32_t | offset, | ||
| ocs_hal_dump_get_cb_t | cb, | ||
| void * | arg | ||
| ) |
Read a dump image to the host.
| hal | Hardware context. |
| dma | DMA structure to transfer the dump chunk into. |
| size | Size of the dump chunk. |
| offset | Offset, in bytes, from the beginning of the dump. |
| cb | Pointer to a callback function that is called when the command completes. The callback function prototype is void cb(int32_t status, uint32_t bytes_read, uint8_t eof, void *arg). |
| arg | Pointer to be passed to the callback function. |
| ocs_hal_rtn_e ocs_hal_firmware_write | ( | ocs_hal_t * | hal, |
| ocs_dma_t * | dma, | ||
| uint32_t | size, | ||
| uint32_t | offset, | ||
| int | last, | ||
| ocs_hal_fw_cb_t | cb, | ||
| void * | arg | ||
| ) |
Write a portion of a firmware image to the device.
| hal | Hardware context. |
| dma | DMA structure containing the firmware image chunk. |
| size | Size of the firmware image chunk. |
| offset | Offset, in bytes, from the beginning of the firmware image. |
| last | True if this is the last chunk of the image. Causes the image to be committed to flash. |
| cb | Pointer to a callback function that is called when the command completes. The callback function prototype is void cb(int32_t status, uint32_t bytes_written, void *arg). |
| arg | Pointer to be passed to the callback function. |
| void ocs_hal_free_dump_to_host_buffers | ( | ocs_hal_t * | hal | ) |
| ocs_hal_rtn_e ocs_hal_get | ( | ocs_hal_t * | , |
| ocs_hal_property_e | , | ||
| uint32_t * | |||
| ) |
If auto recovery is enabled, SLIPort flag will be cleared by the set_dump_location mbox cmd in the hal reset path. So, we have to rely on OCS dump_state flag to validate the presence of FW dumps.
Check only for FDD, and return if a dump exists on this PCI func. This can even return the presence of CLD on PCI func 0 since we really don't care about the type of dump that exists in OCS buffers.
| ocs_hal_rtn_e ocs_hal_get_host_stats | ( | ocs_hal_t * | hal, |
| uint8_t | cc, | ||
| ocs_hal_host_stat_cb_t | cb, | ||
| void * | arg | ||
| ) |
Function to retrieve the link and host statistics.
| hal | Hardware context. |
| cc | clear counters, if TRUE all counters will be cleared. |
| cb | Function call upon completion of receiving the data. |
| arg | Argument to pass to pointer fc hosts statistics structure. |
| ocs_hal_rtn_e ocs_hal_get_itcm_parity_stats | ( | ocs_hal_t * | hal, |
| bool | clear_stats, | ||
| ocs_hal_parity_stat_cb_t | cb, | ||
| void * | arg | ||
| ) |
| ocs_hal_rtn_e ocs_hal_get_link_stats | ( | ocs_hal_t * | hal, |
| uint8_t | req_ext_counters, | ||
| uint8_t | clear_overflow_flags, | ||
| uint8_t | clear_all_counters, | ||
| ocs_hal_link_stat_cb_t | cb, | ||
| void * | arg | ||
| ) |
Function to retrieve the link statistics.
| hal | Hardware context. |
| req_ext_counters | If TRUE, then the extended counters will be requested. |
| clear_overflow_flags | If TRUE, then overflow flags will be cleared. |
| clear_all_counters | If TRUE, the counters will be cleared. |
| cb | Function call upon completion of sending the data (may be NULL). |
| arg | Argument to pass to IO completion function. |
| void* ocs_hal_get_ptr | ( | ocs_hal_t * | , |
| ocs_hal_property_e | |||
| ) |
| uint32_t ocs_hal_get_rqes_produced_count | ( | ocs_hal_t * | hal | ) |
| ocs_hal_rtn_e ocs_hal_get_temperature | ( | ocs_hal_t * | hal, |
| ocs_hal_temp_cb_t | cb, | ||
| void * | arg | ||
| ) |
Function to retrieve the temperature information.
| hal | Hardware context. |
| cb | Function call upon completion of sending the data (may be NULL). |
| arg | Argument to pass to IO completion function. |
| ocs_hal_rtn_e ocs_hal_get_trunk_info | ( | ocs_hal_t * | hal, |
| uint32_t * | trunk_info | ||
| ) |
| uint32_t ocs_hal_io_get_count | ( | ocs_hal_t * | hal, |
| ocs_hal_io_count_type_e | io_count_type | ||
| ) |
| ocs_hal_io_t* ocs_hal_io_lookup | ( | ocs_hal_t * | hal, |
| uint32_t | xri | ||
| ) |
| ocs_hal_rtn_e ocs_hal_io_register_sgl | ( | ocs_hal_t * | , |
| ocs_hal_io_t * | , | ||
| ocs_dma_t * | , | ||
| uint32_t | |||
| ) |
| uint8_t ocs_hal_is_io_port_owned | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io | ||
| ) |
| uint8_t ocs_hal_is_xri_port_owned | ( | ocs_hal_t * | hal, |
| uint32_t | xri | ||
| ) |
| ocs_hal_rtn_e ocs_hal_node_group_alloc | ( | ocs_hal_t * | , |
| ocs_remote_node_group_t * | |||
| ) |
| ocs_hal_rtn_e ocs_hal_node_group_attach | ( | ocs_hal_t * | , |
| ocs_remote_node_group_t * | , | ||
| ocs_remote_node_t * | |||
| ) |
| ocs_hal_rtn_e ocs_hal_node_group_free | ( | ocs_hal_t * | , |
| ocs_remote_node_group_t * | |||
| ) |
| ocs_hal_rtn_e ocs_hal_port_migration | ( | ocs_hal_t * | ) |
| int32_t ocs_hal_process | ( | ocs_hal_t * | , |
| uint32_t | , | ||
| uint32_t | |||
| ) |
| int32_t ocs_hal_queue_hash_find | ( | ocs_queue_hash_t * | hash, |
| uint16_t | id | ||
| ) |
| ocs_hal_rtn_e ocs_hal_raise_ue | ( | ocs_hal_t * | hal, |
| uint8_t | dump | ||
| ) |
Cause chip to enter an unrecoverable error state.
| hal | Hardware context. |
| dump | Generate dump as part of reset. |
| hal_wq_callback_t* ocs_hal_reqtag_alloc | ( | ocs_hal_t * | hal, |
| void(*)(void *arg, uint8_t *cqe, int32_t status) | callback, | ||
| void * | arg | ||
| ) |
Allocate a WQ request tag.
Allocate and populate a WQ request tag from the WQ request tag pool.
| hal | Pointer to HAL object. |
| callback | Callback function. |
| arg | Pointer to callback argument. |
| void ocs_hal_reqtag_free | ( | ocs_hal_t * | hal, |
| hal_wq_callback_t * | wqcb | ||
| ) |
| hal_wq_callback_t* ocs_hal_reqtag_get_instance | ( | ocs_hal_t * | hal, |
| uint32_t | instance_index | ||
| ) |
| ocs_hal_rtn_e ocs_hal_reqtag_init | ( | ocs_hal_t * | hal | ) |
| void ocs_hal_reqtag_reset | ( | ocs_hal_t * | hal | ) |
| int32_t ocs_hal_reque_xri | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io | ||
| ) |
| ocs_hal_rtn_e ocs_hal_reset | ( | ocs_hal_t * | , |
| ocs_hal_reset_e | |||
| ) |
| uint32_t ocs_hal_rpi_active_count | ( | ocs_hal_t * | hal | ) |
| ocs_hal_rtn_e ocs_hal_rqpair_auto_xfer_rdy_buffer_alloc | ( | ocs_hal_t * | hal, |
| uint32_t | num_buffers | ||
| ) |
| int32_t ocs_hal_rqpair_process_rq | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint8_t * | cqe | ||
| ) |
Process receive queue completions for RQ Pair mode.
| hal | Hardware context. |
| cq | Pointer to HAL completion queue. |
| cqe | Completion queue entry. |
Definition at line 66 of file ocs_hal_rqpair.c.
| ocs_hal_rtn_e ocs_hal_rqpair_sequence_free | ( | ocs_hal_t * | hal, |
| ocs_hal_sequence_t * | seq | ||
| ) |
Return RQ buffers (while in RQ pair mode).
| hal | Hardware context. |
| seq | Header/payload sequence buffers. |
Definition at line 540 of file ocs_hal_rqpair.c.
| int32_t ocs_hal_rqpair_tow_cmd_process | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint8_t * | cqe | ||
| ) |
Process receive queue completions for RQ Pair mode - Auto xfer rdy.
| hal | Hardware context. |
| cq | Pointer to HAL completion queue. |
| cqe | Completion queue entry. |
Definition at line 180 of file ocs_hal_rqpair.c.
| int32_t ocs_hal_rqpair_tow_data_process | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint8_t * | cqe | ||
| ) |
Process CQ completions for Auto xfer rdy data phases.
| hal | Hardware context. |
| cq | Pointer to HAL completion queue. |
| cqe | Completion queue entry. |
Definition at line 344 of file ocs_hal_rqpair.c.
| void ocs_hal_rqpair_tow_move_to_host | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io | ||
| ) |
Prepares an XRI to move back to the host.
| hal | Hardware context allocated by the caller. |
| io | Pointer to the IO object. |
Definition at line 741 of file ocs_hal_rqpair.c.
| ocs_hal_rtn_e ocs_hal_rqpair_tow_move_to_port | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io | ||
| ) |
Prepares an XRI to move to the chip.
| hal | Hardware context allocated by the caller. |
| io | Pointer to the IO object. |
Definition at line 695 of file ocs_hal_rqpair.c.
| uint8_t ocs_hal_rqpair_tow_xri_buffer_attach | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io, | ||
| int | reuse_buf | ||
| ) |
| ocs_hal_rtn_e ocs_hal_run_biu_diag | ( | ocs_hal_t * | hal, |
| void * | tx_buff, | ||
| size_t | tx_buff_len, | ||
| void * | rx_buff, | ||
| size_t | rx_buff_len | ||
| ) |
| ocs_hal_rtn_e ocs_hal_rx_allocate | ( | ocs_hal_t * | hal | ) |
| void ocs_hal_rx_free | ( | ocs_hal_t * | hal | ) |
| ocs_hal_rtn_e ocs_hal_rx_post | ( | ocs_hal_t * | hal | ) |
| ocs_hal_rtn_e ocs_hal_send_frame | ( | ocs_hal_t * | hal, |
| fc_header_le_t * | hdr, | ||
| uint8_t | sof, | ||
| uint8_t | eof, | ||
| ocs_dma_t * | payload, | ||
| ocs_hal_send_frame_context_t * | ctx, | ||
| void(*)(void *arg, uint8_t *cqe, int32_t status) | callback, | ||
| void * | arg | ||
| ) |
Send a raw frame.
| hal | Pointer to HAL object. |
| hdr | Pointer to a little endian formatted FC header. |
| sof | Value to use as the frame SOF. |
| eof | Value to use as the frame EOF. |
| payload | Pointer to payload DMA buffer. |
| ctx | Pointer to caller provided send frame context. |
| callback | Callback function. |
| arg | Callback function argument. |
|
inlinestatic |
|
inlinestatic |
| ocs_hal_rtn_e ocs_hal_set | ( | ocs_hal_t * | , |
| ocs_hal_property_e | , | ||
| uint32_t | |||
| ) |
| ocs_hal_rtn_e ocs_hal_set_dump_to_host_buffers | ( | ocs_hal_t * | hal | ) |
Allocates dump dma buffers, if not already allocated. Set the Lancer dump location.
| hal | Hardware context. |
Make sure the FW is new enough to support this command. If the FW is too old, the FW will UE.
| ocs_hal_rtn_e ocs_hal_set_loopback_mode | ( | ocs_hal_t * | hal, |
| uint32_t | type | ||
| ) |
| ocs_hal_rtn_e ocs_hal_set_ptr | ( | ocs_hal_t * | , |
| ocs_hal_property_e | , | ||
| void * | |||
| ) |
| ocs_hal_rtn_e ocs_hal_set_trunk_mode | ( | ocs_hal_t * | hal, |
| uint32_t | trunk_mode | ||
| ) |
| int ocs_hal_stop_fw_diagnostic_logging | ( | ocs_hal_t * | hal | ) |
| void ocs_hal_wq_process | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint8_t * | cqe, | ||
| int32_t | status, | ||
| uint16_t | rid | ||
| ) |
| void ocs_hal_xabt_process | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq, | ||
| uint8_t * | cqe, | ||
| uint16_t | rid | ||
| ) |
| ocs_hal_rtn_e ocs_hal_xri_move_to_host_owned | ( | ocs_hal_t * | hal, |
| uint8_t | num_xri | ||
| ) |
Move XRIs from the port-controlled pool to the host.
Requests XRIs from the FW to return to the host-owned pool.
| hal | Hardware context. |
| num_xri | The number of XRIs being requested to moved from the chip. |
| uint32_t ocs_hal_xri_move_to_port_owned | ( | ocs_hal_t * | hal, |
| uint32_t | num_xri | ||
| ) |
Move XRIs from the host-controlled pool to the port.
| hal | Hardware context. |
| num_xri | The number of XRIs being requested to move to the chip. |
| void ocs_read_temperature_lancer_cb | ( | int32_t | status, |
| uint32_t | curr_temp, | ||
| uint32_t | crit_temp_thr, | ||
| uint32_t | warn_temp_thr, | ||
| uint32_t | norm_temp_thr, | ||
| uint32_t | fan_off_thr, | ||
| uint32_t | fan_on_thr, | ||
| void * | arg | ||
| ) |
Definition at line 1059 of file ocs_mgmt.c.
| ocs_hal_global_t hal_global |