Annotation of kernel/bsd/netat/h/at_pat.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: /*
        !            27:  *     Copyright (c) 1988, 1989 Apple Computer, Inc. 
        !            28:  *
        !            29:  *     The information contained herein is subject to change without
        !            30:  *     notice and  should not be  construed as a commitment by Apple
        !            31:  *     Computer, Inc. Apple Computer, Inc. assumes no responsibility
        !            32:  *     for any errors that may appear.
        !            33:  *
        !            34:  *     Confidential and Proprietary to Apple Computer, Inc.
        !            35:  */
        !            36: 
        !            37: /* "@(#)at_pat.h: 2.0, 1.8; 10/4/93; Copyright 1988-89, Apple Computer, Inc." */
        !            38: 
        !            39: /* This is header for the PAT module. This contains a table of pointers that 
        !            40:  * should get initialized with the BNET stuff and the ethernet driver. The 
        !            41:  * number of interfaces supported should be communicated. Should include
        !            42:  * mbuf.h, if.h, socket.h
        !            43:  *
        !            44:  * Author: R. C. Venkatraman
        !            45:  * Date  : 2/29/88 
        !            46:  */
        !            47: 
        !            48: typedef struct {
        !            49:        unsigned char dst[6];
        !            50:        unsigned char src[6];
        !            51:        unsigned short len;
        !            52: } enet_header_t;
        !            53: 
        !            54: typedef struct {
        !            55:        unsigned char dst_sap;
        !            56:        unsigned char src_sap;
        !            57:        unsigned char control;
        !            58:        unsigned char protocol[5];
        !            59: } llc_header_t;
        !            60: 
        !            61: #define ENET_LLC_SIZE (sizeof(enet_header_t)+sizeof(llc_header_t))
        !            62: #define SNAP_UI                0x03  /* bits 11000000 reversed!! */
        !            63: #define SNAP_AT_SAP    0xaa
        !            64: #define SNAP_PROTO_AT  {0x08, 0x00, 0x07, 0x80, 0x9B}
        !            65: #define SNAP_PROTO_AARP        {0x00, 0x00, 0x00, 0x80, 0xF3}
        !            66: #define SNAP_HDR_AT    {SNAP_AT_SAP, SNAP_AT_SAP, SNAP_UI, SNAP_PROTO_AT}
        !            67: #define SNAP_HDR_AARP  {SNAP_AT_SAP, SNAP_AT_SAP, SNAP_UI, SNAP_PROTO_AARP}
        !            68: 
        !            69: #define LLC_PROTO_EQUAL(a1, a2)                                         \
        !            70:         ((*((unsigned long *)(a1)) == *((unsigned long *)(a2))) &&      \
        !            71:         (a1[4] == a2[4])                                               \
        !            72:        )
        !            73: 
        !            74: /* PAT data structures and control codes */
        !            75: 
        !            76: #define        MAX_MCASTS                      25      /*#multicast addrs tracked per i/f */ 
        !            77: 
        !            78: typedef        struct pat_unit {
        !            79:        int     state;          /* PAT state                            */
        !            80:        caddr_t context;        /* Context pointer for upstream         */
        !            81:        int     (*aarp_func)(); /* Function to be called for passing    */
        !            82:                                                /* AARP packets up.                     */
        !            83:        int     (*addr_check)();/* Function to be called for checking   */
        !            84:                                                /* destination address for an incoming  */
        !            85:                                                /* packet.                              */
        !            86:        void    *nddp;  /* Pointer to NDD struct for this driver*/
        !            87:        int     elapno;                 /* corresponding entry in elap_specifics */
        !            88:                                                /* array for tracking registered mcast
        !            89:                                                   addrs, only uniqe portion tracked */
        !            90:        unsigned char   mcast[MAX_MCASTS];
        !            91:        void *xddpq;
        !            92:        void *xarpq;
        !            93:        char  xflag;
        !            94:        char  xunit;
        !            95:        char  xtype;
        !            96:        char  xpad;
        !            97:        int   xaddrlen;
        !            98:        char  xaddr[6];
        !            99:        char  xname[8];
        !           100: } pat_unit_t;
        !           101: 
        !           102: #define PAT_REG_CONTEXT                1
        !           103: #define PAT_REG_ELAPQ          2
        !           104: #define PAT_REG_AARP_UPSTREAM  3
        !           105: #define PAT_REG_CHECKADDR      4
        !           106: #define PAT_REG_MCAST          5
        !           107: #define PAT_UNREG_MCAST                6
        !           108: #define PAT_UNREG_ALL_MCAST    7
        !           109: 
        !           110:        /* multicast tracking */
        !           111: #define MCAST_TRACK_ADD                1
        !           112: #define MCAST_TRACK_DELETE     2
        !           113: #define MCAST_TRACK_CHECK      3
        !           114: 
        !           115: /* PAT states */
        !           116: #define PAT_FREE               0
        !           117: #define PAT_OFFLINE            1
        !           118: #define PAT_ONLINE             2

unix.superglobalmegacorp.com

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