Annotation of kernel/bsd/netat/h/lap.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7:  * Reserved.  This file contains Original Code and/or Modifications of
        !             8:  * Original Code as defined in and that are subject to the Apple Public
        !             9:  * Source License Version 1.1 (the "License").  You may not use this file
        !            10:  * except in compliance with the License.  Please obtain a copy of the
        !            11:  * License at http://www.apple.com/publicsource and read it before using
        !            12:  * this file.
        !            13:  * 
        !            14:  * The Original Code and all software distributed under the License are
        !            15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            19:  * License for the specific language governing rights and limitations
        !            20:  * under the License.
        !            21:  * 
        !            22:  * @APPLE_LICENSE_HEADER_END@
        !            23:  */
        !            24: 
        !            25: /*
        !            26:  *     Copyright (c) 1988, 1989 Apple Computer, Inc. 
        !            27:  *
        !            28:  *     The information contained herein is subject to change without
        !            29:  *     notice and  should not be  construed as a commitment by Apple
        !            30:  *     Computer, Inc. Apple Computer, Inc. assumes no responsibility
        !            31:  *     for any errors that may appear.
        !            32:  *
        !            33:  *     Confidential and Proprietary to Apple Computer, Inc.
        !            34:  */
        !            35: 
        !            36: /* @(#)lap.h: 2.0, 1.4; 2/16/90; Copyright 1988-89, Apple Computer, Inc. */
        !            37: 
        !            38: /* Definitions for generic access to AppleTalk link level protocols.
        !            39:  */
        !            40: 
        !            41: #ifndef __LAP__
        !            42: #define __LAP__
        !            43: #include <h/if_cnt.h>
        !            44: #include <at/nbp.h>
        !            45: 
        !            46: 
        !            47: 
        !            48: 
        !            49:        /* struture containing general information regarding the state of
        !            50:         * the Appletalk networking 
        !            51:         */
        !            52: typedef struct at_state {
        !            53:        unsigned int    flags;          /* various init flags (INIT_FL_XXX */
        !            54:        int                     pats_online;    /* count of pat's that are online */
        !            55:        int                     ifs_online;             /* count of all i/fs that are online */
        !            56:        int                     home_port;              /* the ddp logical port, or -1 if not set */
        !            57: } at_state_t;
        !            58: 
        !            59:        /*  at_state_t 'flags' defines */
        !            60: #define AT_ST_PAT_INIT         0x0001  /* pat init done */
        !            61: #define AT_ST_DDP_INIT                 0x0002  /* ddp initialized */
        !            62: #define AT_ST_ELAP_INIT                0x0004  /* elap initialized */
        !            63: #define AT_ST_MULTIHOME                0x0080  /* set if  multihome mode */
        !            64: #define AT_ST_ROUTER           0x0100  /* set if we are a router */
        !            65: #define AT_ST_IF_CHANGED       0x0200  /* set when state of any I/F
        !            66:                                                                           changes (for SNMP) */
        !            67: #define AT_ST_RT_CHANGED       0x0400  /* route table changed (for SNMP)*/
        !            68: #define AT_ST_ZT_CHANGED       0x0800  /* zone table changed (for SNMP) */
        !            69: #define AT_ST_NBP_CHANGED   0x1000  /* if nbp table changed (for SNMP)*/
        !            70: 
        !            71: 
        !            72:        /* mode defines */
        !            73: #define AT_MODE_SPORT                  1               /* single port */
        !            74: #define AT_MODE_MHOME                  2               /* multi-homing */
        !            75: #define AT_MODE_ROUTER                 3               /* router */
        !            76: 
        !            77:        /* GET_ZONES defines */
        !            78: #define GET_ALL_ZONES                  0
        !            79: #define GET_LOCAL_ZONES_ONLY   1
        !            80: 
        !            81: struct atalk_options {         /* for appletalk command */
        !            82:        int     router;                 /* if true, tells lap_init we're a router */
        !            83:        int             t_option;               /* for development, test cfg w/o stack loaded */
        !            84:        int     start;          /* cable start */
        !            85:        int     end;            /* cable end */
        !            86:        char    *f_option;              /* optional alternate router.cfg file */
        !            87:        short   c_option;               /* if true, just check config file */
        !            88:        short   e_option;               /* display configuration only */
        !            89:        short   r_table;                /* optional RTMP table size param */
        !            90:        short   z_table;                /* optional ZIP table size param */
        !            91:        short   h_option;               /* multihoming mode of router */
        !            92:        short   q_option;               /* run quiet, don't ask for zones */
        !            93: };
        !            94: 
        !            95:        /* I/F status structure, returned from kernel to indicate status of stack
        !            96:           the each element of the avail and stat arrays is assigned to one I/F type
        !            97:           as defined above. For each type there is one bit assigned to each physical
        !            98:           I/F with the lsb equal to if0 (e.g. et0) through the msb equal to if32 .
        !            99:           If a bit is set in the avail element, then that I/F exists in the system. 
        !           100:           the state element contains the at_if_t.ifState value
        !           101:           To indicate the home port there are 2 elements, home_type (same as above
        !           102:           defines) and the home_number (the n in etn).
        !           103:         */
        !           104: typedef struct if_cfg {
        !           105:        unsigned        avail[IF_TYPENO_CNT];
        !           106:        char            state[IF_TYPENO_CNT][IF_ANY_MAX];
        !           107:        unsigned        max[IF_TYPENO_CNT];
        !           108:        unsigned        home_type;              /* type of home interface */
        !           109:        unsigned        home_number;
        !           110:        unsigned        ver_major;              /* major & minor version no's (m.n) */
        !           111:        unsigned        ver_minor;
        !           112:        unsigned        ver_date;               /* version date (YYMMDD) */
        !           113:        char            comp_date[50];  /* compile date & time string */
        !           114: } if_cfg_t;
        !           115: 
        !           116: typedef struct if_zone_info {
        !           117:        at_nvestr_t     zone_name;                                              /* the zone name & len */
        !           118:        unsigned        zone_ifs[IF_TYPENO_CNT];                /* bitmapped I/F usage for zone */
        !           119:        unsigned        zone_home;                                              /* TRUE for home zone */
        !           120: } if_zone_info_t;
        !           121: 
        !           122: typedef union if_zone_nve {
        !           123:        at_nvestr_t             ifnve;
        !           124:        int                             zone;
        !           125: } if_zone_nve_t;
        !           126: 
        !           127:                /* this struct used to obtain local zones for specific
        !           128:                   ifID's from the kernel  and to set default zones for
        !           129:                   specific ifID numbers */
        !           130: typedef struct if_zone {
        !           131:        if_zone_nve_t   ifzn;
        !           132:        char                    usage[IF_TOTAL_MAX];    /* I/F usage (1 set if
        !           133:                                                                                   I/F in this zone */
        !           134:        int                             index;                                  /* zone index in ZT_table */
        !           135: } if_zone_t;
        !           136: 
        !           137:                /* struct for multihoming config info read from file */
        !           138: typedef struct mh_cfg {
        !           139:        char            ifName[IF_NAME_LEN];/* interface name (e.g.et0) */
        !           140:        at_nvestr_t     zone;                           /* default zone */
        !           141: } mh_cfg_t;
        !           142: 
        !           143: #define        IFID_HOME                       0               /* home port in ifID_table */
        !           144: 
        !           145: 
        !           146: 
        !           147: #define        ATALK_VALUE(a)          ((*(u_long *) &(a))&0x00ffffff)
        !           148: 
        !           149: #define        ATALK_EQUAL(a, b)       (ATALK_VALUE(a) == ATALK_VALUE(b))
        !           150: 
        !           151: #define ATALK_ASSIGN(a, net, node, unused ) \
        !           152:                a.atalk_unused = unused; a.atalk_node = node; NET_ASSIGN(a.atalk_net, net)
        !           153: 
        !           154: #define NO_IFS 4
        !           155: 
        !           156: #define AT_IFF_IFMASK          0xffff  /* lower 16 bits define interface type*/
        !           157: #define        AT_IFF_LOCALTALK        0x1     /* This is a LocalTalk interface */
        !           158: #define        AT_IFF_ETHERTALK        0x2     /* This is an EtherTalk interface */
        !           159: #define AT_IFF_DEFAULT         0x40000
        !           160: #define AT_IFF_AURP            0x20000
        !           161: 
        !           162: /* Generic LAP ioctl's.  Each LAP may implement other ioctl's specific to
        !           163:  * its functionality.
        !           164:  */
        !           165: #define        LAP_IOC_MYIOCTL(i)              ((i>>8) == AT_MID_LAP)
        !           166: #define        LAP_IOC_ONLINE                  ((AT_MID_LAP<<8) | 1)
        !           167: #define        LAP_IOC_OFFLINE                 ((AT_MID_LAP<<8) | 2)
        !           168: #define        LAP_IOC_GET_IFS_STAT    ((AT_MID_LAP<<8) | 3)
        !           169: #define        LAP_IOC_ADD_ZONE                ((AT_MID_LAP<<8) | 4)
        !           170: #define        LAP_IOC_ROUTER_START    ((AT_MID_LAP<<8) | 5)
        !           171: #define        LAP_IOC_ROUTER_SHUTDOWN ((AT_MID_LAP<<8) | 6)
        !           172: #define        LAP_IOC_ROUTER_INIT     ((AT_MID_LAP<<8) | 7)
        !           173: #define        LAP_IOC_GET_IFID            ((AT_MID_LAP<<8) | 8)
        !           174: #define        LAP_IOC_ADD_ROUTE               ((AT_MID_LAP<<8) | 9)
        !           175: #define        LAP_IOC_GET_DBG                 ((AT_MID_LAP<<8) | 10)
        !           176: #define        LAP_IOC_SET_DBG                 ((AT_MID_LAP<<8) | 11)
        !           177: #define        LAP_IOC_GET_ZONE                ((AT_MID_LAP<<8) | 12)
        !           178: #define        LAP_IOC_GET_ROUTE               ((AT_MID_LAP<<8) | 13)
        !           179: #define        LAP_IOC_ADD_IFNAME              ((AT_MID_LAP<<8) | 14)
        !           180: #define        LAP_IOC_DO_DEFER                ((AT_MID_LAP<<8) | 15)
        !           181: #define        LAP_IOC_DO_DELAY                ((AT_MID_LAP<<8) | 16)
        !           182: #define        LAP_IOC_SHUT_DOWN               ((AT_MID_LAP<<8) | 17)
        !           183: #define        LAP_IOC_CHECK_STATE             ((AT_MID_LAP<<8) | 18)
        !           184: #define        LAP_IOC_DEL_IFNAME              ((AT_MID_LAP<<8) | 19)
        !           185: #define        LAP_IOC_SET_MIX                 ((AT_MID_LAP<<8) | 20)
        !           186: #define LAP_IOC_SNMP_GET_CFG    ((AT_MID_LAP<<8) | 21)
        !           187: #define LAP_IOC_SNMP_GET_AARP   ((AT_MID_LAP<<8) | 22)
        !           188: #define LAP_IOC_SNMP_GET_RTMP  ((AT_MID_LAP<<8) | 23)
        !           189: #define LAP_IOC_SNMP_GET_ZIP   ((AT_MID_LAP<<8) | 24)
        !           190: #define LAP_IOC_SNMP_GET_DDP   ((AT_MID_LAP<<8) | 25)
        !           191: #define LAP_IOC_SNMP_GET_NBP   ((AT_MID_LAP<<8) | 26)
        !           192: #define LAP_IOC_SNMP_GET_PORTS ((AT_MID_LAP<<8) | 27)
        !           193: #define LAP_IOC_SET_LOCAL_ZONES        ((AT_MID_LAP<<8) | 28)
        !           194: #define LAP_IOC_GET_LOCAL_ZONE ((AT_MID_LAP<<8) | 29)
        !           195: #define LAP_IOC_IS_ZONE_LOCAL  ((AT_MID_LAP<<8) | 30)
        !           196: #define LAP_IOC_GET_MODE               ((AT_MID_LAP<<8) | 31)
        !           197: #define LAP_IOC_GET_IF_NAMES    ((AT_MID_LAP<<8) | 32)
        !           198: #define LAP_IOC_GET_DEFAULT_ZONE ((AT_MID_LAP<<8) | 33)
        !           199: #define LAP_IOC_SET_DEFAULT_ZONES ((AT_MID_LAP<<8) | 34)
        !           200: 
        !           201: 
        !           202: #endif /* __LAP__ */
        !           203: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.