#include <devices/pci.h>
-/*
-#ifndef DEBUG_VIRTIO_BLK
+
+#ifndef CONFIG_DEBUG_VIRTIO_BLK
#undef PrintDebug
#define PrintDebug(fmt, args...)
#endif
-*/
+
#define BLK_CAPACITY_PORT 20
#define BLK_MAX_SIZE_PORT 28
return 0;
}
-static int virtio_io_write(uint16_t port, void * src, uint_t length, struct vm_device * dev) {
+static int virtio_io_write(uint16_t port, void * src, uint_t length, void * private_data) {
+ struct vm_device * dev = (struct vm_device *)private_data;
struct virtio_blk_state * virtio = (struct virtio_blk_state *)dev->private_data;
int port_idx = port % virtio->io_range_size;
}
-static int virtio_io_read(uint16_t port, void * dst, uint_t length, struct vm_device * dev) {
+static int virtio_io_read(uint16_t port, void * dst, uint_t length, void * private_data) {
+ struct vm_device * dev = (struct vm_device *)private_data;
struct virtio_blk_state * virtio = (struct virtio_blk_state *)dev->private_data;
int port_idx = port % virtio->io_range_size;
bars[0].io_read = virtio_io_read;
bars[0].io_write = virtio_io_write;
+ bars[0].private_data = dev;
pci_dev = v3_pci_register_device(pci_bus, PCI_STD_DEVICE,
0, PCI_AUTO_DEV_NUM, 0,