xref: /qemu/tests/qtest/libqos/virtio-blk.h (revision a2ce7dbd917a18408cf4bfd132578b46c2752a72)
1a3713493SEmanuele Giuseppe Esposito /*
2a3713493SEmanuele Giuseppe Esposito  * libqos driver framework
3a3713493SEmanuele Giuseppe Esposito  *
4a3713493SEmanuele Giuseppe Esposito  * Copyright (c) 2018 Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
5a3713493SEmanuele Giuseppe Esposito  *
6a3713493SEmanuele Giuseppe Esposito  * This library is free software; you can redistribute it and/or
7a3713493SEmanuele Giuseppe Esposito  * modify it under the terms of the GNU Lesser General Public
8dc0ad02dSThomas Huth  * License version 2.1 as published by the Free Software Foundation.
9a3713493SEmanuele Giuseppe Esposito  *
10a3713493SEmanuele Giuseppe Esposito  * This library is distributed in the hope that it will be useful,
11a3713493SEmanuele Giuseppe Esposito  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12a3713493SEmanuele Giuseppe Esposito  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13a3713493SEmanuele Giuseppe Esposito  * Lesser General Public License for more details.
14a3713493SEmanuele Giuseppe Esposito  *
15a3713493SEmanuele Giuseppe Esposito  * You should have received a copy of the GNU Lesser General Public
16a3713493SEmanuele Giuseppe Esposito  * License along with this library; if not, see <http://www.gnu.org/licenses/>
17a3713493SEmanuele Giuseppe Esposito  */
18a3713493SEmanuele Giuseppe Esposito 
19f91005e1SMarkus Armbruster #ifndef TESTS_LIBQOS_VIRTIO_BLK_H
20f91005e1SMarkus Armbruster #define TESTS_LIBQOS_VIRTIO_BLK_H
21f91005e1SMarkus Armbruster 
22*a2ce7dbdSPaolo Bonzini #include "qgraph.h"
23*a2ce7dbdSPaolo Bonzini #include "virtio.h"
24*a2ce7dbdSPaolo Bonzini #include "virtio-pci.h"
25a3713493SEmanuele Giuseppe Esposito 
26a3713493SEmanuele Giuseppe Esposito typedef struct QVirtioBlk QVirtioBlk;
27a3713493SEmanuele Giuseppe Esposito typedef struct QVirtioBlkPCI QVirtioBlkPCI;
28a3713493SEmanuele Giuseppe Esposito typedef struct QVirtioBlkDevice QVirtioBlkDevice;
29a3713493SEmanuele Giuseppe Esposito 
30a3713493SEmanuele Giuseppe Esposito /* virtqueue is created in each test */
31a3713493SEmanuele Giuseppe Esposito struct QVirtioBlk {
32a3713493SEmanuele Giuseppe Esposito     QVirtioDevice *vdev;
33a3713493SEmanuele Giuseppe Esposito };
34a3713493SEmanuele Giuseppe Esposito 
35a3713493SEmanuele Giuseppe Esposito struct QVirtioBlkPCI {
36a3713493SEmanuele Giuseppe Esposito     QVirtioPCIDevice pci_vdev;
37a3713493SEmanuele Giuseppe Esposito     QVirtioBlk blk;
38a3713493SEmanuele Giuseppe Esposito };
39a3713493SEmanuele Giuseppe Esposito 
40a3713493SEmanuele Giuseppe Esposito struct QVirtioBlkDevice {
41a3713493SEmanuele Giuseppe Esposito     QOSGraphObject obj;
42a3713493SEmanuele Giuseppe Esposito     QVirtioBlk blk;
43a3713493SEmanuele Giuseppe Esposito };
44f91005e1SMarkus Armbruster 
45f91005e1SMarkus Armbruster #endif
46