/* * Copyright (c) 2018 Chelsio, Inc. All rights reserved. * * 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. */ #include <rdma/rdma_cm.h> #include "iw_cxgb4.h" #include <rdma/restrack.h> #include <uapi/rdma/rdma_netlink.h> static int fill_sq(struct sk_buff *msg, struct t4_wq *wq) { … } static int fill_rq(struct sk_buff *msg, struct t4_wq *wq) { … } static int fill_swsqe(struct sk_buff *msg, struct t4_sq *sq, u16 idx, struct t4_swsqe *sqe) { … } /* * Dump the first and last pending sqes. */ static int fill_swsqes(struct sk_buff *msg, struct t4_sq *sq, u16 first_idx, struct t4_swsqe *first_sqe, u16 last_idx, struct t4_swsqe *last_sqe) { … } int c4iw_fill_res_qp_entry(struct sk_buff *msg, struct ib_qp *ibqp) { … } union_ep; int c4iw_fill_res_cm_id_entry(struct sk_buff *msg, struct rdma_cm_id *cm_id) { … } static int fill_cq(struct sk_buff *msg, struct t4_cq *cq) { … } static int fill_cqe(struct sk_buff *msg, struct t4_cqe *cqe, u16 idx, const char *qstr) { … } static int fill_hwcqes(struct sk_buff *msg, struct t4_cq *cq, struct t4_cqe *cqes) { … } static int fill_swcqes(struct sk_buff *msg, struct t4_cq *cq, struct t4_cqe *cqes) { … } int c4iw_fill_res_cq_entry(struct sk_buff *msg, struct ib_cq *ibcq) { … } int c4iw_fill_res_mr_entry(struct sk_buff *msg, struct ib_mr *ibmr) { … }