/* QLogic qedr NIC Driver * Copyright (c) 2015-2016 QLogic Corporation * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and /or other materials * provided with the distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef __QED_HSI_RDMA__ #define __QED_HSI_RDMA__ #include <linux/qed/rdma_common.h> /* rdma completion notification queue element */ struct rdma_cnqe { … }; struct rdma_cqe_responder { … }; struct rdma_cqe_requester { … }; struct rdma_cqe_common { … }; /* rdma completion queue element */ rdma_cqe; /* * CQE requester status enumeration */ enum rdma_cqe_requester_status_enum { … }; /* CQE responder status enumeration */ enum rdma_cqe_responder_status_enum { … }; /* CQE type enumeration */ enum rdma_cqe_type { … }; struct rdma_sq_sge { … }; struct rdma_rq_sge { … }; struct rdma_srq_wqe_header { … }; struct rdma_srq_sge { … }; rdma_srq_elm; /* Rdma doorbell data for flags update */ struct rdma_pwm_flags_data { … }; /* Rdma doorbell data for SQ and RQ */ struct rdma_pwm_val16_data { … }; rdma_pwm_val16_data_union; /* Rdma doorbell data for CQ */ struct rdma_pwm_val32_data { … }; /* DIF Block size options */ enum rdma_dif_block_size { … }; /* DIF CRC initial value */ enum rdma_dif_crc_seed { … }; /* RDMA DIF Error Result Structure */ struct rdma_dif_error_result { … }; /* DIF IO direction */ enum rdma_dif_io_direction_flg { … }; struct rdma_dif_params { … }; struct rdma_sq_atomic_wqe { … }; /* First element (16 bytes) of atomic wqe */ struct rdma_sq_atomic_wqe_1st { … }; /* Second element (16 bytes) of atomic wqe */ struct rdma_sq_atomic_wqe_2nd { … }; /* Third element (16 bytes) of atomic wqe */ struct rdma_sq_atomic_wqe_3rd { … }; struct rdma_sq_bind_wqe { … }; /* First element (16 bytes) of bind wqe */ struct rdma_sq_bind_wqe_1st { … }; /* Second element (16 bytes) of bind wqe */ struct rdma_sq_bind_wqe_2nd { … }; /* Third element (16 bytes) of bind wqe */ struct rdma_sq_bind_wqe_3rd { … }; /* Structure with only the SQ WQE common * fields. Size is of one SQ element (16B) */ struct rdma_sq_common_wqe { … }; struct rdma_sq_fmr_wqe { … }; /* First element (16 bytes) of fmr wqe */ struct rdma_sq_fmr_wqe_1st { … }; /* Second element (16 bytes) of fmr wqe */ struct rdma_sq_fmr_wqe_2nd { … }; struct rdma_sq_local_inv_wqe { … }; struct rdma_sq_rdma_wqe { … }; /* First element (16 bytes) of rdma wqe */ struct rdma_sq_rdma_wqe_1st { … }; /* Second element (16 bytes) of rdma wqe */ struct rdma_sq_rdma_wqe_2nd { … }; /* SQ WQE req type enumeration */ enum rdma_sq_req_type { … }; struct rdma_sq_send_wqe { … }; struct rdma_sq_send_wqe_1st { … }; struct rdma_sq_send_wqe_2st { … }; #endif /* __QED_HSI_RDMA__ */