Annotation of kernel/bsd/netat/h/at_ddp.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_ddp.h: 2.0, 1.14; 7/14/92; Copyright 1988-89, Apple Computer, Inc." */
        !            38: #include <at/at_lap.h>
        !            39: #include <at/elap.h>
        !            40: 
        !            41: /* DDP short header used internal to the ddp module. */
        !            42: typedef struct {
        !            43:        unsigned        unused:6,
        !            44:                        length:10;      /* Datagram length */
        !            45:        at_socket       dst_socket;     /* Destination socket number.   */
        !            46:        at_socket       src_socket;     /* Source socket number.        */
        !            47:        u_char          type;           /* Protocol type.               */
        !            48:        u_char          data[594];      /* The DataGram buffer.         */
        !            49: } at_ddp_short_t;
        !            50: 
        !            51: typedef struct {
        !            52:        at_socket       number;         /* the number of this socket    */
        !            53:        u_char          flags;
        !            54:        u_char          otChecksum;
        !            55:        u_char          otType;
        !            56:        u_long          otPeerAddr;
        !            57:        union {
        !            58:                gref_t  *gref;  /* Upstream pointer     */
        !            59:                void    (*handler)();   /* Upstream handler routine     */
        !            60:        } sock_u;
        !            61:        void *dev;
        !            62: } ddp_socket_t;
        !            63: /* consts for flags above */
        !            64: #define        DDP_CALL_HANDLER        0x01    /* upstream is pointer to a routine */
        !            65: #define        DDP_SOCK_UPQ(socket)            ddp_socket[socket].sock_u.gref
        !            66: #define        DDP_SOCK_HANDLER(socket)        ddp_socket[socket].sock_u.handler
        !            67: 
        !            68: /* Table of minor numbers used */
        !            69: typedef        struct {
        !            70:        u_char          flags;          /* See below                       */
        !            71:        u_char          proto;
        !            72:        ddp_socket_t    *sock_entry;    /* pointer to the socket table entry */
        !            73:        int     pid;
        !            74: } ddp_dev_t;
        !            75: 
        !            76: /* Flags for the device table */
        !            77: #define DDPF_ALLOCATED 0x1             /* This device is active           */
        !            78: #define DDPF_SHUTDOWN  0x2             /* Shutdown occurred; don't use    */
        !            79: #define DDPF_OT                        0x04    /* OT interface channel */
        !            80: #define DDPF_LINKSTR   0x08    /* proto interface channel */
        !            81: #define DDPF_SI                        0x10    /* socket interface channel */
        !            82: 
        !            83: #define DDP_FLAGS(Q)           (((ddp_dev_t *)((Q)->info))->flags)
        !            84: #define        DDP_SOCKENTRY(Q)        (((ddp_dev_t *)((Q)->info))->sock_entry)
        !            85: #define        DDP_SOCKNUM(Q)          (DDP_SOCKENTRY(Q)->number)
        !            86: #define DDP_SOCKEVENT(Q)               (DDP_SOCKENTRY(Q)->eventq)
        !            87: 
        !            88: extern ddp_socket_t ddp_socket[];
        !            89: extern at_if_t *at_ifDefault;
        !            90: 
        !            91: #define        DDP_STARTUP_LOW         0xff00
        !            92: #define        DDP_STARTUP_HIGH        0xfffe
        !            93: 
        !            94: typedef        struct {
        !            95:        void **inputQ;
        !            96:        int  *pidM;
        !            97:        char  **socketM;
        !            98:        char  *dbgBits;
        !            99: } proto_reg_t;
        !           100: 
        !           101: #define FROM_US(ddp)   (NET_EQUAL(ddp->src_net,\
        !           102:        ifID_table[IFID_HOME]->ifThisNode.atalk_net) && \
        !           103:        ifID_table[IFID_HOME]->ifThisNode.atalk_node == ddp->src_node)
        !           104: 
        !           105: /* Queue format expected by queue instructions */
        !           106: typedef struct LIB_QELEM {
        !           107:   struct LIB_QELEM        *q_forw;
        !           108:   struct LIB_QELEM        *q_back;
        !           109: } LIB_QELEM_T;
        !           110: 
        !           111: /* from sys_glue.c */
        !           112: int ddp_adjmsg(gbuf_t *m, int len);
        !           113: gbuf_t *ddp_growmsg(gbuf_t  *mp, int len);
        !           114: void ddp_insque(LIB_QELEM_T *elem, LIB_QELEM_T *prev);
        !           115: void ddp_remque(LIB_QELEM_T *elem);
        !           116:             
        !           117: /* from ddp.c */
        !           118: int ddp_add_if(at_if_t *ifID);
        !           119: int ddp_rem_if(at_if_t *ifID);
        !           120: int ddp_get_cfg(at_ddp_cfg_t *cfgp, at_socket src_socket);
        !           121: int ddp_get_stats(at_ddp_stats_t *statsp);
        !           122: int ddp_bind_socket(ddp_socket_t *socketp);
        !           123: int ddp_close_socket(ddp_socket_t *socketp);
        !           124: int ddp_output(gbuf_t **mp, at_socket src_socket, int src_addr_included);
        !           125: void ddp_input(gbuf_t   *mp, at_if_t *ifID);
        !           126: int ddp_router_output(
        !           127:      gbuf_t  *mp,
        !           128:      at_if_t *ifID,
        !           129:      int addr_type,
        !           130:      at_net_al router_net,
        !           131:      at_node router_node,
        !           132:      etalk_addr_t *enet_addr);
        !           133: 
        !           134: /* from ddp_proto.c */
        !           135: int ddp_open(gref_t *gref);
        !           136: int ddp_close(gref_t *gref);
        !           137: int ddp_putmsg(gref_t *gref, gbuf_t *mp);
        !           138: char *ddps_init();
        !           139: int ddps_shutdown(gref_t *grefInput);
        !           140: gbuf_t *ddp_compress_msg(gbuf_t *mp);
        !           141: void ddp_stop(gbuf_t *mioc, gref_t *gref);
        !           142:             
        !           143: /* in ddp_lap.c */
        !           144: void ddp_bit_reverse();
        !           145: 

unix.superglobalmegacorp.com

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