25 #ifndef DOCA_DEVEMU_VIRTIO_H_
26 #define DOCA_DEVEMU_VIRTIO_H_
43 struct doca_devemu_virtio_dev;
50 struct doca_devemu_virtio_type;
56 struct doca_devemu_virtio_io;
62 struct doca_devemu_virtio_queue_stats;
130 uint16_t *config_msix_vector);
146 uint16_t *num_queues);
179 uint16_t *num_queues);
195 uint8_t *device_status);
211 uint8_t *config_generation);
227 uint16_t *queue_size);
260 uint32_t *num_virtio_io);
278 uint32_t num_virtio_io);
388 struct doca_devemu_virtio_queue_stats ***stats_list, uint32_t *num_stats);
490 uint16_t *inflights);
static struct eth_l2_fwd_stats stats
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_size(struct doca_devemu_virtio_queue_stats *stats, uint16_t *size)
Retrieve the Virtio queue size (depth) from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_create_list(struct doca_devemu_virtio_dev *virtio_dev, struct doca_devemu_virtio_queue_stats ***stats_list, uint32_t *num_stats)
Create an empty list of statistics for Virtio device queues.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_queues(const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *num_queues)
Get the Virtio device num_queues register from common configuration structure according to Virtio spe...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_inflights(struct doca_devemu_virtio_queue_stats *stats, uint16_t *inflights)
Retrieve the number of in-flight requests for a Virtio queue from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_status(const struct doca_devemu_virtio_dev *virtio_dev, uint8_t *device_status)
Get the Virtio device_status register from common configuration structure according to Virtio specifi...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_avail_idx(struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
Retrieve the available index of a Virtio queue as seen by the driver from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_avail_idx(struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
Retrieve the available index of a Virtio queue as seen by the device from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_device_features_63_0(const struct doca_devemu_virtio_dev *virtio_dev, uint64_t *features)
Get the Virtio device_feature bits (0-63) according to Virtio specification.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_queue_size(const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *queue_size)
Get the Virtio max queue size for all Virtio queues.
void(* doca_devemu_virtio_dev_event_reset_handler_cb_t)(struct doca_devemu_virtio_dev *virtio_dev, union doca_data event_user_data)
Function to be executed on Virtio device reset. The event handler will enable users to quiesce,...
DOCA_EXPERIMENTAL struct doca_devemu_pci_dev * doca_devemu_virtio_dev_as_pci_dev(struct doca_devemu_virtio_dev *virtio_dev)
Convert DOCA Virtio device instance into DOCA devemu PCI device.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_hw_used_idx(struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
Retrieve the used index of a Virtio queue as seen by the device from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_required_running_virtio_io_ctxs(const struct doca_devemu_virtio_dev *virtio_dev, uint32_t *num_virtio_io)
Get the number of required running Virtio io context's to be bounded to the Virtio device context....
void(* doca_devemu_virtio_queue_stats_list_populate_done_cb_t)(struct doca_devemu_virtio_queue_stats **stats_list, union doca_data user_data, doca_error_t err)
Function to be executed upon finishing asynchronous population of Virtio queue statistics list.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_required_running_virtio_io_ctxs(struct doca_devemu_virtio_dev *virtio_dev, uint32_t num_virtio_io)
Set the number of required running Virtio IO context's to be bounded to the Virtio device context....
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_generation(const struct doca_devemu_virtio_dev *virtio_dev, uint8_t *config_generation)
Get the Virtio config_generation register from common configuration structure according to Virtio spe...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_queue_size(struct doca_devemu_virtio_dev *virtio_dev, uint16_t queue_size)
Set the Virtio max queue size for all Virtio queues.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_destroy_list(struct doca_devemu_virtio_queue_stats **stats_list)
Destroy a list of Virtio queue statistics structures.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_num_enabled_queues(const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *num_queues)
Get the number of enabled Virtio device queues by the driver. The driver enables a queue by setting t...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_reset_complete(struct doca_devemu_virtio_dev *virtio_dev)
Complete the Virtio device reset handling. Prior to calling this function, the user must ensure that ...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_id(struct doca_devemu_virtio_queue_stats *stats, uint16_t *id)
Retrieve the Virtio queue index from its statistics structure.
DOCA_EXPERIMENTAL struct doca_ctx * doca_devemu_virtio_dev_as_ctx(struct doca_devemu_virtio_dev *virtio_dev)
Convert DOCA Virtio device instance into DOCA context.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_driver_features_63_0(const struct doca_devemu_virtio_dev *virtio_dev, uint64_t *features)
Get the Virtio driver_feature bits (0-63) according to Virtio specification.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_device_features_63_0(struct doca_devemu_virtio_dev *virtio_dev, uint64_t features)
Set the Virtio device_feature bits (0-63) according to Virtio specification.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_populate_list(struct doca_devemu_virtio_queue_stats **stats_list, doca_devemu_virtio_queue_stats_list_populate_done_cb_t done, union doca_data user_data)
Issue an asynchronous population of a list of Virtio queue statistics structures.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_set_num_queues(struct doca_devemu_virtio_dev *virtio_dev, uint16_t num_queues)
Set the Virtio device num_queues register in common configuration structure according to Virtio speci...
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_enabled(struct doca_devemu_virtio_queue_stats *stats, uint8_t *enabled)
Retrieve the enabled status of a Virtio queue from its statistics structure.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_get_config_msix_vector(const struct doca_devemu_virtio_dev *virtio_dev, uint16_t *config_msix_vector)
Get the Virtio config_msix_vector register according to Virtio specification.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_dev_event_reset_register(struct doca_devemu_virtio_dev *virtio_dev, doca_devemu_virtio_dev_event_reset_handler_cb_t handler, union doca_data user_data)
Register to Virtio device reset event.
DOCA_EXPERIMENTAL doca_error_t doca_devemu_virtio_queue_stats_get_driver_used_idx(struct doca_devemu_virtio_queue_stats *stats, uint16_t *idx)
Retrieve the used index of a Virtio queue as seen by the driver from its statistics structure.
enum doca_error doca_error_t
DOCA API return codes.
Convenience type for representing opaque data.