xref: /openbmc/qemu/hw/block/dataplane/xen-block.h (revision f89f54d52bf8fdc6de1c90367f9bdd65e40fa382)
1fcab2b46SPaul Durrant /*
2fcab2b46SPaul Durrant  * Copyright (c) 2018  Citrix Systems Inc.
3fcab2b46SPaul Durrant  *
4fcab2b46SPaul Durrant  * This work is licensed under the terms of the GNU GPL, version 2 or later.
5fcab2b46SPaul Durrant  * See the COPYING file in the top-level directory.
6fcab2b46SPaul Durrant  */
7fcab2b46SPaul Durrant 
8fcab2b46SPaul Durrant #ifndef HW_BLOCK_DATAPLANE_XEN_BLOCK_H
9fcab2b46SPaul Durrant #define HW_BLOCK_DATAPLANE_XEN_BLOCK_H
10fcab2b46SPaul Durrant 
11fcab2b46SPaul Durrant #include "hw/block/block.h"
12fcab2b46SPaul Durrant #include "hw/xen/xen-bus.h"
13fcab2b46SPaul Durrant #include "sysemu/iothread.h"
14fcab2b46SPaul Durrant 
15f3b604e3SPaul Durrant typedef struct XenBlockDataPlane XenBlockDataPlane;
16fcab2b46SPaul Durrant 
17fcab2b46SPaul Durrant XenBlockDataPlane *xen_block_dataplane_create(XenDevice *xendev,
185feeb718SPaul Durrant                                               BlockBackend *blk,
195feeb718SPaul Durrant                                               unsigned int sector_size,
20fcab2b46SPaul Durrant                                               IOThread *iothread);
21fcab2b46SPaul Durrant void xen_block_dataplane_destroy(XenBlockDataPlane *dataplane);
22fcab2b46SPaul Durrant void xen_block_dataplane_start(XenBlockDataPlane *dataplane,
23fcab2b46SPaul Durrant                                const unsigned int ring_ref[],
24fcab2b46SPaul Durrant                                unsigned int nr_ring_ref,
25fcab2b46SPaul Durrant                                unsigned int event_channel,
26fcab2b46SPaul Durrant                                unsigned int protocol,
27fcab2b46SPaul Durrant                                Error **errp);
28fcab2b46SPaul Durrant void xen_block_dataplane_stop(XenBlockDataPlane *dataplane);
29*f6eac904SStefan Hajnoczi void xen_block_dataplane_attach(XenBlockDataPlane *dataplane);
30*f6eac904SStefan Hajnoczi void xen_block_dataplane_detach(XenBlockDataPlane *dataplane);
31fcab2b46SPaul Durrant 
32fcab2b46SPaul Durrant #endif /* HW_BLOCK_DATAPLANE_XEN_BLOCK_H */
33