X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/c29d86ce91159cc6ddcb4266903f0aafe9992e01..cb551cc1582f3b51cf17e80730bee3c2f0701c3f:/lincan/include/can_queue.h diff --git a/lincan/include/can_queue.h b/lincan/include/can_queue.h index 8821dca..107074c 100644 --- a/lincan/include/can_queue.h +++ b/lincan/include/can_queue.h @@ -1,7 +1,7 @@ #ifndef _CAN_QUEUE_H #define _CAN_QUEUE_H -#include "./can.h" +#include "./canmsg.h" #include "./constants.h" #include "./can_sysdep.h" @@ -39,7 +39,7 @@ * @flist: pointer to list of the free slots associated with queue * @entry: pointer to the memory allocated for the list slots. * @fifo_lock: the lock to ensure atomicity of slot manipulation operations. - * @slotnr: number of allocated slots + * @slotsnr: number of allocated slots * * This structure represents CAN FIFO queue. It is implemented as * a single linked list of slots prepared for processing. The empty slots @@ -319,6 +319,8 @@ struct canque_edge_t { * with ready messages. The array is indexed by the edges priorities. * @idle: the list of the edges directed to the ends structure with empty FIFOs. * @inlist: the list of outgoing edges input sides. + * @outlist: the list of all incoming edges output sides. Each of there edges + * is listed on one of @active or @idle lists. * @ends_lock: the lock synchronizing operations between threads accessing * same ends structure. * @notify: pointer to notify procedure. The next state changes are notified. @@ -525,6 +527,12 @@ int canqueue_ends_kill_inlist(struct canque_ends_t *qends, int send_rest); int canqueue_ends_kill_outlist(struct canque_ends_t *qends); +int canqueue_ends_filt_conjuction(struct canque_ends_t *qends, struct canfilt_t *filt); + +int canqueue_ends_flush_inlist(struct canque_ends_t *qends); + +int canqueue_ends_flush_outlist(struct canque_ends_t *qends); + /* edge reference and traversal functions */ void canque_edge_do_dead(struct canque_edge_t *edge, int dead_fl);