cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

rdma_backend_defs.h (1842B)


      1/*
      2 *  RDMA device: Definitions of Backend Device structures
      3 *
      4 * Copyright (C) 2018 Oracle
      5 * Copyright (C) 2018 Red Hat Inc
      6 *
      7 * Authors:
      8 *     Yuval Shaia <yuval.shaia@oracle.com>
      9 *     Marcel Apfelbaum <marcel@redhat.com>
     10 *
     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.
     13 *
     14 */
     15
     16#ifndef RDMA_BACKEND_DEFS_H
     17#define RDMA_BACKEND_DEFS_H
     18
     19#include "qemu/thread.h"
     20#include "chardev/char-fe.h"
     21#include <infiniband/verbs.h>
     22#include "contrib/rdmacm-mux/rdmacm-mux.h"
     23#include "rdma_utils.h"
     24
     25typedef struct RdmaDeviceResources RdmaDeviceResources;
     26
     27typedef struct RdmaBackendThread {
     28    QemuThread thread;
     29    bool run; /* Set by thread manager to let thread know it should exit */
     30    bool is_running; /* Set by the thread to report its status */
     31} RdmaBackendThread;
     32
     33typedef struct RdmaCmMux {
     34    CharBackend *chr_be;
     35    int can_receive;
     36} RdmaCmMux;
     37
     38typedef struct RdmaBackendDev {
     39    RdmaBackendThread comp_thread;
     40    PCIDevice *dev;
     41    RdmaDeviceResources *rdma_dev_res;
     42    struct ibv_device *ib_dev;
     43    struct ibv_context *context;
     44    struct ibv_comp_channel *channel;
     45    uint8_t port_num;
     46    RdmaProtectedGQueue recv_mads_list;
     47    RdmaCmMux rdmacm_mux;
     48} RdmaBackendDev;
     49
     50typedef struct RdmaBackendPD {
     51    struct ibv_pd *ibpd;
     52} RdmaBackendPD;
     53
     54typedef struct RdmaBackendMR {
     55    struct ibv_pd *ibpd;
     56    struct ibv_mr *ibmr;
     57} RdmaBackendMR;
     58
     59typedef struct RdmaBackendCQ {
     60    RdmaBackendDev *backend_dev;
     61    struct ibv_cq *ibcq;
     62} RdmaBackendCQ;
     63
     64typedef struct RdmaBackendQP {
     65    struct ibv_pd *ibpd;
     66    struct ibv_qp *ibqp;
     67    uint8_t sgid_idx;
     68    RdmaProtectedGSList cqe_ctx_list;
     69} RdmaBackendQP;
     70
     71typedef struct RdmaBackendSRQ {
     72    struct ibv_srq *ibsrq;
     73    RdmaProtectedGSList cqe_ctx_list;
     74} RdmaBackendSRQ;
     75
     76#endif