2 * RDMA device: Definitions of Backend Device structures
4 * Copyright (C) 2018 Oracle
5 * Copyright (C) 2018 Red Hat Inc
8 * Yuval Shaia <yuval.shaia@oracle.com>
9 * Marcel Apfelbaum <marcel@redhat.com>
11 * This work is licensed under the terms of the GNU GPL, version 2 or later.
12 * See the COPYING file in the top-level directory.
16 #ifndef RDMA_BACKEND_DEFS_H
17 #define RDMA_BACKEND_DEFS_H
19 #include <infiniband/verbs.h>
20 #include "qemu/thread.h"
22 typedef struct RdmaDeviceResources RdmaDeviceResources
;
24 typedef struct RdmaBackendThread
{
30 typedef struct RdmaBackendDev
{
31 struct ibv_device_attr dev_attr
;
32 RdmaBackendThread comp_thread
;
35 RdmaDeviceResources
*rdma_dev_res
;
36 struct ibv_device
*ib_dev
;
37 struct ibv_context
*context
;
38 struct ibv_comp_channel
*channel
;
40 uint8_t backend_gid_idx
;
43 typedef struct RdmaBackendPD
{
47 typedef struct RdmaBackendMR
{
52 typedef struct RdmaBackendCQ
{
53 RdmaBackendDev
*backend_dev
;
57 typedef struct RdmaBackendQP
{