root/netatalk/at.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */