* New CAN queues by Pavel Pisa - OCERA team member
* email:pisa@cmp.felk.cvut.cz
* This software is released under the GPL-License.
- * Version lincan-0.2 9 Jul 2003
+ * Version lincan-0.3 17 Jun 2004
*/
#include "../include/can.h"
}
-void canque_edge_do_dead(struct canque_edge_t *edge, int dead_fl)
+void canque_edge_do_dead(struct canque_edge_t *edge)
{
can_spin_irqflags_t flags;
- if(dead_fl) return;
-
canque_notify_bothends(edge,CANQUEUE_NOTIFY_NOUSR);
#ifdef CAN_WITH_RTL
/* The problem of the above call is, that in RT-Linux to Linux notify
* @qends: pointer to the callback side ends structure
* @qedge: edge which invoked notification
* @what: notification type
+ *
+ * The notification event is handled directly by call of this function except case,
+ * when called from RT-Linux context in mixed mode Linux/RT-Linux compilation.
+ * It is not possible to directly call Linux kernel synchronization primitives
+ * in such case. The notification request is postponed and signaled by @pending_inops flags
+ * by call canqueue_rtl2lin_check_and_pend() function.
+ * The edge reference count is increased until until all pending notifications are processed.
*/
void canqueue_notify_kern(struct canque_ends_t *qends, struct canque_edge_t *qedge, int what)
{
#ifdef USE_SYNC_DISCONNECT_EDGE_KERN
-/**
+/*not included in doc
* canqueue_disconnect_edge_kern - disconnect edge from communicating entities with wait
* @qends: ends structure belonging to calling communication object
* @qedge: pointer to edge