1 /*-
2  * Copyright (c) 1990,1994 Regents of The University of Michigan.
3  * All Rights Reserved.
4  *
5  * Permission to use, copy, modify, and distribute this software and
6  * its documentation for any purpose and without fee is hereby granted,
7  * provided that the above copyright notice appears in all copies and
8  * that both that copyright notice and this permission notice appear
9  * in supporting documentation, and that the name of The University
10  * of Michigan not be used in advertising or publicity pertaining to
11  * distribution of the software without specific, written prior
12  * permission. This software is supplied as is without expressed or
13  * implied warranties of any kind.
14  *
15  * This product includes software developed by the University of
16  * California, Berkeley and its contributors.
17  *
18  *	Research Systems Unix Group
19  *	The University of Michigan
20  *	c/o Wesley Craig
21  *	535 W. William Street
22  *	Ann Arbor, Michigan
23  *	+1-313-764-2278
24  *	netatalk@umich.edu
25  *
26  * $FreeBSD: stable/9/sys/netatalk/at_extern.h 194819 2009-06-24 10:32:44Z rwatson $
27  */
28 
29 #ifndef _NETATALK_AT_EXTERN_H_
30 #define	_NETATALK_AT_EXTERN_H_
31 
32 extern struct mtx	aarptab_mtx;
33 
34 #define	AARPTAB_LOCK()		mtx_lock(&aarptab_mtx)
35 #define	AARPTAB_UNLOCK()	mtx_unlock(&aarptab_mtx)
36 #define	AARPTAB_LOCK_ASSERT()	mtx_assert(&aarptab_mtx, MA_OWNED)
37 #define	AARPTAB_UNLOCK_ASSERT()	mtx_assert(&aarptab_mtx, MA_NOTOWNED)
38 
39 struct at_ifaddr;
40 struct ifnet;
41 struct mbuf;
42 struct route;
43 struct thread;
44 struct sockaddr_at;
45 struct socket;
46 void		 aarpintr(struct mbuf *);
47 void		 aarpprobe(void *arg);
48 int		 aarpresolve(struct ifnet *, struct mbuf *,
49 		    struct sockaddr_at *, u_char *);
50 void		 aarp_clean(void);
51 void		 at1intr(struct mbuf *);
52 void		 at2intr(struct mbuf *);
53 int		 at_broadcast(struct sockaddr_at  *);
54 u_short		 at_cksum(struct mbuf *m, int skip);
55 int		 at_control(struct socket *so, u_long cmd, caddr_t data,
56 		    struct ifnet *ifp, struct thread *td);
57 struct at_ifaddr	*at_ifawithnet(struct sockaddr_at *);
58 struct at_ifaddr	*at_ifawithnet_locked(struct sockaddr_at  *sat);
59 
60 int		 at_inithead(void**, int);
61 void		 ddp_init(void);
62 int		 ddp_output(struct mbuf *m, struct socket *so);
63 int		 ddp_route(struct mbuf *m, struct route *ro);
64 struct ddpcb	*ddp_search(struct sockaddr_at *, struct sockaddr_at *,
65 		    struct at_ifaddr *);
66 
67 #endif /* !_NETATALK_AT_EXTERN_H_ */
68