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_var.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 /*-
    2  * Copyright (c) 1990, 1991 Regents of The University of Michigan.
    3  * All Rights Reserved.
    4  *
    5  * Permission to use, copy, modify, and distribute this software and
    6  * its documentation for any purpose and without fee is hereby granted,
    7  * provided that the above copyright notice appears in all copies and
    8  * that both that copyright notice and this permission notice appear
    9  * in supporting documentation, and that the name of The University
   10  * of Michigan not be used in advertising or publicity pertaining to
   11  * distribution of the software without specific, written prior
   12  * permission. This software is supplied as is without expressed or
   13  * implied warranties of any kind.
   14  *
   15  *      Research Systems Unix Group
   16  *      The University of Michigan
   17  *      c/o Mike Clark
   18  *      535 W. William Street
   19  *      Ann Arbor, Michigan
   20  *      +1-313-763-0525
   21  *      netatalk@itd.umich.edu
   22  *
   23  * $FreeBSD: releng/10.0/sys/netatalk/at_var.h 194913 2009-06-24 21:36:09Z rwatson $
   24  */
   25 
   26 #ifndef _NETATALK_AT_VAR_H_
   27 #define _NETATALK_AT_VAR_H_
   28 
   29 /*
   30  * For phase2, we need to keep not only our address on an interface, but also
   31  * the legal networks on the interface.
   32  */
   33 struct at_ifaddr {
   34         struct ifaddr            aa_ifa;
   35         struct sockaddr_at       aa_addr;
   36         struct sockaddr_at       aa_broadaddr;
   37         struct sockaddr_at       aa_netmask;
   38         int                      aa_flags;
   39         u_short                  aa_firstnet;
   40         u_short                  aa_lastnet;
   41         int                      aa_probcnt;
   42         struct callout           aa_callout;
   43         TAILQ_ENTRY(at_ifaddr)   aa_link;
   44 };
   45 #define aa_ifp          aa_ifa.ifa_ifp
   46 #define aa_dstaddr      aa_broadaddr;
   47 
   48 TAILQ_HEAD(at_ifaddrhead, at_ifaddr);
   49 
   50 struct at_aliasreq {
   51         char                    ifra_name[IFNAMSIZ];
   52         struct sockaddr_at      ifra_addr;
   53         struct sockaddr_at      ifra_broadaddr;
   54         struct sockaddr_at      ifra_mask;
   55 };
   56 #define ifra_dstaddr    ifra_broadaddr
   57 
   58 #define AA_SAT(aa)      (&(aa->aa_addr))
   59 #define satosat(sa)     ((struct sockaddr_at *)(sa))
   60 
   61 #define AFA_ROUTE       0x0001
   62 #define AFA_PROBING     0x0002
   63 #define AFA_PHASE2      0x0004
   64 
   65 #ifdef _KERNEL
   66 extern struct rwlock            at_ifaddr_rw;
   67 extern struct at_ifaddrhead     at_ifaddrhead;
   68 
   69 #define AT_IFADDR_LOCK_INIT()   rw_init(&at_ifaddr_rw, "at_ifaddr_rw")
   70 #define AT_IFADDR_LOCK_ASSERT() rw_assert(&at_ifaddr_rw, RA_LOCKED)
   71 #define AT_IFADDR_RLOCK()       rw_rlock(&at_ifaddr_rw)
   72 #define AT_IFADDR_RUNLOCK()     rw_runlock(&at_ifaddr_rw)
   73 #define AT_IFADDR_WLOCK()       rw_wlock(&at_ifaddr_rw)
   74 #define AT_IFADDR_WUNLOCK()     rw_wunlock(&at_ifaddr_rw)
   75 #endif
   76 
   77 #endif /* _NETATALK_AT_VAR_H_ */

Cache object: 1f6de00dea815db23181177acff4fb95


[ 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.