1 /* $NetBSD: at_var.h,v 1.6 2007/05/02 20:40:23 dyoung Exp $ */
4 * Copyright (c) 1990,1991 Regents of The University of Michigan.
7 * Permission to use, copy, modify, and distribute this software and
8 * its documentation for any purpose and without fee is hereby granted,
9 * provided that the above copyright notice appears in all copies and
10 * that both that copyright notice and this permission notice appear
11 * in supporting documentation, and that the name of The University
12 * of Michigan not be used in advertising or publicity pertaining to
13 * distribution of the software without specific, written prior
14 * permission. This software is supplied as is without expressed or
15 * implied warranties of any kind.
17 * This product includes software developed by the University of
18 * California, Berkeley and its contributors.
20 * Research Systems Unix Group
21 * The University of Michigan
23 * 535 W. William Street
29 #ifndef _NETATALK_AT_VAR_H_
30 #define _NETATALK_AT_VAR_H_
32 #include <sys/callout.h>
35 * For phase2, we need to keep not only our address on an interface,
36 * but also the legal networks on the interface.
40 #define aa_ifp aa_ifa.ifa_ifp
41 struct sockaddr_at aa_addr
;
42 struct sockaddr_at aa_broadaddr
;
43 #define aa_dstaddr aa_broadaddr;
44 struct sockaddr_at aa_netmask
;
46 u_short aa_firstnet
, aa_lastnet
;
48 TAILQ_ENTRY(at_ifaddr
) aa_list
; /* list of appletalk addresses */
49 struct callout aa_probe_ch
; /* for aarpprobe() */
53 char ifra_name
[IFNAMSIZ
];
54 struct sockaddr_at ifra_addr
;
55 struct sockaddr_at ifra_broadaddr
;
56 #define ifra_dstaddr ifra_broadaddr
57 struct sockaddr_at ifra_mask
;
62 #define satosat(sa) ((struct sockaddr_at *)(sa))
63 #define satocsat(sa) ((const struct sockaddr_at *)(sa))
65 #define AFA_ROUTE 0x0001
66 #define AFA_PROBING 0x0002
67 #define AFA_PHASE2 0x0004
70 int sockaddr_at_cmp(const struct sockaddr
*, const struct sockaddr
*);
73 sockaddr_at_init1(struct sockaddr_at
*sat
, const struct at_addr
*addr
,
77 sat
->sat_addr
= *addr
;
78 memset(&sat
->sat_range
, 0, sizeof(sat
->sat_range
));
82 sockaddr_at_init(struct sockaddr_at
*sat
, const struct at_addr
*addr
,
85 sat
->sat_family
= AF_APPLETALK
;
86 sat
->sat_len
= sizeof(*sat
);
87 sockaddr_at_init1(sat
, addr
, port
);
90 static inline struct sockaddr
*
91 sockaddr_at_alloc(const struct at_addr
*addr
, uint8_t port
, int flags
)
95 sa
= sockaddr_alloc(AF_APPLETALK
, sizeof(struct sockaddr_at
), flags
);
100 sockaddr_at_init1(satosat(sa
), addr
, port
);
104 TAILQ_HEAD(at_ifaddrhead
, at_ifaddr
);
105 extern struct at_ifaddrhead at_ifaddr
;
106 extern struct ifqueue atintrq1
, atintrq2
;
109 #endif /* !_NETATALK_AT_VAR_H_ */