The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/netatalk/at.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: at.h,v 1.8 2014/12/02 19:33:44 christos 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  * This product includes software developed by the University of
   18  * California, Berkeley and its contributors.
   19  *
   20  *      Research Systems Unix Group
   21  *      The University of Michigan
   22  *      c/o Wesley Craig
   23  *      535 W. William Street
   24  *      Ann Arbor, Michigan
   25  *      +1-313-764-2278
   26  *      netatalk@umich.edu
   27  */
   28 
   29 #ifndef _NETATALK_AT_H_
   30 #define _NETATALK_AT_H_
   31 
   32 #include <sys/ansi.h>
   33 
   34 #ifndef sa_family_t
   35 typedef __sa_family_t   sa_family_t;
   36 #define sa_family_t     __sa_family_t
   37 #endif
   38 
   39 /*
   40  * Supported protocols
   41  */
   42 #define ATPROTO_DDP     0
   43 #define ATPROTO_AARP    254
   44 
   45 #define DDP_MAXSZ       587
   46 
   47 /*
   48  * If ATPORT_FIRST <= Port < ATPORT_RESERVED,
   49  * Port was created by a privileged process.
   50  * If ATPORT_RESERVED <= Port < ATPORT_LAST,
   51  * Port was not necessarily created by a
   52  * privileged process.
   53  */
   54 #define ATPORT_FIRST    1
   55 #define ATPORT_RESERVED 128
   56 #define ATPORT_LAST     255
   57 
   58 /*
   59  * AppleTalk address.
   60  */
   61 struct at_addr {
   62         uint16_t         s_net;
   63         uint8_t          s_node;
   64 };
   65 
   66 #define ATADDR_ANYNET   (uint16_t)0x0000
   67 #define ATADDR_ANYNODE  (uint8_t)0x00
   68 #define ATADDR_ANYPORT  (uint8_t)0x00
   69 #define ATADDR_BCAST    (uint8_t)0xff   /* There is no BCAST for NET */
   70 
   71 struct netrange {
   72         uint8_t         nr_phase;
   73         uint16_t        nr_firstnet;
   74         uint16_t        nr_lastnet;
   75 };
   76 
   77 /*
   78  * Socket address, AppleTalk style.  We keep magic information in the
   79  * zero bytes.  There are three types, NONE, CONFIG which has the phase
   80  * and a net range, and IFACE which has the network address of an
   81  * interface.  IFACE may be filled in by the client, and is filled in
   82  * by the kernel.
   83  */
   84 struct sockaddr_at {
   85         uint8_t         sat_len;
   86         sa_family_t     sat_family;
   87         uint8_t         sat_port;
   88         struct at_addr  sat_addr;
   89         union {
   90                 struct netrange r_netrange;
   91                 char            r_zero[8];      /* Hide a struct netrange in
   92                                                  * here */
   93         } sat_range;
   94 };
   95 
   96 #define sat_zero sat_range.r_zero
   97 
   98 #ifdef _KERNEL
   99 #include <sys/protosw.h>
  100 
  101 extern struct domain atalkdomain;
  102 extern const struct protosw atalksw[];
  103 #endif
  104 
  105 #if defined(_KERNEL) || defined(_TEST)
  106 #define ATALK_ADDRSTRLEN 10
  107 
  108 extern struct domain atalkdomain;
  109 int at_print(char *, size_t, const struct at_addr *);
  110 int sat_print(char *, size_t, const void *);
  111 #endif
  112 
  113 #endif  /* !_NETATALK_AT_H_ */

Cache object: 15762fca5784bc46deb7dff04f9605ec


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.