|
virtual void | reset ()=0 |
| reset callback, called for doing a device reset
|
virtual bool | check_features () |
| callback for checking the subset of accepted features
|
virtual bool | check_queues ()=0 |
| callback for checking if the queues at DRIVER_OK transition
|
virtual int | reconfig_queue (unsigned idx)=0 |
| callback for client queue-config request
|
virtual void | cfg_changed (unsigned) |
| callback for client device configuration changes
|
virtual void | register_single_driver_irq () |
| callback for registering a single guest IRQ for all queues (old-style)
|
virtual void | trigger_driver_config_irq ()=0 |
| callback for triggering configuration change notification IRQ
|
virtual L4::Cap< L4::Irq > | device_notify_irq () const |
| callback to gather the device notification IRQ (old-style)
|
virtual void | register_driver_irq (unsigned idx) |
| Callback for registering an notification IRQ (multi IRQ).
|
virtual L4::Cap< L4::Irq > | device_notify_irq (unsigned idx) |
| Callback to gather the device notification IRQ (multi IRQ).
|
virtual unsigned | num_events_supported () const |
| Return the highest notification index supported.
|
| Device_t (Dev_config *dev_config) |
| Make a device for the given config.
|
Mem_list const * | mem_info () const |
| Get the memory region list used for this device.
|
void | reset_queue_config (unsigned idx, unsigned num_max, bool inc_generation=false) |
| Trigger reset for the configuration space for queue idx.
|
void | init_mem_info (unsigned num) |
| Initialize the memory region list to the given maximum.
|
void | device_error () |
| Transition device into DEVICE_NEEDS_RESET state.
|
bool | setup_queue (Virtqueue *q, unsigned qn, unsigned num_max) |
| Enable/disable the specified queue.
|
bool | handle_mem_cmd_write () |
| Check for a value in the cmd register and handle a write.
|
void | enable_trusted_ds_validation () |
| Enable trusted dataspace validation.
|
void | add_trusted_dataspaces (std::shared_ptr< Ds_vector const > ds) |
| Provide a list of trusted dataspaces that can be used for validation.
|
template<typename DATA>
class L4virtio::Svr::Device_t< DATA >
Server-side L4-VIRTIO device stub.
This stub supports new-style multi-event registration (using get_device_config(), bind() and get_device_notification_irq()).
Definition at line 801 of file l4virtio.
Transition device into DEVICE_NEEDS_RESET state.
This function does a full reset, sets the DEVICE_NEEDS_RESET bit in the device status register, triggering a guest config IRQ if necessary. The driver still needs to perform its own reset and initialization sequence.
Definition at line 1024 of file l4virtio.
Referenced by Virtio_switch::handle_l4virtio_port_tx().
Check for a value in the cmd register and handle a write.
This function checks for a value in the cmd register and executes the command if there is any, or returns false if there was no command.
Execution of the command is signaled by a zero in the cmd register.
Definition at line 1154 of file l4virtio.