PERFORCE change 126351 for review

Kip Macy kmacy at FreeBSD.org
Wed Sep 12 18:36:04 PDT 2007


http://perforce.freebsd.org/chv.cgi?CH=126351

Change 126351 by kmacy at kmacy_home:ethng on 2007/09/13 01:35:09

	add shared locking macros
	declare rtalloc2 which returns with route referenced but unlocked

Affected files ...

.. //depot/projects/ethng/src/sys/net/route.h#3 edit

Differences ...

==== //depot/projects/ethng/src/sys/net/route.h#3 (text+ko) ====

@@ -287,9 +287,12 @@
 #ifdef _KERNEL
 
 #define	RT_LOCK_INIT(_rt) \
-	rw_init(&(_rt)->rt_lock, "rtentry")
+	rw_init_flags(&(_rt)->rt_lock, "rtentry", RW_DUPOK)
 #define	RT_LOCK(_rt)		rw_wlock(&(_rt)->rt_lock)
 #define	RT_UNLOCK(_rt)		rw_wunlock(&(_rt)->rt_lock)
+#define	RT_LOCK_SHARED(_rt)	rw_rlock(&(_rt)->rt_lock)
+#define	RT_UNLOCK_SHARED(_rt)	rw_runlock(&(_rt)->rt_lock)
+#define	RT_LOCK_DOWNGRADE(_rt)	rw_downgrade(&(_rt)->rt_lock)
 #define	RT_LOCK_DESTROY(_rt)	rw_destroy(&(_rt)->rt_lock)
 #define	RT_LOCK_ASSERT(_rt)	rw_assert(&(_rt)->rt_lock, RA_LOCKED)
 
@@ -349,6 +352,7 @@
 void	 rtalloc_ign(struct route *ro, u_long ignflags);
 void	 rtalloc(struct route *ro); /* XXX deprecated, use rtalloc_ign(ro, 0) */
 struct rtentry *rtalloc1(struct sockaddr *, int, u_long);
+struct rtentry *rtalloc2(struct sockaddr *, int, u_long);
 int	 rtexpunge(struct rtentry *);
 void	 rtfree(struct rtentry *);
 int	 rtinit(struct ifaddr *, int, int);


More information about the p4-projects mailing list