Lely core libraries 2.3.4
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.
 
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 178 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 218 of file vcan.c.


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