1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* 23 * Copyright 1992 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28/* All Rights Reserved */ 29 30 31#pragma ident "%Z%%M% %I% %E% SMI" 32 33#define OLDPACKSIZE 128 34 35#define PACKSIZE 64 36#define MINPACKSIZE 32 37#define MAXPACKSIZE 4096 38 39#define WINDOWS 7 40#define MINWINDOWS 1 41#define MAXWINDOWS 7 42 43 44struct header { 45 char sync; 46 char ksize; 47 unsigned short sum; 48 char cntl; 49 char ccntl; 50}; 51#define HDRSIZ 6 52 53struct pack { 54 short p_state; /* line state */ 55 short p_bits; /* mask for getepack */ 56 short p_rsize; /* input packet size */ 57 short p_xsize; /* output packet size */ 58 struct header p_ihbuf; /* input header */ 59 struct header p_ohbuf; /* output header */ 60 char *p_rptr; 61 char **p_ipool; 62 char p_xcount; /* # active output buffers */ 63 char p_rcount; 64 char p_nout,p_tout; 65 char p_lpsize; /* log(psize/32) */ 66 char p_timer; 67 char p_obusy; 68 char p_srxmit; 69 char p_rwindow; /* window size */ 70 char p_swindow; 71 char p_msg; /* control msg */ 72 char p_rmsg; /* repeated control msg */ 73 char p_ps,p_pr; /* last packet sent, recv'd */ 74 char p_rpr; 75 char p_nxtps; /* next output seq number */ 76 char p_imap; /* bit map of input buffers */ 77 char p_pscopy; /* newest output packet */ 78 char *p_ob[8]; /* output buffers */ 79 char *p_ib[8]; /* input buffers */ 80 char p_os[8]; /* output buffer status */ 81 char p_is[8]; /* input buffer status */ 82 short p_osum[8]; /* output checksums */ 83 short p_isum[8]; /* input checksums */ 84 int p_ifn, p_ofn; 85}; 86#define CHECK 0125252 87#define SYN 020 88#define MOD8 7 89#define ISCNTL(a) ((a & 0300)==0) 90#ifndef MIN 91#define MIN(a,b) ((a<b)? a:b) 92#endif 93 94extern char next[8]; 95extern char mask[8]; 96extern int npbits; 97extern int pkactive; 98extern int pkdebug; 99extern int pksizes[]; 100extern struct pack *Pk; 101 102/* 103 * driver state 104 */ 105#define DEAD 0 106#define INITa 1 107#define INITb 2 108#define INITab 3 109#define LIVE 010 110#define RXMIT 020 111#define RREJ 040 112#define PDEBUG 0200 113#define DRAINO 0400 114#define WAITO 01000 115#define DOWN 02000 116#define RCLOSE 04000 117#define BADFRAME 020000 118 119/* 120 * io buffer states 121 */ 122#define B_NULL 0 123#define B_READY 1 124#define B_SENT 2 125#define B_RESID 010 126#define B_COPY 020 127#define B_MARK 040 128#define B_SHORT 0100 129 130/* 131 * control messages 132 */ 133#define CLOSE 1 134#define RJ 2 135/* #define SRJ 3 */ /* not supported */ 136#define RR 4 137#define INITC 5 138#define INITB 6 139#define INITA 7 140 141#define M_RJ 4 142/* #define M_SRJ 010 */ /* not used */ 143#define M_RR 020 144#define M_INITC 040 145#define M_CLOSE 2 146#define M_INITA 0200 147#define M_INITB 0100 148 149/* 150 * packet ioctl buf 151 */ 152struct piocb { 153 unsigned t; 154 short psize; 155 short mode; 156 short state; 157 char window; 158}; 159