![]() |
RTEMS 7.0-rc1
|
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_slot * | head |
| 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_slot * | free_list |
| This member holds the pointer to list of the free slots associated with queue. | |
| struct rtems_can_queue_slot * | entry |
| 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. | |
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.
| 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.