RTEMS CAN/CAN FD Stack
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
canque_ends_t Struct Reference

This structure represents place to connect edges to for CAN communication entity. The zero, one or more incoming and outgoing edges can be connected to this structure. More...

#include <can-queue.h>

Public Member Functions

 TAILQ_ENTRY (canque_ends_t) dead_peers
 This member is used to chain ends wanting for postponed destruction.
 

Public Attributes

struct canqueue_edges_list_t active [RTEMS_CAN_QUEUE_PRIO_NR]
 This member holds the array of the lists of active edges directed to the ends structure.
 
struct canqueue_edges_list_t idle
 This member holds the list of the edges directed to the ends structure with empty FIFOs.
 
struct canqueue_edges_list_t inlist
 This member holds the list of outgoing edges input sides.
 
struct canqueue_edges_list_t outlist
 This member holds the list of all incoming edges output sides. Each of there edges is listed on one of active or idle lists.
 
rtems_mutex ends_lock
 This member holds the lock synchronizing operations between threads accessing the ends.
 
void(* notify )(struct canque_ends_t *qends, struct canque_edge_t *qedge, int what)
 pointer to notify procedure. The next state changes are notified.
 

Detailed Description

This structure represents place to connect edges to for CAN communication entity. The zero, one or more incoming and outgoing edges can be connected to this structure.

Member Data Documentation

◆ notify

void(* canque_ends_t::notify) (struct canque_ends_t *qends, struct canque_edge_t *qedge, int what)

pointer to notify procedure. The next state changes are notified.

CANQUEUE_NOTIFY_EMPTY (out->in call) - all slots are processed by FIFO out side.

CANQUEUE_NOTIFY_SPACE (out->in call) - full state negated => there is space for new message.

CANQUEUE_NOTIFY_PROC (in->out call) - empty state negated => out side is requested to process slots.

CANQUEUE_NOTIFY_NOUSR (both) - notify, that the last user has released the edge usage called with some lock to prevent edge disappear.

CANQUEUE_NOTIFY_DEAD (both) - edge is in progress of deletion.

CANQUEUE_NOTIFY_ATTACH (both) - new edge has been attached to end.


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