RTEMS 7.0-rc1
Loading...
Searching...
No Matches
Data Fields
rtems_can_queue_fifo Struct Reference

This structure represents CAN FIFO queue. It is implemented as a single linked list of slots prepared for processing. The empty slots are stored in single linked list. More...

#include <can-queue.h>

Data Fields

atomic_uint fifo_flags
 This field holds global flags describing state of the FIFO.
 
unsigned int out_taken
 This member holds the number of elements in the fifo.
 
unsigned long error_code
 This member holds futher description of error condition.
 
struct rtems_can_queue_slothead
 This member holds the pointer to the FIFO head, oldest slot.
 
struct rtems_can_queue_slot ** tail
 This member holds the pointer to the location, where pointer to newly inserted slot should be added.
 
struct rtems_can_queue_slotfree_list
 This member holds the pointer to list of the free slots associated with queue.
 
struct rtems_can_queue_slotentry
 This member holds the pointer to the memory allocated for the list slots.
 
int max_data_length
 This member holds maximum data length of one CAN frame.
 
int allocated_slot_count
 This member holds the number of allocated slots.
 
rtems_mutex fifo_lock
 This member holds the lock to ensure atomicity of slot manipulation operations.
 

Detailed Description

This structure represents CAN FIFO queue. It is implemented as a single linked list of slots prepared for processing. The empty slots are stored in single linked list.

Field Documentation

◆ out_taken

unsigned int rtems_can_queue_fifo::out_taken

This member holds the number of elements in the fifo.

This is only the number of slots taken on the out side which processing has not been finished by chip driver (or copy to user in another direction). These has to be accounted because FIFI is not empty even that there are no slots on the linked list. Only when all slots taken by out side are processed then it can be signaled as empty.


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