13#ifndef ZEPHYR_VIRTIO_VIRTIO_H_
14#define ZEPHYR_VIRTIO_VIRTIO_H_
47 void *(*get_device_specific_config)(
const struct device *dev);
93 return DEVICE_API_GET(virtio, dev)->get_device_specific_config(dev);
105 return DEVICE_API_GET(virtio, dev)->read_device_feature_bit(dev, bit);
118 return DEVICE_API_GET(virtio, dev)->write_driver_feature_bit(dev, bit, value);
144 return DEVICE_API_GET(virtio, dev)->init_virtqueues(dev, num_queues, cb, opaque);
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1375
static void * virtio_get_device_specific_config(const struct device *dev)
Returns device specific config.
Definition virtio.h:91
static void virtio_finalize_init(const struct device *dev)
Finalizes initialization of the virtio device.
Definition virtio.h:152
static struct virtq * virtio_get_virtqueue(const struct device *dev, uint16_t queue_idx)
Returns virtqueue at given idx.
Definition virtio.h:65
static bool virtio_read_device_feature_bit(const struct device *dev, int bit)
Returns feature bit offered by virtio device.
Definition virtio.h:103
static int virtio_commit_feature_bits(const struct device *dev)
Commits feature bits.
Definition virtio.h:127
static int virtio_write_driver_feature_bit(const struct device *dev, int bit, bool value)
Sets feature bit.
Definition virtio.h:116
uint16_t(* virtio_enumerate_queues)(uint16_t queue_idx, uint16_t max_queue_size, void *opaque)
Callback used during virtqueue enumeration.
Definition virtio.h:37
static void virtio_notify_virtqueue(const struct device *dev, uint16_t queue_idx)
Notifies virtqueue.
Definition virtio.h:80
static int virtio_init_virtqueues(const struct device *dev, uint16_t num_queues, virtio_enumerate_queues cb, void *opaque)
Initializes virtqueues.
Definition virtio.h:141
#define bool
Definition stdbool.h:13
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Virtio api structure.
Definition virtio.h:44
void(* finalize_init)(const struct device *dev)
Definition virtio.h:55
void(* notify_virtqueue)(const struct device *dev, uint16_t queue_idx)
Definition virtio.h:46
bool(* read_device_feature_bit)(const struct device *dev, int bit)
Definition virtio.h:48
int(* commit_feature_bits)(const struct device *dev)
Definition virtio.h:50
int(* init_virtqueues)(const struct device *dev, uint16_t num_queues, virtio_enumerate_queues cb, void *opaque)
Definition virtio.h:51
int(* write_driver_feature_bit)(const struct device *dev, int bit, bool value)
Definition virtio.h:49
virtqueue
Definition virtqueue.h:148