Annotation of sys/netatalk/at.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: at.h,v 1.3 2003/05/14 02:02:55 itojun Exp $ */
2:
3: /*
4: * Copyright (c) 1990,1991 Regents of The University of Michigan.
5: * All Rights Reserved.
6: *
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.
16: *
17: * Research Systems Unix Group
18: * The University of Michigan
19: * c/o Mike Clark
20: * 535 W. William Street
21: * Ann Arbor, Michigan
22: * +1-313-763-0525
23: * netatalk@itd.umich.edu
24: */
25:
26: /*
27: * The following is the contents of the COPYRIGHT file from the
28: * netatalk-1.4a2 distribution, from which this file is derived.
29: */
30: /*
31: * Copyright (c) 1990,1996 Regents of The University of Michigan.
32: *
33: * All Rights Reserved.
34: *
35: * Permission to use, copy, modify, and distribute this software and
36: * its documentation for any purpose and without fee is hereby granted,
37: * provided that the above copyright notice appears in all copies and
38: * that both that copyright notice and this permission notice appear
39: * in supporting documentation, and that the name of The University
40: * of Michigan not be used in advertising or publicity pertaining to
41: * distribution of the software without specific, written prior
42: * permission. This software is supplied as is without expressed or
43: * implied warranties of any kind.
44: *
45: * This product includes software developed by the University of
46: * California, Berkeley and its contributors.
47: *
48: * Solaris code is encumbered by the following:
49: *
50: * Copyright (C) 1996 by Sun Microsystems Computer Co.
51: *
52: * Permission to use, copy, modify, and distribute this software and
53: * its documentation for any purpose and without fee is hereby
54: * granted, provided that the above copyright notice appear in all
55: * copies and that both that copyright notice and this permission
56: * notice appear in supporting documentation. This software is
57: * provided "as is" without express or implied warranty.
58: *
59: * Research Systems Unix Group
60: * The University of Michigan
61: * c/o Wesley Craig
62: * 535 W. William Street
63: * Ann Arbor, Michigan
64: * +1-313-764-2278
65: * netatalk@umich.edu
66: */
67: /*
68: * None of the Solaris code mentioned is included in OpenBSD.
69: * This code also relies heavily on previous effort in FreeBSD and NetBSD.
70: */
71:
72: #ifndef __AT_HEADER__
73: #define __AT_HEADER__
74: /*
75: * Supported protocols
76: */
77: #define ATPROTO_DDP 0
78: #define ATPROTO_AARP 254
79:
80: #include <net/ethertypes.h>
81:
82: #define DDP_MAXSZ 587
83:
84: #define AT_LLC_SIZE 8
85:
86: /*
87: * If ATPORT_FIRST <= Port < ATPORT_RESERVED,
88: * Port was created by a privileged process.
89: * If ATPORT_RESERVED <= Port < ATPORT_LAST,
90: * Port was not necessarily created by a
91: * privileged process.
92: */
93: #define ATPORT_FIRST 1
94: #define ATPORT_RESERVED 128
95: #define ATPORT_LAST 255
96:
97: /*
98: * AppleTalk address.
99: */
100: struct at_addr {
101: u_int16_t s_net;
102: u_int8_t s_node;
103: };
104:
105: #define ATADDR_ANYNET (u_int16_t)0x0000
106: #define ATADDR_ANYNODE (u_int8_t)0x00
107: #define ATADDR_ANYPORT (u_int8_t)0x00
108: #define ATADDR_BCAST (u_int8_t)0xff /* There is no BCAST for NET */
109:
110: struct netrange {
111: u_int8_t nr_phase;
112: u_int16_t nr_firstnet;
113: u_int16_t nr_lastnet;
114: };
115:
116: /*
117: * Socket address, AppleTalk style. We keep magic information in the
118: * zero bytes. There are three types, NONE, CONFIG which has the phase
119: * and a net range, and IFACE which has the network address of an
120: * interface. IFACE may be filled in by the client, and is filled in
121: * by the kernel.
122: */
123: struct sockaddr_at {
124: u_int8_t sat_len;
125: u_int8_t sat_family;
126: u_int8_t sat_port;
127: struct at_addr sat_addr;
128: union {
129: struct netrange r_netrange;
130: int8_t r_zero[ 8 ]; /* Hide a struct netrange in here */
131: } sat_range;
132: };
133:
134: #define sat_zero sat_range.r_zero
135:
136: #ifdef _KERNEL
137: extern struct domain atalkdomain;
138: extern struct protosw atalksw[];
139: #endif
140:
141: #endif /* __AT_HEADER__ */
CVSweb