linux/include/uapi/rdma/siw-abi.h

/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause */

/* Authors: Bernard Metzler <[email protected]> */
/* Copyright (c) 2008-2019, IBM Corporation */

#ifndef _SIW_USER_H
#define _SIW_USER_H

#include <linux/types.h>

#define SIW_NODE_DESC_COMMON
#define SIW_ABI_VERSION
#define SIW_MAX_SGE
#define SIW_UOBJ_MAX_KEY
#define SIW_INVAL_UOBJ_KEY

struct siw_uresp_create_cq {};

struct siw_uresp_create_qp {};

struct siw_ureq_reg_mr {};

struct siw_uresp_reg_mr {};

struct siw_uresp_create_srq {};

struct siw_uresp_alloc_ctx {};

enum siw_opcode {};

/* Keep it same as ibv_sge to allow for memcpy */
struct siw_sge {};

/*
 * Inline data are kept within the work request itself occupying
 * the space of sge[1] .. sge[n]. Therefore, inline data cannot be
 * supported if SIW_MAX_SGE is below 2 elements.
 */
#define SIW_MAX_INLINE

#if SIW_MAX_SGE < 2
#error "SIW_MAX_SGE must be at least 2"
#endif

enum siw_wqe_flags {};

/* Send Queue Element */
struct siw_sqe {};

/* Receive Queue Element */
struct siw_rqe {};

enum siw_notify_flags {};

enum siw_wc_status {};

struct siw_cqe {};

/*
 * Shared structure between user and kernel
 * to control CQ arming.
 */
struct siw_cq_ctrl {};
#endif