#ifndef _HFI1_USER_SDMA_H
#define _HFI1_USER_SDMA_H
#include <linux/device.h>
#include <linux/wait.h>
#include "common.h"
#include "iowait.h"
#include "user_exp_rcv.h"
#include "mmu_rb.h"
#include "pinning.h"
#include "sdma.h"
#define MAX_VECTORS_PER_REQ …
#define MAX_PKTS_PER_QUEUE …
#define num_pages(x) …
#define req_opcode(x) …
#define req_version(x) …
#define req_iovcnt(x) …
#define BTH_SEQ_MASK …
#define AHG_KDETH_INTR_SHIFT …
#define AHG_KDETH_SH_SHIFT …
#define AHG_KDETH_ARRAY_SIZE …
#define PBC2LRH(x) …
#define LRH2PBC(x) …
static inline int ahg_header_set(u32 *arr, int idx, size_t array_size,
u8 dw, u8 bit, u8 width, u16 value)
{ … }
#define TXREQ_FLAGS_REQ_ACK …
#define TXREQ_FLAGS_REQ_DISABLE_SH …
enum pkt_q_sdma_state { … };
#define SDMA_IOWAIT_TIMEOUT …
#define SDMA_DBG(req, fmt, ...) …
struct hfi1_user_sdma_pkt_q { … };
struct hfi1_user_sdma_comp_q { … };
struct user_sdma_iovec { … };
struct evict_data { … };
struct user_sdma_request { … } ____cacheline_aligned_in_smp;
struct user_sdma_txreq { … };
int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt,
struct hfi1_filedata *fd);
int hfi1_user_sdma_free_queues(struct hfi1_filedata *fd,
struct hfi1_ctxtdata *uctxt);
int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
struct iovec *iovec, unsigned long dim,
unsigned long *count);
#endif