Lely core libraries  2.2.5
io_vcan_chan Struct Reference

The implementation of a virtual CAN channel. More...

Collaboration diagram for io_vcan_chan:

Data Fields

const struct io_dev_vtbldev_vptr
 A pointer to the virtual table for the I/O device interface.
 
const struct io_can_chan_vtblchan_vptr
 A pointer to the virtual table for the CAN channel interface.
 
struct io_svc svc
 The I/O service representing the channel.
 
io_ctx_tctx
 A pointer to the I/O context with which the channel is registered.
 
ev_exec_texec
 A pointer to the executor used to execute all I/O tasks.
 
struct ev_task read_task
 The task responsible for initiating read operations.
 
struct ev_task write_task
 The task responsible for initiating write operations.
 
struct spscring rxring
 The ring buffer used to control the receive queue.
 
struct io_vcan_framerxbuf
 The receive queue.
 
mtx_t mtx
 The mutex protecting the channel and the queues of pending operations.
 
cnd_t cond
 The condition variable used to wake up blocked synchronous read operations.
 
io_can_ctrl_tctrl
 A pointer to the virtual CAN controller with which this channel is registered.
 
struct slnode node
 The node of the channel in the list of the virtual CAN controller. More...
 
unsigned shutdown: 1
 A flag indicating whether the I/O service has been shut down.
 
unsigned stopped: 1
 A flag indicating the virtual CAN controller is stopped.
 
unsigned read_posted: 1
 A flag indicating whether read_task has been posted to exec.
 
unsigned write_posted: 1
 A flag indicating whether write_task has been posted to exec.
 
struct sllist read_queue
 The queue containing pending read operations.
 
struct sllist write_queue
 The queue containing pending write operations.
 
struct ev_taskcurrent_write
 The write operation currently being executed.
 

Detailed Description

The implementation of a virtual CAN channel.

Definition at line 175 of file vcan.c.

Field Documentation

◆ node

struct slnode io_vcan_chan::node

The node of the channel in the list of the virtual CAN controller.

node is protected by the mutex in io_vcan_ctrl.

Definition at line 210 of file vcan.c.


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