Annotation of XNU/bsd/netccitt/x25.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * The contents of this file constitute Original Code as defined in and
        !             7:  * are subject to the Apple Public Source License Version 1.1 (the
        !             8:  * "License").  You may not use this file except in compliance with the
        !             9:  * License.  Please obtain a copy of the License at
        !            10:  * http://www.apple.com/publicsource and read it before using this file.
        !            11:  * 
        !            12:  * This Original Code and all software distributed under the License are
        !            13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            17:  * License for the specific language governing rights and limitations
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * Copyright (c) University of British Columbia, 1984
        !            24:  * Copyright (c) 1990, 1992, 1993
        !            25:  *     The Regents of the University of California.  All rights reserved.
        !            26:  *              University of Erlangen-Nuremberg, Germany, 1992
        !            27:  * 
        !            28:  * This code is derived from software contributed to Berkeley by the
        !            29:  * Laboratory for Computation Vision and the Computer Science Department
        !            30:  * of the the University of British Columbia and the Computer Science
        !            31:  * Department (IV) of the University of Erlangen-Nuremberg, Germany.
        !            32:  *
        !            33:  * Redistribution and use in source and binary forms, with or without
        !            34:  * modification, are permitted provided that the following conditions
        !            35:  * are met:
        !            36:  * 1. Redistributions of source code must retain the above copyright
        !            37:  *    notice, this list of conditions and the following disclaimer.
        !            38:  * 2. Redistributions in binary form must reproduce the above copyright
        !            39:  *    notice, this list of conditions and the following disclaimer in the
        !            40:  *    documentation and/or other materials provided with the distribution.
        !            41:  * 3. All advertising materials mentioning features or use of this software
        !            42:  *    must display the following acknowledgement:
        !            43:  *     This product includes software developed by the University of
        !            44:  *     California, Berkeley and its contributors.
        !            45:  * 4. Neither the name of the University nor the names of its contributors
        !            46:  *    may be used to endorse or promote products derived from this software
        !            47:  *    without specific prior written permission.
        !            48:  *
        !            49:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            50:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            51:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            52:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            53:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            54:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            55:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            56:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            57:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            58:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            59:  * SUCH DAMAGE.
        !            60:  *
        !            61:  *     @(#)x25.h       8.1 (Berkeley) 6/10/93
        !            62:  */
        !            63: 
        !            64: #ifdef KERNEL
        !            65: #define PRC_IFUP       3
        !            66: #define PRC_LINKUP     4
        !            67: #define PRC_LINKDOWN   5
        !            68: #define PRC_LINKRESET  6
        !            69: #define PRC_LINKDONTCOPY       7
        !            70: #ifndef PRC_DISCONNECT_REQUEST  
        !            71: #define PRC_DISCONNECT_REQUEST 10
        !            72: #endif
        !            73: #endif
        !            74: 
        !            75: #define CCITTPROTO_HDLC                1
        !            76: #define CCITTPROTO_X25         2       /* packet level protocol */
        !            77: #define IEEEPROTO_802LLC       3       /* doesn't belong here */
        !            78: 
        !            79: #define HDLCPROTO_LAP          1
        !            80: #define HDLCPROTO_LAPB         2
        !            81: #define HDLCPROTO_UNSET                3
        !            82: #define HDLCPROTO_LAPD         4
        !            83: 
        !            84: /* socket options */
        !            85: #define PK_ACCTFILE            1       /* use level = CCITTPROTO_X25 */
        !            86: #define PK_FACILITIES          2       /* use level = CCITTPROTO_X25 */
        !            87: #define PK_RTATTACH            3       /* use level = CCITTPROTO_X25 */
        !            88: #define PK_PRLISTEN            4       /* use level = CCITTPROTO_X25 */
        !            89: 
        !            90: #define MAX_FACILITIES         109     /* maximum size for facilities */
        !            91: 
        !            92: /*
        !            93:  *  X.25 Socket address structure.  It contains the  X.121 or variation of
        !            94:  *  X.121, facilities information, higher level protocol value (first four
        !            95:  *  bytes of the User Data field), and the last  12 characters of the User
        !            96:  *  Data field.
        !            97:  */
        !            98: 
        !            99: struct x25_sockaddr {          /* obsolete - use sockaddr_x25 */
        !           100:     short  xaddr_len;          /* Length of xaddr_addr.                */
        !           101:     u_char xaddr_addr[15];     /* Network dependent or X.121 address.  */
        !           102:     u_char xaddr_facilities;   /* Facilities information.              */
        !           103: #define XS_REVERSE_CHARGE      0x01
        !           104: #define XS_HIPRIO              0x02
        !           105:     u_char xaddr_proto[4];     /* Protocol ID (4 bytes of user data).  */
        !           106:     u_char xaddr_userdata[12]; /* Remaining User data field.           */
        !           107: };
        !           108: 
        !           109: /*
        !           110:  *  X.25 Socket address structure.  It contains the network id, X.121
        !           111:  *  address, facilities information, higher level protocol value (first four
        !           112:  *  bytes of the User Data field), and up to 12 characters of User Data.
        !           113:  */
        !           114: 
        !           115: struct sockaddr_x25 {
        !           116:        u_char  x25_len;
        !           117:        u_char  x25_family;     /* must be AF_CCITT */
        !           118:        short   x25_net;        /* network id code (usually a dnic) */
        !           119:        char    x25_addr[16];   /* X.121 address (null terminated) */
        !           120:        struct  x25opts {
        !           121:                char    op_flags;       /* miscellaneous options */
        !           122:                                        /* pk_var.h defines other lcd_flags */
        !           123: #define X25_REVERSE_CHARGE     0x01    /* remote DTE pays for call */
        !           124: #define X25_DBIT               0x02    /* not yet supported */
        !           125: #define X25_MQBIT              0x04    /* prepend M&Q bit status byte to packet data */
        !           126: #define X25_OLDSOCKADDR                0x08    /* uses old sockaddr structure */
        !           127: #define X25_DG_CIRCUIT         0x10    /* lcd_flag: used for datagrams */
        !           128: #define X25_DG_ROUTING         0x20    /* lcd_flag: peer addr not yet known */
        !           129: #define X25_MBS_HOLD           0x40    /* lcd_flag: collect m-bit sequences */
        !           130:                char    op_psize;       /* requested packet size */
        !           131: #define X25_PS128              7
        !           132: #define X25_PS256              8
        !           133: #define X25_PS512              9
        !           134:                char    op_wsize;       /* window size (1 .. 7) */
        !           135:                char    op_speed;       /* throughput class */
        !           136:        } x25_opts;
        !           137:        short   x25_udlen;      /* user data field length */
        !           138:        char    x25_udata[16];  /* user data field */
        !           139: };
        !           140: 
        !           141: /*
        !           142:  * network configuration info
        !           143:  * this structure must be 16 bytes long
        !           144:  */
        !           145: 
        !           146: struct x25config {
        !           147:        struct  sockaddr_x25 xc_addr;
        !           148:        /* link level parameters */
        !           149:        u_short xc_lproto:4,    /* link level protocol eg. CCITTPROTO_HDLC */
        !           150:                xc_lptype:4,    /* protocol type eg. HDLCPROTO_LAPB */
        !           151:                xc_ltrace:1,    /* link level tracing flag */
        !           152:                xc_lwsize:7;    /* link level window size */
        !           153:        u_short xc_lxidxchg:1,  /* link level XID exchange flag - NOT YET */
        !           154:        /* packet level parameters */
        !           155:                xc_rsvd1:2,
        !           156:                 xc_pwsize:3,   /* default window size */
        !           157:                xc_psize:4,     /* default packet size 7=128, 8=256, ... */
        !           158:                xc_type:3,      /* network type */
        !           159: #define X25_1976       0
        !           160: #define X25_1980       1
        !           161: #define X25_1984       2
        !           162: #define X25_DDN                3
        !           163: #define X25_BASIC      4
        !           164:                xc_ptrace:1,    /* packet level tracing flag */
        !           165:                xc_nodnic:1,    /* remove our dnic when calling on net */
        !           166:                xc_prepnd0:1;   /* prepend 0 when making offnet calls */
        !           167:        u_short xc_maxlcn;      /* max logical channels */
        !           168:        u_short xc_dg_idletimo; /* timeout for idle datagram circuits. */
        !           169: };
        !           170: 
        !           171: #ifdef IFNAMSIZ
        !           172: struct ifreq_x25 {
        !           173:        char    ifr_name[IFNAMSIZ];             /* if name, e.g. "en0" */
        !           174:        struct  x25config ifr_xc;
        !           175: };
        !           176: #define        SIOCSIFCONF_X25 _IOW('i', 12, struct ifreq_x25) /* set ifnet config */
        !           177: #define        SIOCGIFCONF_X25 _IOWR('i',13, struct ifreq_x25) /* get ifnet config */
        !           178: #endif

unix.superglobalmegacorp.com

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