Functions for routing RX can frames. More...
Functions for routing RX can frames.
Definition in file router.h.
 Include dependency graph for router.h:Go to the source code of this file.
| void | can_router_init (void) | 
| Initialize CAN router.  | |
| int | can_router_register (can_reg_entry_t *entry, canid_t can_id, canid_t mask, void *param) | 
Register a user entry to receive a frame can_id.   | |
| int | can_router_unregister (can_reg_entry_t *entry, canid_t can_id, canid_t mask, void *param) | 
Unregister a user entry from receiving can_id.   | |
| int | can_router_free_frame (can_frame_t *frame) | 
| Free a received frame.   | |
| int | can_router_dispatch_rx_indic (can_pkt_t *pkt) | 
| Dispatch a RX indication to subscribers threads.   | |
| int | can_router_dispatch_tx_conf (can_pkt_t *pkt) | 
| Dispatch a TX confirmation to the sender's thread.   | |
| int | can_router_dispatch_tx_error (can_pkt_t *pkt) | 
| Dispatch a TX error to the sender's thread.   | |
| int can_router_dispatch_rx_indic | ( | can_pkt_t * | pkt | ) | 
Dispatch a RX indication to subscribers threads.
This function goes through the list of subscribed filters to send a message to each subscriber's thread. If all the subscriber's threads cannot receive message, the packet is freed.
| [in] | pkt | the packet to dispatch | 
| int can_router_dispatch_tx_conf | ( | can_pkt_t * | pkt | ) | 
Dispatch a TX confirmation to the sender's thread.
| [in] | pkt | the correctly sent packet | 
| int can_router_dispatch_tx_error | ( | can_pkt_t * | pkt | ) | 
Dispatch a TX error to the sender's thread.
| [in] | pkt | the error packet | 
| int can_router_free_frame | ( | can_frame_t * | frame | ) | 
Free a received frame.
This function decrements the ref counter of the packet and frees it if the packet is no more in use.
| [in] | frame | the frame to free, it must be a frame returned by the stack | 
| int can_router_register | ( | can_reg_entry_t * | entry, | 
| canid_t | can_id, | ||
| canid_t | mask, | ||
| void * | param ) | 
Register a user entry to receive a frame can_id. 
| [in] | entry | the entry containing ifnum and user info | 
| [in] | can_id | the CAN ID of the frame to receive | 
| [in] | mask | the mask of the frame to receive | 
| [in] | param | a user private pointer | 
| int can_router_unregister | ( | can_reg_entry_t * | entry, | 
| canid_t | can_id, | ||
| canid_t | mask, | ||
| void * | param ) | 
Unregister a user entry from receiving can_id. 
The filter is unregistered from the 'router' layer if can_id, mask and param matches a registered entry.
| [in] | entry | the entry containing ifnum and user info which was registered | 
| [in] | can_id | the CAN ID of the frame to stop receiving | 
| [in] | mask | the mask of the frame to stop receiving | 
| [in] | param | a user private pointer | 
can_id is not used anymore can_id is still used by another pid