diff options
author | rwatson <rwatson@FreeBSD.org> | 2009-06-24 10:32:44 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2009-06-24 10:32:44 +0000 |
commit | 16b92db4cdd4f185b371177716f4b58594612d20 (patch) | |
tree | 60dc81a23ac68fc8613f2da7a97b2b2686ff4459 /sys/netatalk/at_extern.h | |
parent | 8a1869e3472bc512675d15b029ba4987b23aff87 (diff) | |
download | FreeBSD-src-16b92db4cdd4f185b371177716f4b58594612d20.zip FreeBSD-src-16b92db4cdd4f185b371177716f4b58594612d20.tar.gz |
Break at_ifawithnet() into two variants:
- at_ifawithnet(), which acquires an locks it needs and returns an
at_ifaddr reference.
- at_ifawithnet_locked(), which relies on the caller locking
at_ifaddr_list, and returns a pointer rather than a reference.
Update various consumers to prefer one or the other, including ether
and fddi output, to properly release at_ifaddr references.
Rework at_control() to manage locking and references in a manner
identical to in_control().
MFC after: 6 weeks
Diffstat (limited to 'sys/netatalk/at_extern.h')
-rw-r--r-- | sys/netatalk/at_extern.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netatalk/at_extern.h b/sys/netatalk/at_extern.h index cf11017..c00e526 100644 --- a/sys/netatalk/at_extern.h +++ b/sys/netatalk/at_extern.h @@ -55,6 +55,8 @@ u_short at_cksum(struct mbuf *m, int skip); int at_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp, struct thread *td); struct at_ifaddr *at_ifawithnet(struct sockaddr_at *); +struct at_ifaddr *at_ifawithnet_locked(struct sockaddr_at *sat); + int at_inithead(void**, int); void ddp_init(void); int ddp_output(struct mbuf *m, struct socket *so); |