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__ */