linux/drivers/infiniband/hw/efa/efa_io_defs.h

/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
/*
 * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All rights reserved.
 */

#ifndef _EFA_IO_H_
#define _EFA_IO_H_

#define EFA_IO_TX_DESC_NUM_BUFS
#define EFA_IO_TX_DESC_NUM_RDMA_BUFS
#define EFA_IO_TX_DESC_INLINE_MAX_SIZE
#define EFA_IO_TX_DESC_IMM_DATA_SIZE

enum efa_io_queue_type {};

enum efa_io_send_op_type {};

enum efa_io_comp_status {};

struct efa_io_tx_meta_desc {};

/*
 * Tx queue buffer descriptor, for any transport type. Preceded by metadata
 * descriptor.
 */
struct efa_io_tx_buf_desc {};

struct efa_io_remote_mem_addr {};

struct efa_io_rdma_req {};

/*
 * Tx WQE, composed of tx meta descriptors followed by either tx buffer
 * descriptors or inline data
 */
struct efa_io_tx_wqe {};

/*
 * Rx buffer descriptor; RX WQE is composed of one or more RX buffer
 * descriptors.
 */
struct efa_io_rx_desc {};

/* Common IO completion descriptor */
struct efa_io_cdesc_common {};

/* Tx completion descriptor */
struct efa_io_tx_cdesc {};

/* Rx Completion Descriptor */
struct efa_io_rx_cdesc {};

/* Rx Completion Descriptor RDMA write info */
struct efa_io_rx_cdesc_rdma_write {};

/* Extended Rx Completion Descriptor */
struct efa_io_rx_cdesc_ex {};

/* tx_meta_desc */
#define EFA_IO_TX_META_DESC_OP_TYPE_MASK
#define EFA_IO_TX_META_DESC_HAS_IMM_MASK
#define EFA_IO_TX_META_DESC_INLINE_MSG_MASK
#define EFA_IO_TX_META_DESC_META_EXTENSION_MASK
#define EFA_IO_TX_META_DESC_META_DESC_MASK
#define EFA_IO_TX_META_DESC_PHASE_MASK
#define EFA_IO_TX_META_DESC_FIRST_MASK
#define EFA_IO_TX_META_DESC_LAST_MASK
#define EFA_IO_TX_META_DESC_COMP_REQ_MASK

/* tx_buf_desc */
#define EFA_IO_TX_BUF_DESC_LKEY_MASK

/* rx_desc */
#define EFA_IO_RX_DESC_LKEY_MASK
#define EFA_IO_RX_DESC_FIRST_MASK
#define EFA_IO_RX_DESC_LAST_MASK

/* cdesc_common */
#define EFA_IO_CDESC_COMMON_PHASE_MASK
#define EFA_IO_CDESC_COMMON_Q_TYPE_MASK
#define EFA_IO_CDESC_COMMON_HAS_IMM_MASK
#define EFA_IO_CDESC_COMMON_OP_TYPE_MASK

#endif /* _EFA_IO_H_ */