![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
The Base class of a Port. More...
#include <virtio_net.h>
Public Member Functions | |
| void | reset () override |
| reset callback, called for doing a device reset | |
| int | reconfig_queue (unsigned index) override |
| callback for client queue-config request | |
| bool | check_features () override |
| callback for checking the subset of accepted features | |
| bool | check_queues () override |
| Check whether both virtqueues are ready. | |
| void | register_single_driver_irq () override |
| Save the _kick_guest_irq that the client sent via device_notification_irq(). | |
| void | trigger_driver_config_irq () override |
| callback for triggering configuration change notification IRQ | |
| void | notify_queue (L4virtio::Svr::Virtqueue *queue) |
| Trigger the _kick_guest_irq IRQ. | |
| Virtqueue * | tx_q () |
| Getter for the transmission queue. | |
| Virtqueue * | rx_q () |
| Getter for the receive queue. | |
| Virtqueue const * | tx_q () const |
| Getter for the transmission queue. | |
| Virtqueue const * | rx_q () const |
| Getter for the receive queue. | |
| Public Member Functions inherited from L4virtio::Svr::Device_t< No_custom_data > | |
| virtual void | cfg_changed (unsigned) |
| callback for client device configuration changes | |
| 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. | |
| Public Member Functions inherited from L4::Epiface_t0< L4virtio::Device, L4::Epiface > | |
| Type_info::Demand | get_buffer_demand () const |
| Get the server-side buffer demand based in IFACE. | |
| Cap< L4virtio::Device > | obj_cap () const |
| Get the (typed) capability to this object. | |
| Public Member Functions inherited from L4::Epiface | |
| Epiface () | |
| Make a server object. | |
| virtual | ~Epiface ()=0 |
| Destroy the object. | |
| Stored_cap | obj_cap () const |
| Get the capability to the kernel object belonging to this object. | |
| Server_iface * | server_iface () const |
| Get pointer to server interface at which the object is currently registered. | |
| int | set_server (Server_iface *srv, Cap< void > cap, bool managed=false) |
| Set server registration info for the object. | |
| void | set_obj_cap (Cap< void > const &cap) |
| Deprecated server registration function. | |
Additional Inherited Members | |
| Public Types inherited from L4::Epiface_t0< L4virtio::Device, L4::Epiface > | |
| typedef L4virtio::Device | Interface |
| Data type of the IPC interface definition. | |
| Public Types inherited from L4::Epiface | |
| typedef Ipc_svr::Server_iface | Server_iface |
| Type for abstract server interface. | |
| typedef Ipc_svr::Server_iface::Demand | Demand |
| Type for server-side receive buffer demand. | |
| Protected Attributes inherited from L4virtio::Svr::Device_t< No_custom_data > | |
| Mem_list | _mem_info |
| Memory region list. | |
The Base class of a Port.
This class provides the Virtio network protocol specific implementation aspects of a port.
Virtio_net comprises the virtqueues for both, the incoming and the outgoing network requests:
The transmission queue, containing requests to be transmitted to other ports. The transmission queue is filled by the client, this port relates to.
The receive queue, containing requests that have been transmitted from other ports. The receive queue is filled by the switch.
Definition at line 71 of file virtio_net.h.
|
inline |
Trigger the _kick_guest_irq IRQ.
This function gets called on the receiving port, when a request was successfully transmitted by the switch.
Definition at line 269 of file virtio_net.h.
References L4VIRTIO_IRQ_STATUS_VRING.