1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * INET An implementation of the TCP/IP protocol suite for the LINUX 3*53ee8cc1Swenshuai.xi * operating system. INET is implemented using the BSD Socket 4*53ee8cc1Swenshuai.xi * interface as the means of communication with the user level. 5*53ee8cc1Swenshuai.xi * 6*53ee8cc1Swenshuai.xi * Global definitions for the Frame relay interface. 7*53ee8cc1Swenshuai.xi * 8*53ee8cc1Swenshuai.xi * Version: @(#)if_ifrad.h 0.20 13 Apr 96 9*53ee8cc1Swenshuai.xi * 10*53ee8cc1Swenshuai.xi * Author: Mike McLagan <mike.mclagan@linux.org> 11*53ee8cc1Swenshuai.xi * 12*53ee8cc1Swenshuai.xi * Changes: 13*53ee8cc1Swenshuai.xi * 0.15 Mike McLagan Structure packing 14*53ee8cc1Swenshuai.xi * 15*53ee8cc1Swenshuai.xi * 0.20 Mike McLagan New flags for S508 buffer handling 16*53ee8cc1Swenshuai.xi * 17*53ee8cc1Swenshuai.xi * This program is free software; you can redistribute it and/or 18*53ee8cc1Swenshuai.xi * modify it under the terms of the GNU General Public License 19*53ee8cc1Swenshuai.xi * as published by the Free Software Foundation; either version 20*53ee8cc1Swenshuai.xi * 2 of the License, or (at your option) any later version. 21*53ee8cc1Swenshuai.xi */ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi #ifndef SDLA_H 24*53ee8cc1Swenshuai.xi #define SDLA_H 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xi /* adapter type */ 27*53ee8cc1Swenshuai.xi #define SDLA_TYPES 28*53ee8cc1Swenshuai.xi #define SDLA_S502A 5020 29*53ee8cc1Swenshuai.xi #define SDLA_S502E 5021 30*53ee8cc1Swenshuai.xi #define SDLA_S503 5030 31*53ee8cc1Swenshuai.xi #define SDLA_S507 5070 32*53ee8cc1Swenshuai.xi #define SDLA_S508 5080 33*53ee8cc1Swenshuai.xi #define SDLA_S509 5090 34*53ee8cc1Swenshuai.xi #define SDLA_UNKNOWN -1 35*53ee8cc1Swenshuai.xi 36*53ee8cc1Swenshuai.xi /* port selection flags for the S508 */ 37*53ee8cc1Swenshuai.xi #define SDLA_S508_PORT_V35 0x00 38*53ee8cc1Swenshuai.xi #define SDLA_S508_PORT_RS232 0x02 39*53ee8cc1Swenshuai.xi 40*53ee8cc1Swenshuai.xi /* Z80 CPU speeds */ 41*53ee8cc1Swenshuai.xi #define SDLA_CPU_3M 0x00 42*53ee8cc1Swenshuai.xi #define SDLA_CPU_5M 0x01 43*53ee8cc1Swenshuai.xi #define SDLA_CPU_7M 0x02 44*53ee8cc1Swenshuai.xi #define SDLA_CPU_8M 0x03 45*53ee8cc1Swenshuai.xi #define SDLA_CPU_10M 0x04 46*53ee8cc1Swenshuai.xi #define SDLA_CPU_16M 0x05 47*53ee8cc1Swenshuai.xi #define SDLA_CPU_12M 0x06 48*53ee8cc1Swenshuai.xi 49*53ee8cc1Swenshuai.xi /* some private IOCTLs */ 50*53ee8cc1Swenshuai.xi #define SDLA_IDENTIFY (FRAD_LAST_IOCTL + 1) 51*53ee8cc1Swenshuai.xi #define SDLA_CPUSPEED (FRAD_LAST_IOCTL + 2) 52*53ee8cc1Swenshuai.xi #define SDLA_PROTOCOL (FRAD_LAST_IOCTL + 3) 53*53ee8cc1Swenshuai.xi 54*53ee8cc1Swenshuai.xi #define SDLA_CLEARMEM (FRAD_LAST_IOCTL + 4) 55*53ee8cc1Swenshuai.xi #define SDLA_WRITEMEM (FRAD_LAST_IOCTL + 5) 56*53ee8cc1Swenshuai.xi #define SDLA_READMEM (FRAD_LAST_IOCTL + 6) 57*53ee8cc1Swenshuai.xi 58*53ee8cc1Swenshuai.xi struct sdla_mem { 59*53ee8cc1Swenshuai.xi int addr; 60*53ee8cc1Swenshuai.xi int len; 61*53ee8cc1Swenshuai.xi void *data; 62*53ee8cc1Swenshuai.xi }; 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi #define SDLA_START (FRAD_LAST_IOCTL + 7) 65*53ee8cc1Swenshuai.xi #define SDLA_STOP (FRAD_LAST_IOCTL + 8) 66*53ee8cc1Swenshuai.xi 67*53ee8cc1Swenshuai.xi /* some offsets in the Z80's memory space */ 68*53ee8cc1Swenshuai.xi #define SDLA_NMIADDR 0x0000 69*53ee8cc1Swenshuai.xi #define SDLA_CONF_ADDR 0x0010 70*53ee8cc1Swenshuai.xi #define SDLA_S502A_NMIADDR 0x0066 71*53ee8cc1Swenshuai.xi #define SDLA_CODE_BASEADDR 0x0100 72*53ee8cc1Swenshuai.xi #define SDLA_WINDOW_SIZE 0x2000 73*53ee8cc1Swenshuai.xi #define SDLA_ADDR_MASK 0x1FFF 74*53ee8cc1Swenshuai.xi 75*53ee8cc1Swenshuai.xi /* largest handleable block of data */ 76*53ee8cc1Swenshuai.xi #define SDLA_MAX_DATA 4080 77*53ee8cc1Swenshuai.xi #define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */ 78*53ee8cc1Swenshuai.xi #define SDLA_MAX_DLCI 24 79*53ee8cc1Swenshuai.xi 80*53ee8cc1Swenshuai.xi /* this should be the same as frad_conf */ 81*53ee8cc1Swenshuai.xi struct sdla_conf { 82*53ee8cc1Swenshuai.xi short station; 83*53ee8cc1Swenshuai.xi short config; 84*53ee8cc1Swenshuai.xi short kbaud; 85*53ee8cc1Swenshuai.xi short clocking; 86*53ee8cc1Swenshuai.xi short max_frm; 87*53ee8cc1Swenshuai.xi short T391; 88*53ee8cc1Swenshuai.xi short T392; 89*53ee8cc1Swenshuai.xi short N391; 90*53ee8cc1Swenshuai.xi short N392; 91*53ee8cc1Swenshuai.xi short N393; 92*53ee8cc1Swenshuai.xi short CIR_fwd; 93*53ee8cc1Swenshuai.xi short Bc_fwd; 94*53ee8cc1Swenshuai.xi short Be_fwd; 95*53ee8cc1Swenshuai.xi short CIR_bwd; 96*53ee8cc1Swenshuai.xi short Bc_bwd; 97*53ee8cc1Swenshuai.xi short Be_bwd; 98*53ee8cc1Swenshuai.xi }; 99*53ee8cc1Swenshuai.xi 100*53ee8cc1Swenshuai.xi /* this should be the same as dlci_conf */ 101*53ee8cc1Swenshuai.xi struct sdla_dlci_conf { 102*53ee8cc1Swenshuai.xi short config; 103*53ee8cc1Swenshuai.xi short CIR_fwd; 104*53ee8cc1Swenshuai.xi short Bc_fwd; 105*53ee8cc1Swenshuai.xi short Be_fwd; 106*53ee8cc1Swenshuai.xi short CIR_bwd; 107*53ee8cc1Swenshuai.xi short Bc_bwd; 108*53ee8cc1Swenshuai.xi short Be_bwd; 109*53ee8cc1Swenshuai.xi short Tc_fwd; 110*53ee8cc1Swenshuai.xi short Tc_bwd; 111*53ee8cc1Swenshuai.xi short Tf_max; 112*53ee8cc1Swenshuai.xi short Tb_max; 113*53ee8cc1Swenshuai.xi }; 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi void sdla(void *cfg_info, char *dev, struct frad_conf *conf, int quiet); 117*53ee8cc1Swenshuai.xi 118*53ee8cc1Swenshuai.xi 119*53ee8cc1Swenshuai.xi #endif 120