2026-01-29 22:25:33 +08:00

52 lines
2.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2021 - 2023, Shanghai Yunsilicon Technology Co., Ltd.
* All rights reserved.
*/
#ifndef XSC_IB_COMPAT_H
#define XSC_IB_COMPAT_H
/*
* adaptive to different ib_core versions
*/
struct xsc_ib_ucontext;
int xsc_ib_create_ah(struct ib_ah *ibah, struct rdma_ah_init_attr *ah_attr,
struct ib_udata *udata);
int xsc_ib_destroy_ah(struct ib_ah *ibah, u32 destroy_flags);
#define xsc_ib_create_ah_def() int xsc_ib_create_ah(\
struct ib_ah *ibah, struct rdma_ah_init_attr *init_attr, struct ib_udata *udata)
#define xsc_ib_destroy_ah_def() int xsc_ib_destroy_ah(struct ib_ah *ah, u32 flags)
int xsc_ib_destroy_qp(struct ib_qp *qp, struct ib_udata *udata);
int xsc_ib_create_cq(struct ib_cq *ibcq,
const struct ib_cq_init_attr *attr,
struct ib_udata *udata);
int xsc_ib_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
// from main.c static functions
int xsc_ib_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata);
void xsc_ib_dealloc_ucontext(struct ib_ucontext *ibcontext);
int xsc_ib_alloc_pd(struct ib_pd *ibpd, struct ib_udata *udata);
int xsc_ib_dealloc_pd(struct ib_pd *pd, struct ib_udata *udata);
int xsc_ib_destroy_cq(struct ib_cq *cq, struct ib_udata *udata);
struct ib_mr *xsc_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type, u32 max_num_sg);
#define xsc_ib_alloc_mr_def() struct ib_mr *xsc_ib_alloc_mr(\
struct ib_pd *pd, enum ib_mr_type mr_type, u32 max_num_sg)
#define xsc_ib_destroy_qp_def() int xsc_ib_destroy_qp(struct ib_qp *qp, struct ib_udata *udata)
#define xsc_ib_create_cq_def() int xsc_ib_create_cq(struct ib_cq *ibcq,\
const struct ib_cq_init_attr *attr, struct ib_udata *udata)
#define xsc_ib_destroy_cq_def() int xsc_ib_destroy_cq(struct ib_cq *cq, struct ib_udata *udata)
#define xsc_ib_dereg_mr_def() int xsc_ib_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata)
#define xsc_ib_alloc_ucontext_def() int xsc_ib_alloc_ucontext(\
struct ib_ucontext *uctx, struct ib_udata *udata)
#define xsc_ib_dealloc_ucontext_def() void xsc_ib_dealloc_ucontext(struct ib_ucontext *ibcontext)
#define xsc_ib_alloc_pd_def() int xsc_ib_alloc_pd(struct ib_pd *ibpd, struct ib_udata *udata)
#define xsc_ib_dealloc_pd_def() int xsc_ib_dealloc_pd(struct ib_pd *pd, struct ib_udata *udata)
#define RET_VALUE(x) (x)
#endif