Annotation of kernel/bsd/netat/h/at_ddp.h, revision 1.1.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.