L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4virtio::Svr::Virtio_spi< Spi_request_handler, Epiface >::Request_processor Class Reference

Handler for the Virtio requests. More...

#include <virtio-spi-device>

Inheritance diagram for L4virtio::Svr::Virtio_spi< Spi_request_handler, Epiface >::Request_processor:
Collaboration diagram for L4virtio::Svr::Virtio_spi< Spi_request_handler, Epiface >::Request_processor:

Public Member Functions

Spi_transfer_req get_request ()
 Linux prepares the SPI request in three or four data parts: 1st: transfer_head 2nd: TX buffer (not present for RX half-duplex transfers) 3rd: RX buffer (not present for TX half-duplex transfers) 4th: transfer result.
Public Member Functions inherited from L4virtio::Svr::Request_processor
template<typename DESC_MAN, typename ... ARGS>
void start (DESC_MAN *dm, Virtqueue *ring, Virtqueue::Head_desc const &request, ARGS... args)
 Start processing a new request.
template<typename DESC_MAN, typename ... ARGS>
Virtqueue::Request const & start (DESC_MAN *dm, Virtqueue::Request const &request, ARGS... args)
 Start processing a new request.
Virtqueue::Desc::Flags current_flags () const
 Get the flags of the currently processed descriptor.
bool has_more () const
 Are there more chained descriptors?
template<typename DESC_MAN, typename ... ARGS>
bool next (DESC_MAN *dm, ARGS... args)
 Switch to the next descriptor in a descriptor chain.

Detailed Description

template<typename Spi_request_handler, typename Epiface = L4virtio::Device>
class L4virtio::Svr::Virtio_spi< Spi_request_handler, Epiface >::Request_processor

Handler for the Virtio requests.

Definition at line 134 of file virtio-spi-device.

Member Function Documentation

◆ get_request()

template<typename Spi_request_handler, typename Epiface = L4virtio::Device>
Spi_transfer_req L4virtio::Svr::Virtio_spi< Spi_request_handler, Epiface >::Request_processor::get_request ( )
inline

Linux prepares the SPI request in three or four data parts: 1st: transfer_head 2nd: TX buffer (not present for RX half-duplex transfers) 3rd: RX buffer (not present for TX half-duplex transfers) 4th: transfer result.

This parses the three/four Data_buffers and recreates the virtio_spi_transfer_req structure.

Definition at line 184 of file virtio-spi-device.

References L4virtio::Svr::Request_processor::current_flags(), L4virtio::Svr::Request_processor::has_more(), L4_EIO, L4virtio::Svr::Request_processor::next(), and L4Re::throw_error().

Here is the call graph for this function:

The documentation for this class was generated from the following file: