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