1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * rocket.h --- the exported interface of the rocket driver to its configuration program. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Written by Theodore Ts'o, Copyright 1997. 6*4882a593Smuzhiyun * Copyright 1997 Comtrol Corporation. 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun /* Model Information Struct */ 11*4882a593Smuzhiyun typedef struct { 12*4882a593Smuzhiyun unsigned long model; 13*4882a593Smuzhiyun char modelString[80]; 14*4882a593Smuzhiyun unsigned long numPorts; 15*4882a593Smuzhiyun int loadrm2; 16*4882a593Smuzhiyun int startingPortNumber; 17*4882a593Smuzhiyun } rocketModel_t; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun struct rocket_config { 20*4882a593Smuzhiyun int line; 21*4882a593Smuzhiyun int flags; 22*4882a593Smuzhiyun int closing_wait; 23*4882a593Smuzhiyun int close_delay; 24*4882a593Smuzhiyun int port; 25*4882a593Smuzhiyun int reserved[32]; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun struct rocket_ports { 29*4882a593Smuzhiyun int tty_major; 30*4882a593Smuzhiyun int callout_major; 31*4882a593Smuzhiyun rocketModel_t rocketModel[8]; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun struct rocket_version { 35*4882a593Smuzhiyun char rocket_version[32]; 36*4882a593Smuzhiyun char rocket_date[32]; 37*4882a593Smuzhiyun char reserved[64]; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun /* 41*4882a593Smuzhiyun * Rocketport flags 42*4882a593Smuzhiyun */ 43*4882a593Smuzhiyun /*#define ROCKET_CALLOUT_NOHUP 0x00000001 */ 44*4882a593Smuzhiyun #define ROCKET_FORCE_CD 0x00000002 45*4882a593Smuzhiyun #define ROCKET_HUP_NOTIFY 0x00000004 46*4882a593Smuzhiyun #define ROCKET_SPLIT_TERMIOS 0x00000008 47*4882a593Smuzhiyun #define ROCKET_SPD_MASK 0x00000070 48*4882a593Smuzhiyun #define ROCKET_SPD_HI 0x00000010 /* Use 57600 instead of 38400 bps */ 49*4882a593Smuzhiyun #define ROCKET_SPD_VHI 0x00000020 /* Use 115200 instead of 38400 bps */ 50*4882a593Smuzhiyun #define ROCKET_SPD_SHI 0x00000030 /* Use 230400 instead of 38400 bps */ 51*4882a593Smuzhiyun #define ROCKET_SPD_WARP 0x00000040 /* Use 460800 instead of 38400 bps */ 52*4882a593Smuzhiyun #define ROCKET_SAK 0x00000080 53*4882a593Smuzhiyun #define ROCKET_SESSION_LOCKOUT 0x00000100 54*4882a593Smuzhiyun #define ROCKET_PGRP_LOCKOUT 0x00000200 55*4882a593Smuzhiyun #define ROCKET_RTS_TOGGLE 0x00000400 56*4882a593Smuzhiyun #define ROCKET_MODE_MASK 0x00003000 57*4882a593Smuzhiyun #define ROCKET_MODE_RS232 0x00000000 58*4882a593Smuzhiyun #define ROCKET_MODE_RS485 0x00001000 59*4882a593Smuzhiyun #define ROCKET_MODE_RS422 0x00002000 60*4882a593Smuzhiyun #define ROCKET_FLAGS 0x00003FFF 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #define ROCKET_USR_MASK 0x0071 /* Legal flags that non-privileged 63*4882a593Smuzhiyun * users can set or reset */ 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun /* 66*4882a593Smuzhiyun * For closing_wait and closing_wait2 67*4882a593Smuzhiyun */ 68*4882a593Smuzhiyun #define ROCKET_CLOSING_WAIT_NONE ASYNC_CLOSING_WAIT_NONE 69*4882a593Smuzhiyun #define ROCKET_CLOSING_WAIT_INF ASYNC_CLOSING_WAIT_INF 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun /* 72*4882a593Smuzhiyun * Rocketport ioctls -- "RP" 73*4882a593Smuzhiyun */ 74*4882a593Smuzhiyun #define RCKP_GET_CONFIG 0x00525002 75*4882a593Smuzhiyun #define RCKP_SET_CONFIG 0x00525003 76*4882a593Smuzhiyun #define RCKP_GET_PORTS 0x00525004 77*4882a593Smuzhiyun #define RCKP_RESET_RM2 0x00525005 78*4882a593Smuzhiyun #define RCKP_GET_VERSION 0x00525006 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun /* Rocketport Models */ 81*4882a593Smuzhiyun #define MODEL_RP32INTF 0x0001 /* RP 32 port w/external I/F */ 82*4882a593Smuzhiyun #define MODEL_RP8INTF 0x0002 /* RP 8 port w/external I/F */ 83*4882a593Smuzhiyun #define MODEL_RP16INTF 0x0003 /* RP 16 port w/external I/F */ 84*4882a593Smuzhiyun #define MODEL_RP8OCTA 0x0005 /* RP 8 port w/octa cable */ 85*4882a593Smuzhiyun #define MODEL_RP4QUAD 0x0004 /* RP 4 port w/quad cable */ 86*4882a593Smuzhiyun #define MODEL_RP8J 0x0006 /* RP 8 port w/RJ11 connectors */ 87*4882a593Smuzhiyun #define MODEL_RP4J 0x0007 /* RP 4 port w/RJ45 connectors */ 88*4882a593Smuzhiyun #define MODEL_RP8SNI 0x0008 /* RP 8 port w/ DB78 SNI connector */ 89*4882a593Smuzhiyun #define MODEL_RP16SNI 0x0009 /* RP 16 port w/ DB78 SNI connector */ 90*4882a593Smuzhiyun #define MODEL_RPP4 0x000A /* RP Plus 4 port */ 91*4882a593Smuzhiyun #define MODEL_RPP8 0x000B /* RP Plus 8 port */ 92*4882a593Smuzhiyun #define MODEL_RP2_232 0x000E /* RP Plus 2 port RS232 */ 93*4882a593Smuzhiyun #define MODEL_RP2_422 0x000F /* RP Plus 2 port RS232 */ 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun /* Rocketmodem II Models */ 96*4882a593Smuzhiyun #define MODEL_RP6M 0x000C /* RM 6 port */ 97*4882a593Smuzhiyun #define MODEL_RP4M 0x000D /* RM 4 port */ 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun /* Universal PCI boards */ 100*4882a593Smuzhiyun #define MODEL_UPCI_RP32INTF 0x0801 /* RP UPCI 32 port w/external I/F */ 101*4882a593Smuzhiyun #define MODEL_UPCI_RP8INTF 0x0802 /* RP UPCI 8 port w/external I/F */ 102*4882a593Smuzhiyun #define MODEL_UPCI_RP16INTF 0x0803 /* RP UPCI 16 port w/external I/F */ 103*4882a593Smuzhiyun #define MODEL_UPCI_RP8OCTA 0x0805 /* RP UPCI 8 port w/octa cable */ 104*4882a593Smuzhiyun #define MODEL_UPCI_RM3_8PORT 0x080C /* RP UPCI Rocketmodem III 8 port */ 105*4882a593Smuzhiyun #define MODEL_UPCI_RM3_4PORT 0x080C /* RP UPCI Rocketmodem III 4 port */ 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun /* Compact PCI 16 port */ 108*4882a593Smuzhiyun #define MODEL_CPCI_RP16INTF 0x0903 /* RP Compact PCI 16 port w/external I/F */ 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun /* All ISA boards */ 111*4882a593Smuzhiyun #define MODEL_ISA 0x1000 112