Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Feb 2003 13:15:12 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 25954 for review
Message-ID:  <200302262115.h1QLFC7d012308@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=25954

Change 25954 by jhb@jhb_laptop on 2003/02/26 13:15:10

	Compiling is good.

Affected files ...

.. //depot/projects/smpng/sys/sys/eventhandler.h#10 edit

Differences ...

==== //depot/projects/smpng/sys/sys/eventhandler.h#10 (text+ko) ====

@@ -59,8 +59,9 @@
 /*
  * Macro to invoke the handlers for a given event.
  */
-#define _EVENTHANDLER_INVOKE(list, ...) do {				\
-	struct eventhandler_entry *_ep, *_en;				\
+#define _EVENTHANDLER_INVOKE(name, list, ...) do {			\
+	struct eventhandler_entry *_ep;					\
+	struct eventhandler_entry_ ## name *_t;				\
 									\
 	KASSERT((list)->el_flags & EHL_INITTED,				\
  	   ("eventhandler_invoke: running non-inited list"));		\
@@ -71,7 +72,8 @@
 	TAILQ_FOREACH(_ep, &((list)->el_entries), ee_link) {		\
 		if (!(_ep->ee_priority != EHE_DEAD_PRIORITY)) {		\
 			EHL_UNLOCK((list));				\
-			_ep->eh_func(_ep->ee_arg , __VA_ARGS__);	\
+			_t = (struct eventhandler_entry_ ## name *)_ep;	\
+			_t->eh_func(_ep->ee_arg , __VA_ARGS__);		\
 			EHL_LOCK((list));				\
 		}							\
 	}								\
@@ -111,7 +113,7 @@
 									\
 	if (_el->el_flags & EHL_INITTED) {				\
 		EHL_LOCK(_el);						\
-		_EVENTHANDLER_INVOKE(_el, __VA_ARGS__);			\
+		_EVENTHANDLER_INVOKE(name, _el, __VA_ARGS__);		\
 	}								\
 } while (0)
 
@@ -124,7 +126,7 @@
 									\
 	KASSERT(_el->el_flags & EHL_INITTED,				\
 	    ("eventhandler_fast_deregister on un-inited list %s", ## name)); \
-	EHL_LOCK(el);							\
+	EHL_LOCK(_el);							\
 	eventhandler_deregister(_el, tag);				\
 } while (0)
 
@@ -148,7 +150,7 @@
 	struct eventhandler_list *_el;					\
 									\
 	if ((_el = eventhandler_find_list(#name)) != NULL) 		\
-		_EVENTHANDLER_INVOKE(el, __VA_ARGS__);			\
+		_EVENTHANDLER_INVOKE(name, _el, __VA_ARGS__);		\
 } while (0)
 
 #define EVENTHANDLER_REGISTER(name, func, arg, priority)		\

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200302262115.h1QLFC7d012308>