Annotation of XNU/bsd/netat/ddp.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:  *
        !            24:  * ORIGINS: 82
        !            25:  *
        !            26:  * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
        !            27:  * All Rights Reserved
        !            28:  *
        !            29:  */                                                                   
        !            30: 
        !            31: #ifndef _NETAT_DDP_H_
        !            32: #define _NETAT_DDP_H_
        !            33: 
        !            34: /* Header and data sizes */
        !            35: 
        !            36: #define  DDP_HDR_SIZE                 5  /* DDP (short) header size */
        !            37: #define  DDP_X_HDR_SIZE              13  /* DDP extended header size */
        !            38: #define  DDP_DATA_SIZE              586  /* Maximum DataGram data size */
        !            39: #define  DDP_DATAGRAM_SIZE          599  /* Maximum DataGram size */
        !            40: 
        !            41: /* DDP socket definitions */
        !            42: 
        !            43: #define  DDP_SOCKET_1st_RESERVED      1  /* First in reserved range */
        !            44: #define  DDP_SOCKET_1st_EXPERIMENTAL 64  /* First in experimental range */
        !            45: #define  DDP_SOCKET_1st_DYNAMIC     128  /* First in dynamic range */
        !            46: #define  DDP_SOCKET_LAST            253  /* Last socket in any range */
        !            47: 
        !            48: /* DDP type used to replace "0" on packets sent out, for compatibility
        !            49:    with Open Transport */
        !            50: #define DEFAULT_OT_DDPTYPE 11
        !            51: 
        !            52: /* DDP well-known sockets */
        !            53: 
        !            54: #define RTMP_SOCKET    1       /* RTMP socket number   */
        !            55: #define NBP_SOCKET     2       /* NIS socket number */
        !            56: #define        EP_SOCKET       4       /* EP socket number */
        !            57: #define ZIP_SOCKET     6       /* ZIP socket number */
        !            58: 
        !            59: /* DDP extended header packet format */
        !            60: 
        !            61: typedef struct {
        !            62:         unsigned   unused:2,
        !            63:                   hopcount:4,
        !            64:                   length:10;           /* Datagram length */
        !            65:         ua_short   checksum;           /* Checksum */
        !            66:         at_net     dst_net;            /* Destination network number */
        !            67:         at_net     src_net;            /* Source network number */
        !            68:         at_node    dst_node;           /* Destination node ID */
        !            69:         at_node    src_node;           /* Source node ID */
        !            70:         at_socket  dst_socket;                 /* Destination socket number */
        !            71:         at_socket  src_socket;                 /* Source socket number */
        !            72:         u_char    type;                /* Protocol type */
        !            73:         char       data[DDP_DATA_SIZE];
        !            74: } at_ddp_t;
        !            75: 
        !            76: 
        !            77: #define        DDPLEN_ASSIGN(ddp, len)         ddp->length = len
        !            78: #define        DDPLEN_VALUE(ddp)               ddp->length
        !            79: 
        !            80: 
        !            81: /* DDP module statistics and configuration */
        !            82: 
        !            83: typedef struct {
        !            84:        /* General */
        !            85: 
        !            86:        /* Receive stats */
        !            87:        u_int   rcv_bytes;
        !            88:        u_int   rcv_packets;
        !            89:        u_int   rcv_bad_length;
        !            90:        u_int   rcv_unreg_socket;
        !            91:        u_int   rcv_bad_socket;
        !            92:        u_int   rcv_bad_checksum;
        !            93:        u_int   rcv_dropped_nobuf;
        !            94: 
        !            95:        /* Transmit stats */
        !            96:        u_int   xmit_bytes;
        !            97:        u_int   xmit_packets;
        !            98:        u_int   xmit_BRT_used;
        !            99:        u_int   xmit_bad_length;
        !           100:        u_int   xmit_bad_addr;
        !           101:        u_int   xmit_dropped_nobuf;
        !           102: } at_ddp_stats_t;
        !           103: 
        !           104: /* DDP streams module ioctls */
        !           105: 
        !           106: #define        AT_MID_DDP      203
        !           107: 
        !           108: #define DDP_IOC_MYIOCTL(i)      ((i>>8) == AT_MID_DDP)
        !           109: #define DDP_IOC_GET_CFG                ((AT_MID_DDP<<8) | 1)
        !           110: #define        DDP_IOC_GET_STATS       ((AT_MID_DDP<<8) | 3)
        !           111: 
        !           112: #ifdef NOT_USED
        !           113: #define DDP_IOC_BIND_SOCK      ((AT_MID_DDP<<8) | 2)
        !           114: #define DDP_IOC_LSTATUS_TABLE  ((AT_MID_DDP<<8) | 4)
        !           115: #define DDP_IOC_ULSTATUS_TABLE ((AT_MID_DDP<<8) | 5)
        !           116: #define DDP_IOC_RSTATUS_TABLE  ((AT_MID_DDP<<8) | 6)
        !           117: #define DDP_IOC_SET_WROFF      ((AT_MID_DDP<<8) | 7 )
        !           118: #define DDP_IOC_SET_OPTS       ((AT_MID_DDP<<8) | 8 )
        !           119: #define DDP_IOC_GET_OPTS       ((AT_MID_DDP<<8) | 9 )
        !           120: #define DDP_IOC_GET_SOCK       ((AT_MID_DDP<<8) | 10)
        !           121: #define DDP_IOC_GET_PEER       ((AT_MID_DDP<<8) | 11)
        !           122: #define DDP_IOC_SET_PEER       ((AT_MID_DDP<<8) | 12)
        !           123: #define DDP_IOC_SET_PROTO      ((AT_MID_DDP<<8) | 13)
        !           124: #endif
        !           125: 
        !           126: #ifdef KERNEL
        !           127: 
        !           128: #define DDP_MIN_NETWORK                0x0001
        !           129: #define        DDP_MAX_NETWORK         0xfffe
        !           130: #define        DDP_STARTUP_LOW         0xff00
        !           131: #define        DDP_STARTUP_HIGH        DDP_MAX_NETWORK
        !           132: 
        !           133: typedef        struct {
        !           134:        void **inputQ;
        !           135:        int  *pidM;
        !           136:        char  **socketM;
        !           137:        char  *dbgBits;
        !           138: } proto_reg_t;
        !           139: 
        !           140: /* *** note: this counts on the src address always being that of the
        !           141:        home port 
        !           142:    *** */
        !           143: #define FROM_US(ddp)   ((NET_VALUE(ddp->src_net) ==\
        !           144:        ifID_home->ifThisNode.s_net) && \
        !           145:        ifID_home->ifThisNode.s_node == ddp->src_node)
        !           146: 
        !           147: #define RT_LOOKUP_OKAY(ifID, ddp) \
        !           148:      ((ROUTING_MODE && ifID->ifRoutingState==PORT_ONLINE) || \
        !           149:       (MULTIHOME_MODE && FROM_US(ddp)))
        !           150: 
        !           151: #ifdef NOT_YET
        !           152: /* from sys_glue.c */
        !           153: int ddp_adjmsg(gbuf_t *m, int len);
        !           154: gbuf_t *ddp_growmsg(gbuf_t  *mp, int len);
        !           155:             
        !           156: /* from ddp.c */
        !           157: int ddp_add_if(at_ifaddr_t *ifID);
        !           158: int ddp_rem_if(at_ifaddr_t *ifID);
        !           159: int ddp_get_stats(at_ddp_stats_t *statsp);
        !           160: int ddp_bind_socket(ddp_socket_t *socketp);
        !           161: int ddp_close_socket(ddp_socket_t *socketp);
        !           162: int ddp_output(gbuf_t **mp, at_socket src_socket, int src_addr_included);
        !           163: void ddp_input(gbuf_t   *mp, at_ifaddr_t *ifID);
        !           164: int ddp_router_output(
        !           165:      gbuf_t  *mp,
        !           166:      at_ifaddr_t *ifID,
        !           167:      int addr_type,
        !           168:      at_net_al router_net,
        !           169:      at_node router_node,
        !           170:      etalk_addr_t *enet_addr);
        !           171: 
        !           172: /* from ddp_proto.c */
        !           173: int ddp_close(gref_t *gref);
        !           174: void ddp_putmsg(gref_t *gref, gbuf_t *mp);
        !           175: gbuf_t *ddp_compress_msg(gbuf_t *mp);
        !           176: void ddp_stop(gbuf_t *mioc, gref_t *gref);
        !           177:             
        !           178: /* in ddp_lap.c */
        !           179: void ddp_bit_reverse(struct etalk_addr multicast_addr);
        !           180: #endif /* NOT_YET */
        !           181: 
        !           182: #endif /* KERNEL */
        !           183: #endif /* _NETAT_DDP_H_ */

unix.superglobalmegacorp.com

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