[PATCH] lindent rio drivers
Run all rio files through indent -kr -i8 -bri0 -l255, as requested by Alan. rioboot.c and rioinit.c were skipped due to worrisome lindent warnings. Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
a941564458
commit
8d8706e2f8
72 changed files with 7230 additions and 7879 deletions
|
@ -52,63 +52,57 @@ static char *_board_h_sccs_ = "@(#)board.h 1.2";
|
|||
/*
|
||||
** The shape of the Host Control area, at offset 0x7C00, Write Only
|
||||
*/
|
||||
struct s_Ctrl
|
||||
{
|
||||
BYTE DpCtl; /* 7C00 */
|
||||
BYTE Dp_Unused2_[127];
|
||||
BYTE DpIntSet; /* 7C80 */
|
||||
BYTE Dp_Unused3_[127];
|
||||
BYTE DpTpuReset; /* 7D00 */
|
||||
BYTE Dp_Unused4_[127];
|
||||
BYTE DpIntReset; /* 7D80 */
|
||||
BYTE Dp_Unused5_[127];
|
||||
struct s_Ctrl {
|
||||
BYTE DpCtl; /* 7C00 */
|
||||
BYTE Dp_Unused2_[127];
|
||||
BYTE DpIntSet; /* 7C80 */
|
||||
BYTE Dp_Unused3_[127];
|
||||
BYTE DpTpuReset; /* 7D00 */
|
||||
BYTE Dp_Unused4_[127];
|
||||
BYTE DpIntReset; /* 7D80 */
|
||||
BYTE Dp_Unused5_[127];
|
||||
};
|
||||
|
||||
/*
|
||||
** The PROM data area on the host (0x7C00), Read Only
|
||||
*/
|
||||
struct s_Prom
|
||||
{
|
||||
WORD DpSlxCode[2];
|
||||
WORD DpRev;
|
||||
WORD Dp_Unused6_;
|
||||
WORD DpUniq[4];
|
||||
WORD DpJahre;
|
||||
WORD DpWoche;
|
||||
WORD DpHwFeature[5];
|
||||
WORD DpOemId;
|
||||
WORD DpSiggy[16];
|
||||
struct s_Prom {
|
||||
WORD DpSlxCode[2];
|
||||
WORD DpRev;
|
||||
WORD Dp_Unused6_;
|
||||
WORD DpUniq[4];
|
||||
WORD DpJahre;
|
||||
WORD DpWoche;
|
||||
WORD DpHwFeature[5];
|
||||
WORD DpOemId;
|
||||
WORD DpSiggy[16];
|
||||
};
|
||||
|
||||
/*
|
||||
** Union of the Ctrl and Prom areas
|
||||
*/
|
||||
union u_CtrlProm /* This is the control/PROM area (0x7C00) */
|
||||
{
|
||||
struct s_Ctrl DpCtrl;
|
||||
struct s_Prom DpProm;
|
||||
union u_CtrlProm { /* This is the control/PROM area (0x7C00) */
|
||||
struct s_Ctrl DpCtrl;
|
||||
struct s_Prom DpProm;
|
||||
};
|
||||
|
||||
/*
|
||||
** The top end of memory!
|
||||
*/
|
||||
struct s_ParmMapS /* Area containing Parm Map Pointer */
|
||||
{
|
||||
BYTE Dp_Unused8_[DP_PARMMAP_ADDR];
|
||||
WORD DpParmMapAd;
|
||||
struct s_ParmMapS { /* Area containing Parm Map Pointer */
|
||||
BYTE Dp_Unused8_[DP_PARMMAP_ADDR];
|
||||
WORD DpParmMapAd;
|
||||
};
|
||||
|
||||
struct s_StartUpS
|
||||
{
|
||||
BYTE Dp_Unused9_[DP_STARTUP_ADDR];
|
||||
BYTE Dp_LongJump[0x4];
|
||||
BYTE Dp_Unused10_[2];
|
||||
BYTE Dp_ShortJump[0x2];
|
||||
struct s_StartUpS {
|
||||
BYTE Dp_Unused9_[DP_STARTUP_ADDR];
|
||||
BYTE Dp_LongJump[0x4];
|
||||
BYTE Dp_Unused10_[2];
|
||||
BYTE Dp_ShortJump[0x2];
|
||||
};
|
||||
|
||||
union u_Sram2ParmMap /* This is the top of memory (0x7E00-0x7FFF) */
|
||||
{
|
||||
BYTE DpSramMem[DP_SRAM2_SIZE];
|
||||
union u_Sram2ParmMap { /* This is the top of memory (0x7E00-0x7FFF) */
|
||||
BYTE DpSramMem[DP_SRAM2_SIZE];
|
||||
struct s_ParmMapS DpParmMapS;
|
||||
struct s_StartUpS DpStartUpS;
|
||||
};
|
||||
|
@ -116,13 +110,12 @@ union u_Sram2ParmMap /* This is the top of memory (0x7E00-0x7FFF) */
|
|||
/*
|
||||
** This is the DP RAM overlay.
|
||||
*/
|
||||
struct DpRam
|
||||
{
|
||||
BYTE DpSram1[DP_SRAM1_SIZE]; /* 0000 - 7BFF */
|
||||
union u_CtrlProm DpCtrlProm; /* 7C00 - 7DFF */
|
||||
union u_Sram2ParmMap DpSram2ParmMap; /* 7E00 - 7FFF */
|
||||
BYTE DpScratch[DP_SCRATCH_SIZE]; /* 8000 - 8FFF */
|
||||
BYTE DpSram3[DP_SRAM3_SIZE]; /* 9000 - FFFF */
|
||||
struct DpRam {
|
||||
BYTE DpSram1[DP_SRAM1_SIZE]; /* 0000 - 7BFF */
|
||||
union u_CtrlProm DpCtrlProm; /* 7C00 - 7DFF */
|
||||
union u_Sram2ParmMap DpSram2ParmMap; /* 7E00 - 7FFF */
|
||||
BYTE DpScratch[DP_SCRATCH_SIZE]; /* 8000 - 8FFF */
|
||||
BYTE DpSram3[DP_SRAM3_SIZE]; /* 9000 - FFFF */
|
||||
};
|
||||
|
||||
#define DpControl DpCtrlProm.DpCtrl.DpCtl
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_bootpkt_h_sccs = "@(#)bootpkt.h 1.1" ;
|
||||
static char *_rio_bootpkt_h_sccs = "@(#)bootpkt.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -49,14 +49,13 @@ static char *_rio_bootpkt_h_sccs = "@(#)bootpkt.h 1.1" ;
|
|||
* Overlayed onto the Data fields of a regular
|
||||
* Packet
|
||||
************************************************/
|
||||
typedef struct BOOT_PKT BOOT_PKT ;
|
||||
typedef struct BOOT_PKT BOOT_PKT;
|
||||
struct BOOT_PKT {
|
||||
short seq_num ;
|
||||
char data[10] ;
|
||||
} ;
|
||||
short seq_num;
|
||||
char data[10];
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -97,11 +97,10 @@
|
|||
|
||||
#define MAX_RATE B2000
|
||||
|
||||
struct baud_rate /* Tag for baud rates */
|
||||
{
|
||||
/* short host_rate,*/ /* As passed by the driver */
|
||||
short divisor, /* The divisor */
|
||||
prescaler; /* The pre-scaler */
|
||||
struct baud_rate { /* Tag for baud rates */
|
||||
/* short host_rate, *//* As passed by the driver */
|
||||
short divisor, /* The divisor */
|
||||
prescaler; /* The pre-scaler */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_chan_h_sccs = "@(#)chan.h 1.1" ;
|
||||
static char *_rio_chan_h_sccs = "@(#)chan.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -73,20 +73,20 @@
|
|||
#define TIMER_TICK 0x82
|
||||
#define STOP_BREAK 0x83
|
||||
#define BASE(a) ((a) < 4 ? (short*)CIRRUS_FIRST : ((a) < 8 ? (short *)CIRRUS_SECOND : ((a) < 12 ? (short*)CIRRUS_THIRD : (short *)CIRRUS_FOURTH)))
|
||||
#define txack1 ((short *)0x7104)
|
||||
#define rxack1 ((short *)0x7102)
|
||||
#define txack1 ((short *)0x7104)
|
||||
#define rxack1 ((short *)0x7102)
|
||||
#define mdack1 ((short *)0x7106)
|
||||
#define txack2 ((short *)0x7006)
|
||||
#define rxack2 ((short *)0x7004)
|
||||
#define mdack2 ((short *)0x7100)
|
||||
#define txack2 ((short *)0x7006)
|
||||
#define rxack2 ((short *)0x7004)
|
||||
#define mdack2 ((short *)0x7100)
|
||||
#define int_latch ((short *) 0x7800)
|
||||
#define int_status ((short *) 0x7c00)
|
||||
#define tx1_pending 0x20
|
||||
#define rx1_pending 0x10
|
||||
#define md1_pending 0x40
|
||||
#define tx2_pending 0x02
|
||||
#define rx2_pending 0x01
|
||||
#define md2_pending 0x40
|
||||
#define int_status ((short *) 0x7c00)
|
||||
#define tx1_pending 0x20
|
||||
#define rx1_pending 0x10
|
||||
#define md1_pending 0x40
|
||||
#define tx2_pending 0x02
|
||||
#define rx2_pending 0x01
|
||||
#define md2_pending 0x40
|
||||
#define module1_bits 0x07
|
||||
#define module1_modern 0x08
|
||||
#define module2_bits 0x70
|
||||
|
@ -113,65 +113,65 @@
|
|||
NB. These registers are relative values on 8 bit boundaries whereas
|
||||
on the RTA's the CIRRUS registers are on word boundaries. Use pointer
|
||||
arithmetic (short *) to obtain the real addresses required */
|
||||
#define ccr 0x05 /* Channel Command Register */
|
||||
#define ier 0x06 /* Interrupt Enable Register */
|
||||
#define cor1 0x08 /* Channel Option Register 1 */
|
||||
#define cor2 0x09 /* Channel Option Register 2 */
|
||||
#define cor3 0x0a /* Channel Option Register 3 */
|
||||
#define cor4 0x1e /* Channel Option Register 4 */
|
||||
#define cor5 0x1f /* Channel Option Register 5 */
|
||||
#define ccr 0x05 /* Channel Command Register */
|
||||
#define ier 0x06 /* Interrupt Enable Register */
|
||||
#define cor1 0x08 /* Channel Option Register 1 */
|
||||
#define cor2 0x09 /* Channel Option Register 2 */
|
||||
#define cor3 0x0a /* Channel Option Register 3 */
|
||||
#define cor4 0x1e /* Channel Option Register 4 */
|
||||
#define cor5 0x1f /* Channel Option Register 5 */
|
||||
|
||||
#define ccsr 0x0b /* Channel Control Status Register */
|
||||
#define rdcr 0x0e /* Receive Data Count Register */
|
||||
#define tdcr 0x12 /* Transmit Data Count Register */
|
||||
#define mcor1 0x15 /* Modem Change Option Register 1 */
|
||||
#define mcor2 0x16 /* Modem Change Option Regsiter 2 */
|
||||
#define ccsr 0x0b /* Channel Control Status Register */
|
||||
#define rdcr 0x0e /* Receive Data Count Register */
|
||||
#define tdcr 0x12 /* Transmit Data Count Register */
|
||||
#define mcor1 0x15 /* Modem Change Option Register 1 */
|
||||
#define mcor2 0x16 /* Modem Change Option Regsiter 2 */
|
||||
|
||||
#define livr 0x18 /* Local Interrupt Vector Register */
|
||||
#define schr1 0x1a /* Special Character Register 1 */
|
||||
#define schr2 0x1b /* Special Character Register 2 */
|
||||
#define schr3 0x1c /* Special Character Register 3 */
|
||||
#define schr4 0x1d /* Special Character Register 4 */
|
||||
#define livr 0x18 /* Local Interrupt Vector Register */
|
||||
#define schr1 0x1a /* Special Character Register 1 */
|
||||
#define schr2 0x1b /* Special Character Register 2 */
|
||||
#define schr3 0x1c /* Special Character Register 3 */
|
||||
#define schr4 0x1d /* Special Character Register 4 */
|
||||
|
||||
#define rtr 0x20 /* Receive Timer Register */
|
||||
#define rtpr 0x21 /* Receive Timeout Period Register */
|
||||
#define lnc 0x24 /* Lnext character */
|
||||
#define rtr 0x20 /* Receive Timer Register */
|
||||
#define rtpr 0x21 /* Receive Timeout Period Register */
|
||||
#define lnc 0x24 /* Lnext character */
|
||||
|
||||
#define rivr 0x43 /* Receive Interrupt Vector Register */
|
||||
#define tivr 0x42 /* Transmit Interrupt Vector Register */
|
||||
#define mivr 0x41 /* Modem Interrupt Vector Register */
|
||||
#define gfrcr 0x40 /* Global Firmware Revision code Reg */
|
||||
#define ricr 0x44 /* Receive Interrupting Channel Reg */
|
||||
#define ticr 0x45 /* Transmit Interrupting Channel Reg */
|
||||
#define micr 0x46 /* Modem Interrupting Channel Register */
|
||||
#define rivr 0x43 /* Receive Interrupt Vector Register */
|
||||
#define tivr 0x42 /* Transmit Interrupt Vector Register */
|
||||
#define mivr 0x41 /* Modem Interrupt Vector Register */
|
||||
#define gfrcr 0x40 /* Global Firmware Revision code Reg */
|
||||
#define ricr 0x44 /* Receive Interrupting Channel Reg */
|
||||
#define ticr 0x45 /* Transmit Interrupting Channel Reg */
|
||||
#define micr 0x46 /* Modem Interrupting Channel Register */
|
||||
|
||||
#define gcr 0x4b /* Global configuration register*/
|
||||
#define misr 0x4c /* Modem interrupt status register */
|
||||
#define gcr 0x4b /* Global configuration register */
|
||||
#define misr 0x4c /* Modem interrupt status register */
|
||||
|
||||
#define rbusr 0x59
|
||||
#define tbusr 0x5a
|
||||
#define mbusr 0x5b
|
||||
|
||||
#define eoir 0x60 /* End Of Interrupt Register */
|
||||
#define rdsr 0x62 /* Receive Data / Status Register */
|
||||
#define tdr 0x63 /* Transmit Data Register */
|
||||
#define svrr 0x67 /* Service Request Register */
|
||||
#define eoir 0x60 /* End Of Interrupt Register */
|
||||
#define rdsr 0x62 /* Receive Data / Status Register */
|
||||
#define tdr 0x63 /* Transmit Data Register */
|
||||
#define svrr 0x67 /* Service Request Register */
|
||||
|
||||
#define car 0x68 /* Channel Access Register */
|
||||
#define mir 0x69 /* Modem Interrupt Register */
|
||||
#define tir 0x6a /* Transmit Interrupt Register */
|
||||
#define rir 0x6b /* Receive Interrupt Register */
|
||||
#define msvr1 0x6c /* Modem Signal Value Register 1 */
|
||||
#define msvr2 0x6d /* Modem Signal Value Register 2*/
|
||||
#define psvr 0x6f /* Printer Signal Value Register*/
|
||||
#define car 0x68 /* Channel Access Register */
|
||||
#define mir 0x69 /* Modem Interrupt Register */
|
||||
#define tir 0x6a /* Transmit Interrupt Register */
|
||||
#define rir 0x6b /* Receive Interrupt Register */
|
||||
#define msvr1 0x6c /* Modem Signal Value Register 1 */
|
||||
#define msvr2 0x6d /* Modem Signal Value Register 2 */
|
||||
#define psvr 0x6f /* Printer Signal Value Register */
|
||||
|
||||
#define tbpr 0x72 /* Transmit Baud Rate Period Register */
|
||||
#define tcor 0x76 /* Transmit Clock Option Register */
|
||||
#define tbpr 0x72 /* Transmit Baud Rate Period Register */
|
||||
#define tcor 0x76 /* Transmit Clock Option Register */
|
||||
|
||||
#define rbpr 0x78 /* Receive Baud Rate Period Register */
|
||||
#define rber 0x7a /* Receive Baud Rate Extension Register */
|
||||
#define rcor 0x7c /* Receive Clock Option Register*/
|
||||
#define ppr 0x7e /* Prescalar Period Register */
|
||||
#define rbpr 0x78 /* Receive Baud Rate Period Register */
|
||||
#define rber 0x7a /* Receive Baud Rate Extension Register */
|
||||
#define rcor 0x7c /* Receive Clock Option Register */
|
||||
#define ppr 0x7e /* Prescalar Period Register */
|
||||
|
||||
/* Misc registers used for forcing the 1400 out of its reset woes */
|
||||
#define airl 0x6d
|
||||
|
@ -192,10 +192,10 @@
|
|||
|
||||
/* RDSR - when status read from FIFO */
|
||||
#define RDSR_BREAK 0x08 /* Break received */
|
||||
#define RDSR_TIMEOUT 0x80 /* No new data timeout */
|
||||
#define RDSR_SC1 0x10 /* Special char 1 (tx XON) matched */
|
||||
#define RDSR_SC2 0x20 /* Special char 2 (tx XOFF) matched */
|
||||
#define RDSR_SC12_MASK 0x30 /* Mask for special chars 1 and 2 */
|
||||
#define RDSR_TIMEOUT 0x80 /* No new data timeout */
|
||||
#define RDSR_SC1 0x10 /* Special char 1 (tx XON) matched */
|
||||
#define RDSR_SC2 0x20 /* Special char 2 (tx XOFF) matched */
|
||||
#define RDSR_SC12_MASK 0x30 /* Mask for special chars 1 and 2 */
|
||||
|
||||
/* PPR */
|
||||
#define PPR_DEFAULT 0x31 /* Default value - for a 25Mhz clock gives
|
||||
|
@ -244,7 +244,7 @@
|
|||
#define IER_TIMEOUT 0x01 /* Timeout on no data */
|
||||
|
||||
#define IER_DEFAULT 0x94 /* Default values */
|
||||
#define IER_PARALLEL 0x84 /* Default for Parallel */
|
||||
#define IER_PARALLEL 0x84 /* Default for Parallel */
|
||||
#define IER_EMPTY 0x92 /* Transmitter empty rather than ready */
|
||||
|
||||
/* COR1 - Driver only */
|
||||
|
@ -264,11 +264,11 @@
|
|||
#define COR1_7BITS 0x02 /* 7 data bits */
|
||||
#define COR1_8BITS 0x03 /* 8 data bits */
|
||||
|
||||
#define COR1_HOST 0xef /* Safe host bits */
|
||||
#define COR1_HOST 0xef /* Safe host bits */
|
||||
|
||||
/* RTA only */
|
||||
#define COR1_CINPCK 0x00 /* Check parity of received characters */
|
||||
#define COR1_CNINPCK 0x10 /* Don't check parity */
|
||||
#define COR1_CINPCK 0x00 /* Check parity of received characters */
|
||||
#define COR1_CNINPCK 0x10 /* Don't check parity */
|
||||
|
||||
/* COR2 bits for both RTA and driver use */
|
||||
#define COR2_IXANY 0x80 /* IXANY - any character is XON */
|
||||
|
@ -293,9 +293,9 @@
|
|||
#define COR3_FCT 0x20 /* Flow control transparency */
|
||||
#define COR3_SCD12 0x10 /* Special character detect for SCHR's 1 + 2 */
|
||||
#define COR3_FIFO12 0x0c /* 12 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO10 0x0a /* 10 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO8 0x08 /* 8 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO6 0x06 /* 6 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO10 0x0a /* 10 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO8 0x08 /* 8 chars for receive FIFO threshold */
|
||||
#define COR3_FIFO6 0x06 /* 6 chars for receive FIFO threshold */
|
||||
|
||||
#define COR3_THRESHOLD COR3_FIFO8 /* MUST BE LESS THAN MCOR_THRESHOLD */
|
||||
|
||||
|
@ -386,7 +386,7 @@
|
|||
|
||||
#define MCOR_THRESHBITS 0x0F /* mask for ANDing out the above */
|
||||
|
||||
#define MCOR_THRESHOLD MCOR_THRESH9 /* MUST BE GREATER THAN COR3_THRESHOLD */
|
||||
#define MCOR_THRESHOLD MCOR_THRESH9 /* MUST BE GREATER THAN COR3_THRESHOLD */
|
||||
|
||||
|
||||
/* RTPR */
|
||||
|
@ -429,25 +429,25 @@
|
|||
#define CONFIG 0x01 /* Configure a port */
|
||||
#define MOPEN 0x02 /* Modem open (block for DCD) */
|
||||
#define CLOSE 0x03 /* Close a port */
|
||||
#define WFLUSH (0x04 | PRE_EMPTIVE) /* Write flush */
|
||||
#define RFLUSH (0x05 | PRE_EMPTIVE) /* Read flush */
|
||||
#define RESUME (0x06 | PRE_EMPTIVE) /* Resume if xoffed */
|
||||
#define SBREAK 0x07 /* Start break */
|
||||
#define WFLUSH (0x04 | PRE_EMPTIVE) /* Write flush */
|
||||
#define RFLUSH (0x05 | PRE_EMPTIVE) /* Read flush */
|
||||
#define RESUME (0x06 | PRE_EMPTIVE) /* Resume if xoffed */
|
||||
#define SBREAK 0x07 /* Start break */
|
||||
#define EBREAK 0x08 /* End break */
|
||||
#define SUSPEND (0x09 | PRE_EMPTIVE) /* Susp op (behave as tho xoffed) */
|
||||
#define FCLOSE (0x0a | PRE_EMPTIVE) /* Force close */
|
||||
#define XPRINT 0x0b /* Xprint packet */
|
||||
#define MBIS (0x0c | PRE_EMPTIVE) /* Set modem lines */
|
||||
#define MBIC (0x0d | PRE_EMPTIVE) /* Clear modem lines */
|
||||
#define MSET (0x0e | PRE_EMPTIVE) /* Set modem lines */
|
||||
#define SUSPEND (0x09 | PRE_EMPTIVE) /* Susp op (behave as tho xoffed) */
|
||||
#define FCLOSE (0x0a | PRE_EMPTIVE) /* Force close */
|
||||
#define XPRINT 0x0b /* Xprint packet */
|
||||
#define MBIS (0x0c | PRE_EMPTIVE) /* Set modem lines */
|
||||
#define MBIC (0x0d | PRE_EMPTIVE) /* Clear modem lines */
|
||||
#define MSET (0x0e | PRE_EMPTIVE) /* Set modem lines */
|
||||
#define PCLOSE 0x0f /* Pseudo close - Leaves rx/tx enabled */
|
||||
#define MGET (0x10 | PRE_EMPTIVE) /* Force update of modem status */
|
||||
#define MEMDUMP (0x11 | PRE_EMPTIVE) /* Send back mem from addr supplied */
|
||||
#define READ_REGISTER (0x12 | PRE_EMPTIVE) /* Read CD1400 register (debug) */
|
||||
#define MGET (0x10 | PRE_EMPTIVE) /* Force update of modem status */
|
||||
#define MEMDUMP (0x11 | PRE_EMPTIVE) /* Send back mem from addr supplied */
|
||||
#define READ_REGISTER (0x12 | PRE_EMPTIVE) /* Read CD1400 register (debug) */
|
||||
|
||||
/* "Command" packets going from remote to host COMPLETE and MODEM_STATUS
|
||||
use data[4] / data[3] to indicate current state and modem status respectively
|
||||
*/
|
||||
*/
|
||||
|
||||
#define COMPLETE (0x20 | PRE_EMPTIVE)
|
||||
/* Command complete */
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_cmd_h_sccs = "@(#)cmd.h 1.1" ;
|
||||
static char *_rio_cmd_h_sccs = "@(#)cmd.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -52,7 +52,7 @@ static char *_rio_cmd_h_sccs = "@(#)cmd.h 1.1" ;
|
|||
|
||||
#define CMD_IGNORE_PKT ( (ushort) 0)
|
||||
#define CMD_STATUS_REQ ( (ushort) 1)
|
||||
#define CMD_UNIT_STATUS_REQ ( (ushort) 2) /* Is this needed ??? */
|
||||
#define CMD_UNIT_STATUS_REQ ( (ushort) 2) /* Is this needed ??? */
|
||||
#define CMD_CONF_PORT ( (ushort) 3)
|
||||
#define CMD_CONF_UNIT ( (ushort) 4)
|
||||
#define CMD_ROUTE_MAP_REQ ( (ushort) 5)
|
||||
|
@ -81,4 +81,3 @@ static char *_rio_cmd_h_sccs = "@(#)cmd.h 1.1" ;
|
|||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -44,16 +44,15 @@ static char *_cmdblk_h_sccs_ = "@(#)cmdblk.h 1.2";
|
|||
** a rup.
|
||||
*/
|
||||
|
||||
struct CmdBlk
|
||||
{
|
||||
struct CmdBlk *NextP; /* Pointer to next command block */
|
||||
struct PKT Packet; /* A packet, to copy to the rup */
|
||||
/* The func to call to check if OK */
|
||||
int (*PreFuncP)(int, struct CmdBlk *);
|
||||
int PreArg; /* The arg for the func */
|
||||
/* The func to call when completed */
|
||||
int (*PostFuncP)(int, struct CmdBlk *);
|
||||
int PostArg; /* The arg for the func */
|
||||
struct CmdBlk {
|
||||
struct CmdBlk *NextP; /* Pointer to next command block */
|
||||
struct PKT Packet; /* A packet, to copy to the rup */
|
||||
/* The func to call to check if OK */
|
||||
int (*PreFuncP) (int, struct CmdBlk *);
|
||||
int PreArg; /* The arg for the func */
|
||||
/* The func to call when completed */
|
||||
int (*PostFuncP) (int, struct CmdBlk *);
|
||||
int PostArg; /* The arg for the func */
|
||||
};
|
||||
|
||||
#define NUM_RIO_CMD_BLKS (3 * (MAX_RUP * 4 + LINKS_PER_UNIT * 4))
|
||||
|
|
|
@ -54,135 +54,112 @@ static char *_cmdpkt_h_sccs_ = "@(#)cmdpkt.h 1.2";
|
|||
** This structure overlays a PktCmd->CmdData structure, and so starts
|
||||
** at Data[2] in the actual pkt!
|
||||
*/
|
||||
struct BootSequence
|
||||
{
|
||||
WORD NumPackets;
|
||||
WORD LoadBase;
|
||||
WORD CodeSize;
|
||||
struct BootSequence {
|
||||
WORD NumPackets;
|
||||
WORD LoadBase;
|
||||
WORD CodeSize;
|
||||
};
|
||||
|
||||
#define BOOT_SEQUENCE_LEN 8
|
||||
|
||||
struct SamTop
|
||||
{
|
||||
BYTE Unit;
|
||||
BYTE Link;
|
||||
struct SamTop {
|
||||
BYTE Unit;
|
||||
BYTE Link;
|
||||
};
|
||||
|
||||
struct CmdHdr
|
||||
{
|
||||
BYTE PcCommand;
|
||||
union
|
||||
{
|
||||
BYTE PcPhbNum;
|
||||
BYTE PcLinkNum;
|
||||
BYTE PcIDNum;
|
||||
} U0;
|
||||
struct CmdHdr {
|
||||
BYTE PcCommand;
|
||||
union {
|
||||
BYTE PcPhbNum;
|
||||
BYTE PcLinkNum;
|
||||
BYTE PcIDNum;
|
||||
} U0;
|
||||
};
|
||||
|
||||
|
||||
struct PktCmd
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
struct CmdHdr CmdHdr;
|
||||
struct BootSequence PcBootSequence;
|
||||
} S1;
|
||||
struct
|
||||
{
|
||||
WORD PcSequence;
|
||||
BYTE PcBootData[RTA_BOOT_DATA_SIZE];
|
||||
} S2;
|
||||
struct
|
||||
{
|
||||
WORD __crud__;
|
||||
BYTE PcUniqNum[4]; /* this is really a uint. */
|
||||
BYTE PcModuleTypes; /* what modules are fitted */
|
||||
} S3;
|
||||
struct
|
||||
{
|
||||
struct CmdHdr CmdHdr;
|
||||
BYTE __undefined__;
|
||||
BYTE PcModemStatus;
|
||||
BYTE PcPortStatus;
|
||||
BYTE PcSubCommand; /* commands like mem or register dump */
|
||||
WORD PcSubAddr; /* Address for command */
|
||||
BYTE PcSubData[64]; /* Date area for command */
|
||||
} S4;
|
||||
struct
|
||||
{
|
||||
struct CmdHdr CmdHdr;
|
||||
BYTE PcCommandText[1];
|
||||
BYTE __crud__[20];
|
||||
BYTE PcIDNum2; /* It had to go somewhere! */
|
||||
} S5;
|
||||
struct
|
||||
{
|
||||
struct CmdHdr CmdHdr;
|
||||
struct SamTop Topology[LINKS_PER_UNIT];
|
||||
} S6;
|
||||
} U1;
|
||||
struct PktCmd {
|
||||
union {
|
||||
struct {
|
||||
struct CmdHdr CmdHdr;
|
||||
struct BootSequence PcBootSequence;
|
||||
} S1;
|
||||
struct {
|
||||
WORD PcSequence;
|
||||
BYTE PcBootData[RTA_BOOT_DATA_SIZE];
|
||||
} S2;
|
||||
struct {
|
||||
WORD __crud__;
|
||||
BYTE PcUniqNum[4]; /* this is really a uint. */
|
||||
BYTE PcModuleTypes; /* what modules are fitted */
|
||||
} S3;
|
||||
struct {
|
||||
struct CmdHdr CmdHdr;
|
||||
BYTE __undefined__;
|
||||
BYTE PcModemStatus;
|
||||
BYTE PcPortStatus;
|
||||
BYTE PcSubCommand; /* commands like mem or register dump */
|
||||
WORD PcSubAddr; /* Address for command */
|
||||
BYTE PcSubData[64]; /* Date area for command */
|
||||
} S4;
|
||||
struct {
|
||||
struct CmdHdr CmdHdr;
|
||||
BYTE PcCommandText[1];
|
||||
BYTE __crud__[20];
|
||||
BYTE PcIDNum2; /* It had to go somewhere! */
|
||||
} S5;
|
||||
struct {
|
||||
struct CmdHdr CmdHdr;
|
||||
struct SamTop Topology[LINKS_PER_UNIT];
|
||||
} S6;
|
||||
} U1;
|
||||
};
|
||||
|
||||
struct PktCmd_M
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
uchar PcCommand;
|
||||
union
|
||||
{
|
||||
uchar PcPhbNum;
|
||||
uchar PcLinkNum;
|
||||
uchar PcIDNum;
|
||||
} U0;
|
||||
} CmdHdr;
|
||||
struct
|
||||
{
|
||||
ushort NumPackets;
|
||||
ushort LoadBase;
|
||||
ushort CodeSize;
|
||||
} PcBootSequence;
|
||||
} S1;
|
||||
struct
|
||||
{
|
||||
ushort PcSequence;
|
||||
uchar PcBootData[RTA_BOOT_DATA_SIZE];
|
||||
} S2;
|
||||
struct
|
||||
{
|
||||
ushort __crud__;
|
||||
uchar PcUniqNum[4]; /* this is really a uint. */
|
||||
uchar PcModuleTypes; /* what modules are fitted */
|
||||
} S3;
|
||||
struct
|
||||
{
|
||||
ushort __cmd_hdr__;
|
||||
uchar __undefined__;
|
||||
uchar PcModemStatus;
|
||||
uchar PcPortStatus;
|
||||
uchar PcSubCommand;
|
||||
ushort PcSubAddr;
|
||||
uchar PcSubData[64];
|
||||
} S4;
|
||||
struct
|
||||
{
|
||||
ushort __cmd_hdr__;
|
||||
uchar PcCommandText[1];
|
||||
uchar __crud__[20];
|
||||
uchar PcIDNum2; /* Tacked on end */
|
||||
} S5;
|
||||
struct
|
||||
{
|
||||
ushort __cmd_hdr__;
|
||||
struct Top Topology[LINKS_PER_UNIT];
|
||||
} S6;
|
||||
} U1;
|
||||
struct PktCmd_M {
|
||||
union {
|
||||
struct {
|
||||
struct {
|
||||
uchar PcCommand;
|
||||
union {
|
||||
uchar PcPhbNum;
|
||||
uchar PcLinkNum;
|
||||
uchar PcIDNum;
|
||||
} U0;
|
||||
} CmdHdr;
|
||||
struct {
|
||||
ushort NumPackets;
|
||||
ushort LoadBase;
|
||||
ushort CodeSize;
|
||||
} PcBootSequence;
|
||||
} S1;
|
||||
struct {
|
||||
ushort PcSequence;
|
||||
uchar PcBootData[RTA_BOOT_DATA_SIZE];
|
||||
} S2;
|
||||
struct {
|
||||
ushort __crud__;
|
||||
uchar PcUniqNum[4]; /* this is really a uint. */
|
||||
uchar PcModuleTypes; /* what modules are fitted */
|
||||
} S3;
|
||||
struct {
|
||||
ushort __cmd_hdr__;
|
||||
uchar __undefined__;
|
||||
uchar PcModemStatus;
|
||||
uchar PcPortStatus;
|
||||
uchar PcSubCommand;
|
||||
ushort PcSubAddr;
|
||||
uchar PcSubData[64];
|
||||
} S4;
|
||||
struct {
|
||||
ushort __cmd_hdr__;
|
||||
uchar PcCommandText[1];
|
||||
uchar __crud__[20];
|
||||
uchar PcIDNum2; /* Tacked on end */
|
||||
} S5;
|
||||
struct {
|
||||
ushort __cmd_hdr__;
|
||||
struct Top Topology[LINKS_PER_UNIT];
|
||||
} S6;
|
||||
} U1;
|
||||
};
|
||||
|
||||
#define Command U1.S1.CmdHdr.PcCommand
|
||||
|
|
|
@ -51,12 +51,11 @@
|
|||
#define UFOAD ( CONTROL + 4 )
|
||||
#define IWAIT ( CONTROL + 5 )
|
||||
|
||||
#define IFOAD_MAGIC 0xF0AD /* of course */
|
||||
#define IFOAD_MAGIC 0xF0AD /* of course */
|
||||
#define ZOMBIE_MAGIC (~0xDEAD) /* not dead -> zombie */
|
||||
#define UFOAD_MAGIC 0xD1E /* kill-your-neighbour */
|
||||
#define IWAIT_MAGIC 0xB1DE /* Bide your time */
|
||||
#define UFOAD_MAGIC 0xD1E /* kill-your-neighbour */
|
||||
#define IWAIT_MAGIC 0xB1DE /* Bide your time */
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -44,18 +44,16 @@ static char *_daemon_h_sccs_ = "@(#)daemon.h 1.3";
|
|||
** structures used on /dev/rio
|
||||
*/
|
||||
|
||||
struct Error
|
||||
{
|
||||
uint Error;
|
||||
uint Entry;
|
||||
uint Other;
|
||||
struct Error {
|
||||
uint Error;
|
||||
uint Entry;
|
||||
uint Other;
|
||||
};
|
||||
|
||||
struct DownLoad
|
||||
{
|
||||
char *DataP;
|
||||
uint Count;
|
||||
uint ProductCode;
|
||||
struct DownLoad {
|
||||
char *DataP;
|
||||
uint Count;
|
||||
uint ProductCode;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -66,46 +64,41 @@ struct DownLoad
|
|||
#endif
|
||||
|
||||
#ifndef MAX_XP_CTRL_LEN
|
||||
#define MAX_XP_CTRL_LEN 16 /* ALSO IN PORT.H */
|
||||
#define MAX_XP_CTRL_LEN 16 /* ALSO IN PORT.H */
|
||||
#endif
|
||||
|
||||
struct PortSetup
|
||||
{
|
||||
uint From; /* Set/Clear XP & IXANY Control from this port.... */
|
||||
uint To; /* .... to this port */
|
||||
uint XpCps; /* at this speed */
|
||||
char XpOn[MAX_XP_CTRL_LEN]; /* this is the start string */
|
||||
char XpOff[MAX_XP_CTRL_LEN]; /* this is the stop string */
|
||||
uchar IxAny; /* enable/disable IXANY */
|
||||
uchar IxOn; /* enable/disable IXON */
|
||||
uchar Lock; /* lock port params */
|
||||
uchar Store; /* store params across closes */
|
||||
uchar Drain; /* close only when drained */
|
||||
struct PortSetup {
|
||||
uint From; /* Set/Clear XP & IXANY Control from this port.... */
|
||||
uint To; /* .... to this port */
|
||||
uint XpCps; /* at this speed */
|
||||
char XpOn[MAX_XP_CTRL_LEN]; /* this is the start string */
|
||||
char XpOff[MAX_XP_CTRL_LEN]; /* this is the stop string */
|
||||
uchar IxAny; /* enable/disable IXANY */
|
||||
uchar IxOn; /* enable/disable IXON */
|
||||
uchar Lock; /* lock port params */
|
||||
uchar Store; /* store params across closes */
|
||||
uchar Drain; /* close only when drained */
|
||||
};
|
||||
|
||||
struct LpbReq
|
||||
{
|
||||
uint Host;
|
||||
uint Link;
|
||||
struct LPB *LpbP;
|
||||
struct LpbReq {
|
||||
uint Host;
|
||||
uint Link;
|
||||
struct LPB *LpbP;
|
||||
};
|
||||
|
||||
struct RupReq
|
||||
{
|
||||
uint HostNum;
|
||||
uint RupNum;
|
||||
struct RUP *RupP;
|
||||
struct RupReq {
|
||||
uint HostNum;
|
||||
uint RupNum;
|
||||
struct RUP *RupP;
|
||||
};
|
||||
|
||||
struct PortReq
|
||||
{
|
||||
uint SysPort;
|
||||
struct Port *PortP;
|
||||
struct PortReq {
|
||||
uint SysPort;
|
||||
struct Port *PortP;
|
||||
};
|
||||
|
||||
struct StreamInfo
|
||||
{
|
||||
uint SysPort;
|
||||
struct StreamInfo {
|
||||
uint SysPort;
|
||||
#if 0
|
||||
queue_t RQueue;
|
||||
queue_t WQueue;
|
||||
|
@ -115,68 +108,59 @@ struct StreamInfo
|
|||
#endif
|
||||
};
|
||||
|
||||
struct HostReq
|
||||
{
|
||||
uint HostNum;
|
||||
struct Host *HostP;
|
||||
struct HostReq {
|
||||
uint HostNum;
|
||||
struct Host *HostP;
|
||||
};
|
||||
|
||||
struct HostDpRam
|
||||
{
|
||||
uint HostNum;
|
||||
struct DpRam *DpRamP;
|
||||
struct HostDpRam {
|
||||
uint HostNum;
|
||||
struct DpRam *DpRamP;
|
||||
};
|
||||
|
||||
struct DebugCtrl
|
||||
{
|
||||
uint SysPort;
|
||||
uint Debug;
|
||||
uint Wait;
|
||||
struct DebugCtrl {
|
||||
uint SysPort;
|
||||
uint Debug;
|
||||
uint Wait;
|
||||
};
|
||||
|
||||
struct MapInfo
|
||||
{
|
||||
uint FirstPort; /* 8 ports, starting from this (tty) number */
|
||||
uint RtaUnique; /* reside on this RTA (unique number) */
|
||||
struct MapInfo {
|
||||
uint FirstPort; /* 8 ports, starting from this (tty) number */
|
||||
uint RtaUnique; /* reside on this RTA (unique number) */
|
||||
};
|
||||
|
||||
struct MapIn
|
||||
{
|
||||
uint NumEntries; /* How many port sets are we mapping? */
|
||||
struct MapInfo *MapInfoP; /* Pointer to (user space) info */
|
||||
struct MapIn {
|
||||
uint NumEntries; /* How many port sets are we mapping? */
|
||||
struct MapInfo *MapInfoP; /* Pointer to (user space) info */
|
||||
};
|
||||
|
||||
struct SendPack
|
||||
{
|
||||
unsigned int PortNum;
|
||||
unsigned char Len;
|
||||
unsigned char Data[PKT_MAX_DATA_LEN];
|
||||
struct SendPack {
|
||||
unsigned int PortNum;
|
||||
unsigned char Len;
|
||||
unsigned char Data[PKT_MAX_DATA_LEN];
|
||||
};
|
||||
|
||||
struct SpecialRupCmd
|
||||
{
|
||||
struct PKT Packet;
|
||||
unsigned short Host;
|
||||
unsigned short RupNum;
|
||||
struct SpecialRupCmd {
|
||||
struct PKT Packet;
|
||||
unsigned short Host;
|
||||
unsigned short RupNum;
|
||||
};
|
||||
|
||||
struct IdentifyRta
|
||||
{
|
||||
ulong RtaUnique;
|
||||
uchar ID;
|
||||
struct IdentifyRta {
|
||||
ulong RtaUnique;
|
||||
uchar ID;
|
||||
};
|
||||
|
||||
struct KillNeighbour
|
||||
{
|
||||
ulong UniqueNum;
|
||||
uchar Link;
|
||||
struct KillNeighbour {
|
||||
ulong UniqueNum;
|
||||
uchar Link;
|
||||
};
|
||||
|
||||
struct rioVersion {
|
||||
char version[MAX_VERSION_LEN];
|
||||
char relid[MAX_VERSION_LEN];
|
||||
int buildLevel;
|
||||
char buildDate[MAX_VERSION_LEN];
|
||||
char version[MAX_VERSION_LEN];
|
||||
char relid[MAX_VERSION_LEN];
|
||||
int buildLevel;
|
||||
char buildDate[MAX_VERSION_LEN];
|
||||
};
|
||||
|
||||
|
||||
|
@ -316,16 +300,16 @@ struct rioVersion {
|
|||
#define RIO_SET_XP_CPS rIOCW(155,int)
|
||||
#define RIO_GET_IXANY rIOCR(156,int) /* ixany allowed? */
|
||||
#define RIO_SET_IXANY rIOCW(157,int)
|
||||
#define RIO_SET_IXANY_ON rIOCN(158) /* allow ixany */
|
||||
#define RIO_SET_IXANY_OFF rIOCN(159) /* disallow ixany */
|
||||
#define RIO_SET_IXANY_ON rIOCN(158) /* allow ixany */
|
||||
#define RIO_SET_IXANY_OFF rIOCN(159) /* disallow ixany */
|
||||
#define RIO_GET_MODEM rIOCR(160,int) /* port is modem/direct line? */
|
||||
#define RIO_SET_MODEM rIOCW(161,int)
|
||||
#define RIO_SET_MODEM_ON rIOCN(162) /* port is a modem */
|
||||
#define RIO_SET_MODEM_OFF rIOCN(163) /* port is direct */
|
||||
#define RIO_SET_MODEM_ON rIOCN(162) /* port is a modem */
|
||||
#define RIO_SET_MODEM_OFF rIOCN(163) /* port is direct */
|
||||
#define RIO_GET_IXON rIOCR(164,int) /* ixon allowed? */
|
||||
#define RIO_SET_IXON rIOCW(165,int)
|
||||
#define RIO_SET_IXON_ON rIOCN(166) /* allow ixon */
|
||||
#define RIO_SET_IXON_OFF rIOCN(167) /* disallow ixon */
|
||||
#define RIO_SET_IXON_ON rIOCN(166) /* allow ixon */
|
||||
#define RIO_SET_IXON_OFF rIOCN(167) /* disallow ixon */
|
||||
|
||||
#define RIO_GET_SIVIEW ((('s')<<8) | 106) /* backwards compatible with SI */
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#define DBPACKET(pkt, opt, str, chn) debug_packet((pkt), (opt), (str), (chn))
|
||||
#else
|
||||
#define DBPACKET(pkt, opt, str, c)
|
||||
#endif /* DCIRRUS */
|
||||
#endif /* DCIRRUS */
|
||||
|
||||
|
||||
#endif /* _debug_h_ */
|
||||
#endif /* _debug_h_ */
|
||||
|
|
|
@ -37,13 +37,13 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_defaults_h_sccs = "@(#)defaults.h 1.1" ;
|
||||
static char *_rio_defaults_h_sccs = "@(#)defaults.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#define MILLISECOND (int) (1000/64) /* 15.625 low ticks */
|
||||
#define SECOND (int) 15625 /* Low priority ticks */
|
||||
#define MILLISECOND (int) (1000/64) /* 15.625 low ticks */
|
||||
#define SECOND (int) 15625 /* Low priority ticks */
|
||||
|
||||
#ifdef RTA
|
||||
#define RX_LIMIT (ushort) 3
|
||||
|
@ -56,4 +56,3 @@ static char *_rio_defaults_h_sccs = "@(#)defaults.h 1.1" ;
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ static char *_eisa_h_sccs_ = "@(#)eisa.h 1.2";
|
|||
|
||||
#define EISA_PRODUCT_IDENT_LO 0xC80 /* where RIO_EISA_IDENT is */
|
||||
#define EISA_PRODUCT_IDENT_HI 0xC81
|
||||
#define EISA_PRODUCT_NUMBER 0xC82 /* where PROD_CODE is */
|
||||
#define EISA_PRODUCT_NUMBER 0xC82 /* where PROD_CODE is */
|
||||
#define EISA_REVISION_NUMBER 0xC83 /* revision (1dp) */
|
||||
#define EISA_ENABLE 0xC84 /* set LSB to enable card */
|
||||
#define EISA_UNIQUE_NUM_0 0xC88 /* vomit */
|
||||
|
@ -101,4 +101,4 @@ static char *_eisa_h_sccs_ = "@(#)eisa.h 1.2";
|
|||
#define INBZ(z,x) inb(((z)<<12) | (x))
|
||||
#define OUTBZ(z,x,y) outb((((z)<<12) | (x)), y)
|
||||
|
||||
#endif /* __rio_eisa_h__ */
|
||||
#endif /* __rio_eisa_h__ */
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_enable_h_sccs = "@(#)enable.h 1.1" ;
|
||||
static char *_rio_enable_h_sccs = "@(#)enable.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -46,5 +46,3 @@ static char *_rio_enable_h_sccs = "@(#)enable.h 1.1" ;
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -80,6 +80,3 @@
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -101,4 +101,4 @@ static char *_errors_h_sccs_ = "@(#)errors.h 1.2";
|
|||
#define NOT_ENOUGH_CORE_FOR_PCI_COPY 53
|
||||
|
||||
|
||||
#endif /* __rio_errors_h__ */
|
||||
#endif /* __rio_errors_h__ */
|
||||
|
|
|
@ -41,114 +41,113 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_formpkt_h_sccs = "@(#)formpkt.h 1.1" ;
|
||||
static char *_rio_formpkt_h_sccs = "@(#)formpkt.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct FORM_BOOT_PKT_1 FORM_BOOT_PKT_1 ;
|
||||
typedef struct FORM_BOOT_PKT_1 FORM_BOOT_PKT_1;
|
||||
struct FORM_BOOT_PKT_1 {
|
||||
ushort pkt_number ;
|
||||
ushort pkt_total ;
|
||||
ushort boot_top ;
|
||||
} ;
|
||||
ushort pkt_number;
|
||||
ushort pkt_total;
|
||||
ushort boot_top;
|
||||
};
|
||||
|
||||
typedef struct FORM_BOOT_PKT_2 FORM_BOOT_PKT_2 ;
|
||||
typedef struct FORM_BOOT_PKT_2 FORM_BOOT_PKT_2;
|
||||
struct FORM_BOOT_PKT_2 {
|
||||
ushort pkt_number ;
|
||||
char boot_data[10] ;
|
||||
} ;
|
||||
ushort pkt_number;
|
||||
char boot_data[10];
|
||||
};
|
||||
|
||||
|
||||
typedef struct FORM_ATTACH_RTA FORM_ATTACH_RTA ;
|
||||
struct FORM_ATTACH_RTA {
|
||||
char cmd_code ;
|
||||
char booter_serial[4] ;
|
||||
char booter_link ;
|
||||
char bootee_serial[4] ;
|
||||
char bootee_link ;
|
||||
} ;
|
||||
typedef struct FORM_ATTACH_RTA FORM_ATTACH_RTA;
|
||||
struct FORM_ATTACH_RTA {
|
||||
char cmd_code;
|
||||
char booter_serial[4];
|
||||
char booter_link;
|
||||
char bootee_serial[4];
|
||||
char bootee_link;
|
||||
};
|
||||
|
||||
|
||||
typedef struct FORM_BOOT_ID FORM_BOOT_ID ;
|
||||
struct FORM_BOOT_ID {
|
||||
char cmd_code ;
|
||||
char bootee_serial[4] ;
|
||||
char bootee_prod_id ;
|
||||
char bootee_link ;
|
||||
} ;
|
||||
typedef struct FORM_BOOT_ID FORM_BOOT_ID;
|
||||
struct FORM_BOOT_ID {
|
||||
char cmd_code;
|
||||
char bootee_serial[4];
|
||||
char bootee_prod_id;
|
||||
char bootee_link;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct FORM_ROUTE_1 FORM_ROUTE_1 ;
|
||||
typedef struct FORM_ROUTE_1 FORM_ROUTE_1;
|
||||
struct FORM_ROUTE_1 {
|
||||
char cmd_code ;
|
||||
char pkt_number ;
|
||||
char total_in_sequence ;
|
||||
char unit_id ;
|
||||
char host_unit_id ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char pkt_number;
|
||||
char total_in_sequence;
|
||||
char unit_id;
|
||||
char host_unit_id;
|
||||
};
|
||||
|
||||
typedef struct FORM_ROUTE_2 FORM_ROUTE_2 ;
|
||||
typedef struct FORM_ROUTE_2 FORM_ROUTE_2;
|
||||
struct FORM_ROUTE_2 {
|
||||
char cmd_code ;
|
||||
char pkt_number ;
|
||||
char total_in_sequence ;
|
||||
char route_data[9] ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char pkt_number;
|
||||
char total_in_sequence;
|
||||
char route_data[9];
|
||||
};
|
||||
|
||||
typedef struct FORM_ROUTE_REQ FORM_ROUTE_REQ ;
|
||||
typedef struct FORM_ROUTE_REQ FORM_ROUTE_REQ;
|
||||
struct FORM_ROUTE_REQ {
|
||||
char cmd_code ;
|
||||
char pkt_number ;
|
||||
char total_in_sequence ;
|
||||
char route_data[10] ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char pkt_number;
|
||||
char total_in_sequence;
|
||||
char route_data[10];
|
||||
};
|
||||
|
||||
|
||||
typedef struct FORM_ERROR FORM_ERROR ;
|
||||
typedef struct FORM_ERROR FORM_ERROR;
|
||||
struct FORM_ERROR {
|
||||
char cmd_code ;
|
||||
char error_code ;
|
||||
char cmd_code;
|
||||
char error_code;
|
||||
|
||||
} ;
|
||||
};
|
||||
|
||||
typedef struct FORM_STATUS FORM_STATUS ;
|
||||
typedef struct FORM_STATUS FORM_STATUS;
|
||||
struct FORM_STATUS {
|
||||
char cmd_code ;
|
||||
char status_code ;
|
||||
char last_packet_valid ;
|
||||
char tx_buffer ;
|
||||
char rx_buffer ;
|
||||
char port_status ;
|
||||
char phb_status ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char status_code;
|
||||
char last_packet_valid;
|
||||
char tx_buffer;
|
||||
char rx_buffer;
|
||||
char port_status;
|
||||
char phb_status;
|
||||
};
|
||||
|
||||
|
||||
typedef struct FORM_LINK_STATUS FORM_LINK_STATUS ;
|
||||
typedef struct FORM_LINK_STATUS FORM_LINK_STATUS;
|
||||
struct FORM_LINK_STATUS {
|
||||
char cmd_code ;
|
||||
char status_code ;
|
||||
char link_number ;
|
||||
ushort rx_errors ;
|
||||
ushort tx_errors ;
|
||||
ushort csum_errors ;
|
||||
ushort disconnects ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char status_code;
|
||||
char link_number;
|
||||
ushort rx_errors;
|
||||
ushort tx_errors;
|
||||
ushort csum_errors;
|
||||
ushort disconnects;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct FORM_PARTITION FORM_PARTITION ;
|
||||
typedef struct FORM_PARTITION FORM_PARTITION;
|
||||
struct FORM_PARTITION {
|
||||
char cmd_code ;
|
||||
char status_code ;
|
||||
char port_number ;
|
||||
char tx_max ;
|
||||
char rx_max ;
|
||||
char rx_limit ;
|
||||
} ;
|
||||
char cmd_code;
|
||||
char status_code;
|
||||
char port_number;
|
||||
char tx_max;
|
||||
char rx_max;
|
||||
char rx_limit;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -47,20 +47,19 @@ int RIOBootCodeHOST(struct rio_info *, register struct DownLoad *);
|
|||
int RIOBootCodeUNKNOWN(struct rio_info *, struct DownLoad *);
|
||||
void msec_timeout(struct Host *);
|
||||
int RIOBootRup(struct rio_info *, uint, struct Host *, struct PKT *);
|
||||
int RIOBootOk(struct rio_info *,struct Host *, ulong);
|
||||
int RIORtaBound(struct rio_info *, uint);
|
||||
int RIOBootOk(struct rio_info *, struct Host *, ulong);
|
||||
int RIORtaBound(struct rio_info *, uint);
|
||||
void FillSlot(int, int, uint, struct Host *);
|
||||
|
||||
/* riocmd.c */
|
||||
int RIOFoadRta(struct Host *, struct Map *);
|
||||
int RIOZombieRta(struct Host *, struct Map *);
|
||||
int RIOCommandRta(struct rio_info *, uint, int (* func)( struct Host *,
|
||||
struct Map *));
|
||||
int RIOIdentifyRta(struct rio_info *, caddr_t);
|
||||
int RIOCommandRta(struct rio_info *, uint, int (*func) (struct Host *, struct Map *));
|
||||
int RIOIdentifyRta(struct rio_info *, caddr_t);
|
||||
int RIOKillNeighbour(struct rio_info *, caddr_t);
|
||||
int RIOSuspendBootRta(struct Host *, int, int);
|
||||
int RIOFoadWakeup(struct rio_info *);
|
||||
struct CmdBlk * RIOGetCmdBlk(void);
|
||||
struct CmdBlk *RIOGetCmdBlk(void);
|
||||
void RIOFreeCmdBlk(struct CmdBlk *);
|
||||
int RIOQueueCmdBlk(struct Host *, uint, struct CmdBlk *);
|
||||
void RIOPollHostCommands(struct rio_info *, struct Host *);
|
||||
|
@ -71,13 +70,13 @@ void ShowPacket(uint, struct PKT *);
|
|||
|
||||
/* rioctrl.c */
|
||||
int copyin(int, caddr_t, int);
|
||||
int riocontrol(struct rio_info *, dev_t,int,caddr_t,int);
|
||||
int RIOPreemptiveCmd(struct rio_info *,struct Port *,uchar);
|
||||
int riocontrol(struct rio_info *, dev_t, int, caddr_t, int);
|
||||
int RIOPreemptiveCmd(struct rio_info *, struct Port *, uchar);
|
||||
|
||||
/* rioinit.c */
|
||||
void rioinit(struct rio_info *, struct RioHostInfo *);
|
||||
void RIOInitHosts(struct rio_info *, struct RioHostInfo *);
|
||||
void RIOISAinit(struct rio_info *,int);
|
||||
void RIOISAinit(struct rio_info *, int);
|
||||
int RIODoAT(struct rio_info *, int, int);
|
||||
caddr_t RIOCheckForATCard(int);
|
||||
int RIOAssignAT(struct rio_info *, int, caddr_t, int);
|
||||
|
@ -85,7 +84,7 @@ int RIOBoardTest(paddr_t, caddr_t, uchar, int);
|
|||
void RIOAllocDataStructs(struct rio_info *);
|
||||
void RIOSetupDataStructs(struct rio_info *);
|
||||
int RIODefaultName(struct rio_info *, struct Host *, uint);
|
||||
struct rioVersion * RIOVersid(void);
|
||||
struct rioVersion *RIOVersid(void);
|
||||
int RIOMapin(paddr_t, int, caddr_t *);
|
||||
void RIOMapout(paddr_t, long, caddr_t);
|
||||
void RIOHostReset(uint, volatile struct DpRam *, uint);
|
||||
|
@ -108,7 +107,7 @@ void remove_receive(struct Port *);
|
|||
|
||||
/* rioroute.c */
|
||||
int RIORouteRup(struct rio_info *, uint, struct Host *, struct PKT *);
|
||||
void RIOFixPhbs(struct rio_info *, struct Host *, uint);
|
||||
void RIOFixPhbs(struct rio_info *, struct Host *, uint);
|
||||
uint GetUnitType(uint);
|
||||
int RIOSetChange(struct rio_info *);
|
||||
int RIOFindFreeID(struct rio_info *, struct Host *, uint *, uint *);
|
||||
|
@ -116,9 +115,9 @@ int RIOFindFreeID(struct rio_info *, struct Host *, uint *, uint *);
|
|||
|
||||
/* riotty.c */
|
||||
|
||||
int riotopen(struct tty_struct * tty, struct file * filp);
|
||||
int riotclose(void *ptr);
|
||||
int riotioctl(struct rio_info *, struct tty_struct *, register int, register caddr_t);
|
||||
int riotopen(struct tty_struct *tty, struct file *filp);
|
||||
int riotclose(void *ptr);
|
||||
int riotioctl(struct rio_info *, struct tty_struct *, register int, register caddr_t);
|
||||
void ttyseth(struct Port *, struct ttystatics *, struct old_sgttyb *sg);
|
||||
|
||||
/* riotable.c */
|
||||
|
@ -127,27 +126,27 @@ int RIOApel(struct rio_info *);
|
|||
int RIODeleteRta(struct rio_info *, struct Map *);
|
||||
int RIOAssignRta(struct rio_info *, struct Map *);
|
||||
int RIOReMapPorts(struct rio_info *, struct Host *, struct Map *);
|
||||
int RIOChangeName(struct rio_info *, struct Map*);
|
||||
int RIOChangeName(struct rio_info *, struct Map *);
|
||||
|
||||
#if 0
|
||||
/* riodrvr.c */
|
||||
struct rio_info * rio_install(struct RioHostInfo *);
|
||||
struct rio_info *rio_install(struct RioHostInfo *);
|
||||
int rio_uninstall(register struct rio_info *);
|
||||
int rio_open(struct rio_info *, int, struct file *);
|
||||
int rio_close(struct rio_info *, struct file *);
|
||||
int rio_read(struct rio_info *, struct file *, char *, int);
|
||||
int rio_write(struct rio_info *, struct file * f, char *, int);
|
||||
int rio_write(struct rio_info *, struct file *f, char *, int);
|
||||
int rio_ioctl(struct rio_info *, struct file *, int, char *);
|
||||
int rio_select(struct rio_info *, struct file * f, int, struct sel *);
|
||||
int rio_intr(char *);
|
||||
int rio_isr_thread(char *);
|
||||
struct rio_info * rio_info_store( int cmd, struct rio_info * p);
|
||||
int rio_select(struct rio_info *, struct file *f, int, struct sel *);
|
||||
int rio_intr(char *);
|
||||
int rio_isr_thread(char *);
|
||||
struct rio_info *rio_info_store(int cmd, struct rio_info *p);
|
||||
#endif
|
||||
|
||||
extern int rio_pcicopy(char *src, char *dst, int n);
|
||||
extern int rio_minor (struct tty_struct *tty);
|
||||
extern int rio_ismodem (struct tty_struct *tty);
|
||||
extern int rio_pcicopy(char *src, char *dst, int n);
|
||||
extern int rio_minor(struct tty_struct *tty);
|
||||
extern int rio_ismodem(struct tty_struct *tty);
|
||||
|
||||
extern void rio_start_card_running (struct Host * HostP);
|
||||
extern void rio_start_card_running(struct Host *HostP);
|
||||
|
||||
#endif /* __func_h_def */
|
||||
#endif /* __func_h_def */
|
||||
|
|
|
@ -49,33 +49,32 @@ static char *_host_h_sccs_ = "@(#)host.h 1.2";
|
|||
** Host data structure. This is used for the software equiv. of
|
||||
** the host.
|
||||
*/
|
||||
struct Host
|
||||
{
|
||||
uchar Type; /* RIO_EISA, RIO_MCA, ... */
|
||||
uchar Ivec; /* POLLED or ivec number */
|
||||
uchar Mode; /* Control stuff */
|
||||
uchar Slot; /* Slot */
|
||||
volatile caddr_t Caddr; /* KV address of DPRAM */
|
||||
volatile struct DpRam *CardP; /* KV address of DPRAM, with overlay */
|
||||
paddr_t PaddrP; /* Phys. address of DPRAM */
|
||||
char Name[MAX_NAME_LEN]; /* The name of the host */
|
||||
uint UniqueNum; /* host unique number */
|
||||
spinlock_t HostLock; /* Lock structure for MPX */
|
||||
/*struct pci_devinfo PciDevInfo; *//* PCI Bus/Device/Function stuff */
|
||||
/*struct lockb HostLock; *//* Lock structure for MPX */
|
||||
uint WorkToBeDone; /* set to true each interrupt */
|
||||
uint InIntr; /* Being serviced? */
|
||||
uint IntSrvDone;/* host's interrupt has been serviced */
|
||||
int (*Copy)( caddr_t, caddr_t, int ); /* copy func */
|
||||
struct timer_list timer;
|
||||
/*
|
||||
** I M P O R T A N T !
|
||||
**
|
||||
** The rest of this data structure is cleared to zero after
|
||||
** a RIO_HOST_FOAD command.
|
||||
*/
|
||||
|
||||
ulong Flags; /* Whats going down */
|
||||
struct Host {
|
||||
uchar Type; /* RIO_EISA, RIO_MCA, ... */
|
||||
uchar Ivec; /* POLLED or ivec number */
|
||||
uchar Mode; /* Control stuff */
|
||||
uchar Slot; /* Slot */
|
||||
volatile caddr_t Caddr; /* KV address of DPRAM */
|
||||
volatile struct DpRam *CardP; /* KV address of DPRAM, with overlay */
|
||||
paddr_t PaddrP; /* Phys. address of DPRAM */
|
||||
char Name[MAX_NAME_LEN]; /* The name of the host */
|
||||
uint UniqueNum; /* host unique number */
|
||||
spinlock_t HostLock; /* Lock structure for MPX */
|
||||
/*struct pci_devinfo PciDevInfo; *//* PCI Bus/Device/Function stuff */
|
||||
/*struct lockb HostLock; *//* Lock structure for MPX */
|
||||
uint WorkToBeDone; /* set to true each interrupt */
|
||||
uint InIntr; /* Being serviced? */
|
||||
uint IntSrvDone; /* host's interrupt has been serviced */
|
||||
int (*Copy) (caddr_t, caddr_t, int); /* copy func */
|
||||
struct timer_list timer;
|
||||
/*
|
||||
** I M P O R T A N T !
|
||||
**
|
||||
** The rest of this data structure is cleared to zero after
|
||||
** a RIO_HOST_FOAD command.
|
||||
*/
|
||||
|
||||
ulong Flags; /* Whats going down */
|
||||
#define RC_WAITING 0
|
||||
#define RC_STARTUP 1
|
||||
#define RC_RUNNING 2
|
||||
|
@ -93,25 +92,25 @@ struct Host
|
|||
#define RC_BOOT_OWN 0x10 /* Only boot RTAs bound to this system */
|
||||
#define RC_BOOT_NONE 0x20 /* Don't boot any RTAs (slave mode) */
|
||||
|
||||
struct Top Topology[LINKS_PER_UNIT]; /* one per link */
|
||||
struct Map Mapping[MAX_RUP]; /* Mappings for host */
|
||||
struct PHB *PhbP; /* Pointer to the PHB array */
|
||||
ushort *PhbNumP; /* Ptr to Number of PHB's */
|
||||
struct LPB *LinkStrP ; /* Link Structure Array */
|
||||
struct RUP *RupP; /* Sixteen real rups here */
|
||||
struct PARM_MAP *ParmMapP; /* points to the parmmap */
|
||||
uint ExtraUnits[MAX_EXTRA_UNITS]; /* unknown things */
|
||||
uint NumExtraBooted; /* how many of the above */
|
||||
/*
|
||||
** Twenty logical rups.
|
||||
** The first sixteen are the real Rup entries (above), the last four
|
||||
** are the link RUPs.
|
||||
*/
|
||||
struct UnixRup UnixRups[MAX_RUP+LINKS_PER_UNIT];
|
||||
int timeout_id; /* For calling 100 ms delays */
|
||||
int timeout_sem;/* For calling 100 ms delays */
|
||||
long locks; /* long req'd for set_bit --RR */
|
||||
char ____end_marker____;
|
||||
struct Top Topology[LINKS_PER_UNIT]; /* one per link */
|
||||
struct Map Mapping[MAX_RUP]; /* Mappings for host */
|
||||
struct PHB *PhbP; /* Pointer to the PHB array */
|
||||
ushort *PhbNumP; /* Ptr to Number of PHB's */
|
||||
struct LPB *LinkStrP; /* Link Structure Array */
|
||||
struct RUP *RupP; /* Sixteen real rups here */
|
||||
struct PARM_MAP *ParmMapP; /* points to the parmmap */
|
||||
uint ExtraUnits[MAX_EXTRA_UNITS]; /* unknown things */
|
||||
uint NumExtraBooted; /* how many of the above */
|
||||
/*
|
||||
** Twenty logical rups.
|
||||
** The first sixteen are the real Rup entries (above), the last four
|
||||
** are the link RUPs.
|
||||
*/
|
||||
struct UnixRup UnixRups[MAX_RUP + LINKS_PER_UNIT];
|
||||
int timeout_id; /* For calling 100 ms delays */
|
||||
int timeout_sem; /* For calling 100 ms delays */
|
||||
long locks; /* long req'd for set_bit --RR */
|
||||
char ____end_marker____;
|
||||
};
|
||||
#define Control CardP->DpControl
|
||||
#define SetInt CardP->DpSetInt
|
||||
|
@ -129,6 +128,6 @@ struct Host
|
|||
#define Year CardP->DpYear
|
||||
#define Week CardP->DpWeek
|
||||
|
||||
#define RIO_DUMBPARM 0x0860 /* what not to expect */
|
||||
#define RIO_DUMBPARM 0x0860 /* what not to expect */
|
||||
|
||||
#endif
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_hosthw_h_sccs = "@(#)hosthw.h 1.2" ;
|
||||
static char *_rio_hosthw_h_sccs = "@(#)hosthw.h 1.2";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -53,5 +53,3 @@ static char *_rio_hosthw_h_sccs = "@(#)hosthw.h 1.2" ;
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -70,27 +70,27 @@
|
|||
#define DIE_NOW (ushort) 0x0200
|
||||
|
||||
/* Boot request stuff */
|
||||
#define BOOT_REQUEST ((ushort) 0) /* Request for a boot */
|
||||
#define BOOT_ABORT ((ushort) 1) /* Abort a boot */
|
||||
#define BOOT_SEQUENCE ((ushort) 2) /* Packet with the number of packets
|
||||
and load address */
|
||||
#define BOOT_COMPLETED ((ushort) 3) /* Boot completed */
|
||||
#define BOOT_REQUEST ((ushort) 0) /* Request for a boot */
|
||||
#define BOOT_ABORT ((ushort) 1) /* Abort a boot */
|
||||
#define BOOT_SEQUENCE ((ushort) 2) /* Packet with the number of packets
|
||||
and load address */
|
||||
#define BOOT_COMPLETED ((ushort) 3) /* Boot completed */
|
||||
|
||||
/* States that a link can be in */
|
||||
#define LINK_DISCONNECTED ((ushort) 0) /* Disconnected */
|
||||
#define LINK_BOOT1 ((ushort) 1) /* Trying to send 1st stage boot */
|
||||
#define LINK_BOOT2 ((ushort) 2) /* Trying to send 2nd stage boot */
|
||||
#define LINK_BOOT2WAIT ((ushort) 3) /* Waiting for selftest results */
|
||||
#define LINK_BOOT3 ((ushort) 4) /* Trying to send 3rd stage boots */
|
||||
#define LINK_SYNC ((ushort) 5) /* Syncing */
|
||||
#define LINK_DISCONNECTED ((ushort) 0) /* Disconnected */
|
||||
#define LINK_BOOT1 ((ushort) 1) /* Trying to send 1st stage boot */
|
||||
#define LINK_BOOT2 ((ushort) 2) /* Trying to send 2nd stage boot */
|
||||
#define LINK_BOOT2WAIT ((ushort) 3) /* Waiting for selftest results */
|
||||
#define LINK_BOOT3 ((ushort) 4) /* Trying to send 3rd stage boots */
|
||||
#define LINK_SYNC ((ushort) 5) /* Syncing */
|
||||
|
||||
#define LINK_INTRO ((ushort) 10) /* Introductory packet */
|
||||
#define LINK_SUPPLYID ((ushort) 11) /* Trying to supply an ID */
|
||||
#define LINK_TOPOLOGY ((ushort) 12) /* Send a topology update */
|
||||
#define LINK_REQUESTID ((ushort) 13) /* Waiting for an ID */
|
||||
#define LINK_CONNECTED ((ushort) 14) /* Connected */
|
||||
#define LINK_INTRO ((ushort) 10) /* Introductory packet */
|
||||
#define LINK_SUPPLYID ((ushort) 11) /* Trying to supply an ID */
|
||||
#define LINK_TOPOLOGY ((ushort) 12) /* Send a topology update */
|
||||
#define LINK_REQUESTID ((ushort) 13) /* Waiting for an ID */
|
||||
#define LINK_CONNECTED ((ushort) 14) /* Connected */
|
||||
|
||||
#define LINK_INTERCONNECT ((ushort) 20) /* Subnets interconnected */
|
||||
#define LINK_INTERCONNECT ((ushort) 20) /* Subnets interconnected */
|
||||
|
||||
#define LINK_SPARE ((ushort) 40)
|
||||
|
||||
|
@ -103,12 +103,12 @@
|
|||
** LED stuff
|
||||
*/
|
||||
#if defined(RTA)
|
||||
#define LED_OFF ((ushort) 0) /* LED off */
|
||||
#define LED_RED ((ushort) 1) /* LED Red */
|
||||
#define LED_GREEN ((ushort) 2) /* LED Green */
|
||||
#define LED_ORANGE ((ushort) 4) /* LED Orange */
|
||||
#define LED_1TO8_OPEN ((ushort) 1) /* Port 1->8 LED on */
|
||||
#define LED_9TO16_OPEN ((ushort) 2) /* Port 9->16 LED on */
|
||||
#define LED_OFF ((ushort) 0) /* LED off */
|
||||
#define LED_RED ((ushort) 1) /* LED Red */
|
||||
#define LED_GREEN ((ushort) 2) /* LED Green */
|
||||
#define LED_ORANGE ((ushort) 4) /* LED Orange */
|
||||
#define LED_1TO8_OPEN ((ushort) 1) /* Port 1->8 LED on */
|
||||
#define LED_9TO16_OPEN ((ushort) 2) /* Port 9->16 LED on */
|
||||
#define LED_SET_COLOUR(colour) (link->led = (colour))
|
||||
#define LED_OR_COLOUR(colour) (link->led |= (colour))
|
||||
#define LED_TIMEOUT(time) (link->led_timeout = RioTimePlus(RioTime(),(time)))
|
||||
|
@ -116,72 +116,72 @@
|
|||
#define LED_SET_COLOUR(colour)
|
||||
#define LED_OR_COLOUR(colour)
|
||||
#define LED_TIMEOUT(time)
|
||||
#endif /* RTA */
|
||||
#endif /* RTA */
|
||||
|
||||
struct LPB {
|
||||
WORD link_number ; /* Link Number */
|
||||
Channel_ptr in_ch ; /* Link In Channel */
|
||||
Channel_ptr out_ch ; /* Link Out Channel */
|
||||
WORD link_number; /* Link Number */
|
||||
Channel_ptr in_ch; /* Link In Channel */
|
||||
Channel_ptr out_ch; /* Link Out Channel */
|
||||
#ifdef RTA
|
||||
uchar stat_led ; /* Port open leds */
|
||||
uchar led ; /* True, light led! */
|
||||
uchar stat_led; /* Port open leds */
|
||||
uchar led; /* True, light led! */
|
||||
#endif
|
||||
BYTE attached_serial[4]; /* Attached serial number */
|
||||
BYTE attached_host_serial[4];
|
||||
/* Serial number of Host who
|
||||
booted the other end */
|
||||
WORD descheduled ; /* Currently Descheduled */
|
||||
WORD state; /* Current state */
|
||||
WORD send_poll ; /* Send a Poll Packet */
|
||||
Process_ptr ltt_p ; /* Process Descriptor */
|
||||
Process_ptr lrt_p ; /* Process Descriptor */
|
||||
WORD lrt_status ; /* Current lrt status */
|
||||
WORD ltt_status ; /* Current ltt status */
|
||||
WORD timeout ; /* Timeout value */
|
||||
WORD topology; /* Topology bits */
|
||||
WORD mon_ltt ;
|
||||
WORD mon_lrt ;
|
||||
WORD WaitNoBoot ; /* Secs to hold off booting */
|
||||
PKT_ptr add_packet_list; /* Add packets to here */
|
||||
PKT_ptr remove_packet_list; /* Send packets from here */
|
||||
BYTE attached_serial[4]; /* Attached serial number */
|
||||
BYTE attached_host_serial[4];
|
||||
/* Serial number of Host who
|
||||
booted the other end */
|
||||
WORD descheduled; /* Currently Descheduled */
|
||||
WORD state; /* Current state */
|
||||
WORD send_poll; /* Send a Poll Packet */
|
||||
Process_ptr ltt_p; /* Process Descriptor */
|
||||
Process_ptr lrt_p; /* Process Descriptor */
|
||||
WORD lrt_status; /* Current lrt status */
|
||||
WORD ltt_status; /* Current ltt status */
|
||||
WORD timeout; /* Timeout value */
|
||||
WORD topology; /* Topology bits */
|
||||
WORD mon_ltt;
|
||||
WORD mon_lrt;
|
||||
WORD WaitNoBoot; /* Secs to hold off booting */
|
||||
PKT_ptr add_packet_list; /* Add packets to here */
|
||||
PKT_ptr remove_packet_list; /* Send packets from here */
|
||||
#ifdef RTA
|
||||
#ifdef DCIRRUS
|
||||
#define QBUFS_PER_REDIRECT (4 / PKTS_PER_BUFFER + 1)
|
||||
#define QBUFS_PER_REDIRECT (4 / PKTS_PER_BUFFER + 1)
|
||||
#else
|
||||
#define QBUFS_PER_REDIRECT (8 / PKTS_PER_BUFFER + 1)
|
||||
#define QBUFS_PER_REDIRECT (8 / PKTS_PER_BUFFER + 1)
|
||||
#endif
|
||||
PKT_ptr_ptr rd_add ; /* Add a new Packet here */
|
||||
Q_BUF_ptr rd_add_qb; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr rd_add_st_qbb ; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr rd_add_end_qbb ; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr rd_remove ; /* Remove a Packet here */
|
||||
Q_BUF_ptr rd_remove_qb ; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr rd_remove_st_qbb ; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr rd_remove_end_qbb ; /* Pointer to the end of the Q buf */
|
||||
ushort pkts_in_q ; /* Packets in queue */
|
||||
PKT_ptr_ptr rd_add; /* Add a new Packet here */
|
||||
Q_BUF_ptr rd_add_qb; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr rd_add_st_qbb; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr rd_add_end_qbb; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr rd_remove; /* Remove a Packet here */
|
||||
Q_BUF_ptr rd_remove_qb; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr rd_remove_st_qbb; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr rd_remove_end_qbb; /* Pointer to the end of the Q buf */
|
||||
ushort pkts_in_q; /* Packets in queue */
|
||||
#endif
|
||||
|
||||
Channel_ptr lrt_fail_chan ; /* Lrt's failure channel */
|
||||
Channel_ptr ltt_fail_chan ; /* Ltt's failure channel */
|
||||
Channel_ptr lrt_fail_chan; /* Lrt's failure channel */
|
||||
Channel_ptr ltt_fail_chan; /* Ltt's failure channel */
|
||||
|
||||
#if defined (HOST) || defined (INKERNEL)
|
||||
/* RUP structure for HOST to driver communications */
|
||||
struct RUP rup ;
|
||||
/* RUP structure for HOST to driver communications */
|
||||
struct RUP rup;
|
||||
#endif
|
||||
struct RUP link_rup; /* RUP for the link (POLL,
|
||||
topology etc.) */
|
||||
WORD attached_link ; /* Number of attached link */
|
||||
WORD csum_errors ; /* csum errors */
|
||||
WORD num_disconnects ; /* number of disconnects */
|
||||
WORD num_sync_rcvd ; /* # sync's received */
|
||||
WORD num_sync_rqst ; /* # sync requests */
|
||||
WORD num_tx ; /* Num pkts sent */
|
||||
WORD num_rx ; /* Num pkts received */
|
||||
WORD module_attached; /* Module tpyes of attached */
|
||||
WORD led_timeout; /* LED timeout */
|
||||
WORD first_port; /* First port to service */
|
||||
WORD last_port; /* Last port to service */
|
||||
} ;
|
||||
struct RUP link_rup; /* RUP for the link (POLL,
|
||||
topology etc.) */
|
||||
WORD attached_link; /* Number of attached link */
|
||||
WORD csum_errors; /* csum errors */
|
||||
WORD num_disconnects; /* number of disconnects */
|
||||
WORD num_sync_rcvd; /* # sync's received */
|
||||
WORD num_sync_rqst; /* # sync requests */
|
||||
WORD num_tx; /* Num pkts sent */
|
||||
WORD num_rx; /* Num pkts received */
|
||||
WORD module_attached; /* Module tpyes of attached */
|
||||
WORD led_timeout; /* LED timeout */
|
||||
WORD first_port; /* First port to service */
|
||||
WORD last_port; /* Last port to service */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#endif
|
||||
|
||||
struct ttystatics {
|
||||
struct termios tm;
|
||||
struct termios tm;
|
||||
};
|
||||
|
||||
#define bzero(d, n) memset((d), 0, (n))
|
||||
|
@ -97,26 +97,24 @@ the older driver. The older driver includes "brates.h" which shadows
|
|||
the definitions from Linux, and is incompatible... */
|
||||
|
||||
/* RxBaud and TxBaud definitions... */
|
||||
#define RIO_B0 0x00 /* RTS / DTR signals dropped */
|
||||
#define RIO_B50 0x01 /* 50 baud */
|
||||
#define RIO_B75 0x02 /* 75 baud */
|
||||
#define RIO_B110 0x03 /* 110 baud */
|
||||
#define RIO_B134 0x04 /* 134.5 baud */
|
||||
#define RIO_B150 0x05 /* 150 baud */
|
||||
#define RIO_B200 0x06 /* 200 baud */
|
||||
#define RIO_B300 0x07 /* 300 baud */
|
||||
#define RIO_B600 0x08 /* 600 baud */
|
||||
#define RIO_B1200 0x09 /* 1200 baud */
|
||||
#define RIO_B1800 0x0A /* 1800 baud */
|
||||
#define RIO_B2400 0x0B /* 2400 baud */
|
||||
#define RIO_B4800 0x0C /* 4800 baud */
|
||||
#define RIO_B9600 0x0D /* 9600 baud */
|
||||
#define RIO_B19200 0x0E /* 19200 baud */
|
||||
#define RIO_B38400 0x0F /* 38400 baud */
|
||||
#define RIO_B56000 0x10 /* 56000 baud */
|
||||
#define RIO_B57600 0x11 /* 57600 baud */
|
||||
#define RIO_B64000 0x12 /* 64000 baud */
|
||||
#define RIO_B115200 0x13 /* 115200 baud */
|
||||
#define RIO_B2000 0x14 /* 2000 baud */
|
||||
|
||||
|
||||
#define RIO_B0 0x00 /* RTS / DTR signals dropped */
|
||||
#define RIO_B50 0x01 /* 50 baud */
|
||||
#define RIO_B75 0x02 /* 75 baud */
|
||||
#define RIO_B110 0x03 /* 110 baud */
|
||||
#define RIO_B134 0x04 /* 134.5 baud */
|
||||
#define RIO_B150 0x05 /* 150 baud */
|
||||
#define RIO_B200 0x06 /* 200 baud */
|
||||
#define RIO_B300 0x07 /* 300 baud */
|
||||
#define RIO_B600 0x08 /* 600 baud */
|
||||
#define RIO_B1200 0x09 /* 1200 baud */
|
||||
#define RIO_B1800 0x0A /* 1800 baud */
|
||||
#define RIO_B2400 0x0B /* 2400 baud */
|
||||
#define RIO_B4800 0x0C /* 4800 baud */
|
||||
#define RIO_B9600 0x0D /* 9600 baud */
|
||||
#define RIO_B19200 0x0E /* 19200 baud */
|
||||
#define RIO_B38400 0x0F /* 38400 baud */
|
||||
#define RIO_B56000 0x10 /* 56000 baud */
|
||||
#define RIO_B57600 0x11 /* 57600 baud */
|
||||
#define RIO_B64000 0x12 /* 64000 baud */
|
||||
#define RIO_B115200 0x13 /* 115200 baud */
|
||||
#define RIO_B2000 0x14 /* 2000 baud */
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#ifdef SCCS_LABELS
|
||||
#ifndef lint
|
||||
static char *_rio_list_h_sccs = "@(#)list.h 1.9" ;
|
||||
static char *_rio_list_h_sccs = "@(#)list.h 1.9";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -166,7 +166,7 @@ static char *_rio_list_h_sccs = "@(#)list.h 1.9" ;
|
|||
#endif
|
||||
|
||||
|
||||
#else /* !IN_KERNEL */
|
||||
#else /* !IN_KERNEL */
|
||||
|
||||
#define ZERO_PTR NULL
|
||||
|
||||
|
@ -192,5 +192,5 @@ static char *_rio_list_h_sccs = "@(#)list.h 1.9" ;
|
|||
#define splx(oldspl) if ((oldspl) == 0) spl0()
|
||||
#endif
|
||||
|
||||
#endif /* ifndef _list.h */
|
||||
#endif /* ifndef _list.h */
|
||||
/*********** end of file ***********/
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_lrt_h_sccs = "@(#)lrt.h 1.1" ;
|
||||
static char *_rio_lrt_h_sccs = "@(#)lrt.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -50,6 +50,3 @@ static char *_rio_lrt_h_sccs = "@(#)lrt.h 1.1" ;
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_ltt_h_sccs = "@(#)ltt.h 1.1" ;
|
||||
static char *_rio_ltt_h_sccs = "@(#)ltt.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -45,11 +45,8 @@ static char *_rio_ltt_h_sccs = "@(#)ltt.h 1.1" ;
|
|||
#else
|
||||
#define LTT_STACK (ushort) 200
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_lttwake_h_sccs = "@(#)lttwake.h 1.1" ;
|
||||
static char *_rio_lttwake_h_sccs = "@(#)lttwake.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -48,6 +48,3 @@ static char *_rio_lttwake_h_sccs = "@(#)lttwake.h 1.1" ;
|
|||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -46,21 +46,20 @@ static char *_map_h_sccs_ = "@(#)map.h 1.2";
|
|||
#define TOTAL_MAP_ENTRIES (MAX_MAP_ENTRY*RIO_SLOTS)
|
||||
#define MAX_NAME_LEN 32
|
||||
|
||||
struct Map
|
||||
{
|
||||
uint HostUniqueNum; /* Supporting hosts unique number */
|
||||
uint RtaUniqueNum; /* Unique number */
|
||||
struct Map {
|
||||
uint HostUniqueNum; /* Supporting hosts unique number */
|
||||
uint RtaUniqueNum; /* Unique number */
|
||||
/*
|
||||
** The next two IDs must be swapped on big-endian architectures
|
||||
** when using a v2.04 /etc/rio/config with a v3.00 driver (when
|
||||
** upgrading for example).
|
||||
*/
|
||||
ushort ID; /* ID used in the subnet */
|
||||
ushort ID2; /* ID of 2nd block of 8 for 16 port */
|
||||
ulong Flags; /* Booted, ID Given, Disconnected */
|
||||
ulong SysPort; /* First tty mapped to this port */
|
||||
struct Top Topology[LINKS_PER_UNIT]; /* ID connected to each link */
|
||||
char Name[MAX_NAME_LEN]; /* Cute name by which RTA is known */
|
||||
** The next two IDs must be swapped on big-endian architectures
|
||||
** when using a v2.04 /etc/rio/config with a v3.00 driver (when
|
||||
** upgrading for example).
|
||||
*/
|
||||
ushort ID; /* ID used in the subnet */
|
||||
ushort ID2; /* ID of 2nd block of 8 for 16 port */
|
||||
ulong Flags; /* Booted, ID Given, Disconnected */
|
||||
ulong SysPort; /* First tty mapped to this port */
|
||||
struct Top Topology[LINKS_PER_UNIT]; /* ID connected to each link */
|
||||
char Name[MAX_NAME_LEN]; /* Cute name by which RTA is known */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -70,4 +70,4 @@ static char *_mca_h_sccs_ = "@(#)mca.h 1.2";
|
|||
|
||||
#define RIO_MCA_DEFAULT_MODE SLOW_LINKS
|
||||
|
||||
#endif /* __rio_mca_h__ */
|
||||
#endif /* __rio_mca_h__ */
|
||||
|
|
|
@ -38,4 +38,4 @@ static char *_mesg_h_sccs_ = "@(#)mesg.h 1.2";
|
|||
#endif
|
||||
|
||||
|
||||
#endif /* __rio_mesg_h__ */
|
||||
#endif /* __rio_mesg_h__ */
|
||||
|
|
|
@ -42,20 +42,19 @@ static char *_param_h_sccs_ = "@(#)param.h 1.2";
|
|||
** the param command block, as used in OPEN and PARAM calls.
|
||||
*/
|
||||
|
||||
struct phb_param
|
||||
{
|
||||
BYTE Cmd; /* It is very important that these line up */
|
||||
BYTE Cor1; /* with what is expected at the other end. */
|
||||
BYTE Cor2; /* to confirm that you've got it right, */
|
||||
BYTE Cor4; /* check with cirrus/cirrus.h */
|
||||
BYTE Cor5;
|
||||
BYTE TxXon; /* Transmit X-On character */
|
||||
BYTE TxXoff; /* Transmit X-Off character */
|
||||
BYTE RxXon; /* Receive X-On character */
|
||||
BYTE RxXoff; /* Receive X-Off character */
|
||||
BYTE LNext; /* Literal-next character */
|
||||
BYTE TxBaud; /* Transmit baudrate */
|
||||
BYTE RxBaud; /* Receive baudrate */
|
||||
struct phb_param {
|
||||
BYTE Cmd; /* It is very important that these line up */
|
||||
BYTE Cor1; /* with what is expected at the other end. */
|
||||
BYTE Cor2; /* to confirm that you've got it right, */
|
||||
BYTE Cor4; /* check with cirrus/cirrus.h */
|
||||
BYTE Cor5;
|
||||
BYTE TxXon; /* Transmit X-On character */
|
||||
BYTE TxXoff; /* Transmit X-Off character */
|
||||
BYTE RxXon; /* Receive X-On character */
|
||||
BYTE RxXoff; /* Receive X-Off character */
|
||||
BYTE LNext; /* Literal-next character */
|
||||
BYTE TxBaud; /* Transmit baudrate */
|
||||
BYTE RxBaud; /* Receive baudrate */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -44,53 +44,50 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct PARM_MAP PARM_MAP ;
|
||||
typedef struct PARM_MAP PARM_MAP;
|
||||
|
||||
struct PARM_MAP
|
||||
{
|
||||
PHB_ptr phb_ptr ; /* Pointer to the PHB array */
|
||||
WORD_ptr phb_num_ptr ; /* Ptr to Number of PHB's */
|
||||
FREE_LIST_ptr free_list; /* Free List pointer */
|
||||
FREE_LIST_ptr free_list_end; /* Free List End pointer */
|
||||
Q_BUF_ptr_ptr q_free_list_ptr ; /* Ptr to Q_BUF variable */
|
||||
BYTE_ptr unit_id_ptr ; /* Unit Id */
|
||||
LPB_ptr link_str_ptr ; /* Link Structure Array */
|
||||
BYTE_ptr bootloader_1 ; /* 1st Stage Boot Loader */
|
||||
BYTE_ptr bootloader_2 ; /* 2nd Stage Boot Loader */
|
||||
WORD_ptr port_route_map_ptr ; /* Port Route Map */
|
||||
ROUTE_STR_ptr route_ptr ; /* Unit Route Map */
|
||||
NUMBER_ptr map_present ; /* Route Map present */
|
||||
NUMBER pkt_num ; /* Total number of packets */
|
||||
NUMBER q_num ; /* Total number of Q packets */
|
||||
WORD buffers_per_port ; /* Number of buffers per port */
|
||||
WORD heap_size ; /* Initial size of heap */
|
||||
WORD heap_left ; /* Current Heap left */
|
||||
WORD error ; /* Error code */
|
||||
WORD tx_max; /* Max number of tx pkts per phb */
|
||||
WORD rx_max; /* Max number of rx pkts per phb */
|
||||
WORD rx_limit; /* For high / low watermarks */
|
||||
NUMBER links ; /* Links to use */
|
||||
NUMBER timer ; /* Interrupts per second */
|
||||
RUP_ptr rups ; /* Pointer to the RUPs */
|
||||
WORD max_phb ; /* Mostly for debugging */
|
||||
WORD living ; /* Just increments!! */
|
||||
WORD init_done ; /* Initialisation over */
|
||||
WORD booting_link ;
|
||||
WORD idle_count ; /* Idle time counter */
|
||||
WORD busy_count ; /* Busy counter */
|
||||
WORD idle_control ; /* Control Idle Process */
|
||||
struct PARM_MAP {
|
||||
PHB_ptr phb_ptr; /* Pointer to the PHB array */
|
||||
WORD_ptr phb_num_ptr; /* Ptr to Number of PHB's */
|
||||
FREE_LIST_ptr free_list; /* Free List pointer */
|
||||
FREE_LIST_ptr free_list_end; /* Free List End pointer */
|
||||
Q_BUF_ptr_ptr q_free_list_ptr; /* Ptr to Q_BUF variable */
|
||||
BYTE_ptr unit_id_ptr; /* Unit Id */
|
||||
LPB_ptr link_str_ptr; /* Link Structure Array */
|
||||
BYTE_ptr bootloader_1; /* 1st Stage Boot Loader */
|
||||
BYTE_ptr bootloader_2; /* 2nd Stage Boot Loader */
|
||||
WORD_ptr port_route_map_ptr; /* Port Route Map */
|
||||
ROUTE_STR_ptr route_ptr; /* Unit Route Map */
|
||||
NUMBER_ptr map_present; /* Route Map present */
|
||||
NUMBER pkt_num; /* Total number of packets */
|
||||
NUMBER q_num; /* Total number of Q packets */
|
||||
WORD buffers_per_port; /* Number of buffers per port */
|
||||
WORD heap_size; /* Initial size of heap */
|
||||
WORD heap_left; /* Current Heap left */
|
||||
WORD error; /* Error code */
|
||||
WORD tx_max; /* Max number of tx pkts per phb */
|
||||
WORD rx_max; /* Max number of rx pkts per phb */
|
||||
WORD rx_limit; /* For high / low watermarks */
|
||||
NUMBER links; /* Links to use */
|
||||
NUMBER timer; /* Interrupts per second */
|
||||
RUP_ptr rups; /* Pointer to the RUPs */
|
||||
WORD max_phb; /* Mostly for debugging */
|
||||
WORD living; /* Just increments!! */
|
||||
WORD init_done; /* Initialisation over */
|
||||
WORD booting_link;
|
||||
WORD idle_count; /* Idle time counter */
|
||||
WORD busy_count; /* Busy counter */
|
||||
WORD idle_control; /* Control Idle Process */
|
||||
#if defined(HOST) || defined(INKERNEL)
|
||||
WORD tx_intr; /* TX interrupt pending */
|
||||
WORD rx_intr; /* RX interrupt pending */
|
||||
WORD rup_intr; /* RUP interrupt pending */
|
||||
WORD tx_intr; /* TX interrupt pending */
|
||||
WORD rx_intr; /* RX interrupt pending */
|
||||
WORD rup_intr; /* RUP interrupt pending */
|
||||
#endif
|
||||
#if defined(RTA)
|
||||
WORD dying_count; /* Count of processes dead */
|
||||
WORD dying_count; /* Count of processes dead */
|
||||
#endif
|
||||
} ;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -73,4 +73,4 @@ static char *_pci_h_sccs_ = "@(#)pci.h 1.2";
|
|||
|
||||
#define RIO_PCI_DEFAULT_MODE 0x05
|
||||
|
||||
#endif /* __rio_pci_h__ */
|
||||
#endif /* __rio_pci_h__ */
|
||||
|
|
|
@ -58,37 +58,37 @@
|
|||
/*************************************************
|
||||
* Handshake asserted. Deasserted by the LTT(s)
|
||||
************************************************/
|
||||
#define PHB_HANDSHAKE_SET ((ushort) 0x001) /* Set by LRT */
|
||||
#define PHB_HANDSHAKE_SET ((ushort) 0x001) /* Set by LRT */
|
||||
|
||||
#define PHB_HANDSHAKE_RESET ((ushort) 0x002) /* Set by ISR / driver */
|
||||
#define PHB_HANDSHAKE_RESET ((ushort) 0x002) /* Set by ISR / driver */
|
||||
|
||||
#define PHB_HANDSHAKE_FLAGS (PHB_HANDSHAKE_RESET | PHB_HANDSHAKE_SET)
|
||||
/* Reset by ltt */
|
||||
/* Reset by ltt */
|
||||
|
||||
|
||||
/*************************************************
|
||||
* Maximum number of PHB's
|
||||
************************************************/
|
||||
#if defined (HOST) || defined (INKERNEL)
|
||||
#define MAX_PHB ((ushort) 128) /* range 0-127 */
|
||||
#define MAX_PHB ((ushort) 128) /* range 0-127 */
|
||||
#else
|
||||
#define MAX_PHB ((ushort) 8) /* range 0-7 */
|
||||
#define MAX_PHB ((ushort) 8) /* range 0-7 */
|
||||
#endif
|
||||
|
||||
/*************************************************
|
||||
* Defines for the mode fields
|
||||
************************************************/
|
||||
#define TXPKT_INCOMPLETE 0x0001 /* Previous tx packet not completed */
|
||||
#define TXINTR_ENABLED 0x0002 /* Tx interrupt is enabled */
|
||||
#define TX_TAB3 0x0004 /* TAB3 mode */
|
||||
#define TX_OCRNL 0x0008 /* OCRNL mode */
|
||||
#define TX_ONLCR 0x0010 /* ONLCR mode */
|
||||
#define TX_SENDSPACES 0x0020 /* Send n spaces command needs
|
||||
completing */
|
||||
#define TX_SENDNULL 0x0040 /* Escaping NULL needs completing */
|
||||
#define TX_SENDLF 0x0080 /* LF -> CR LF needs completing */
|
||||
#define TX_PARALLELBUG 0x0100 /* CD1400 LF -> CR LF bug on parallel
|
||||
port */
|
||||
#define TXPKT_INCOMPLETE 0x0001 /* Previous tx packet not completed */
|
||||
#define TXINTR_ENABLED 0x0002 /* Tx interrupt is enabled */
|
||||
#define TX_TAB3 0x0004 /* TAB3 mode */
|
||||
#define TX_OCRNL 0x0008 /* OCRNL mode */
|
||||
#define TX_ONLCR 0x0010 /* ONLCR mode */
|
||||
#define TX_SENDSPACES 0x0020 /* Send n spaces command needs
|
||||
completing */
|
||||
#define TX_SENDNULL 0x0040 /* Escaping NULL needs completing */
|
||||
#define TX_SENDLF 0x0080 /* LF -> CR LF needs completing */
|
||||
#define TX_PARALLELBUG 0x0100 /* CD1400 LF -> CR LF bug on parallel
|
||||
port */
|
||||
#define TX_HANGOVER (TX_SENDSPACES | TX_SENDLF | TX_SENDNULL)
|
||||
#define TX_DTRFLOW 0x0200 /* DTR tx flow control */
|
||||
#define TX_DTRFLOWED 0x0400 /* DTR is low - don't allow more data
|
||||
|
@ -96,34 +96,34 @@
|
|||
#define TX_DATAINFIFO 0x0800 /* There is data in the FIFO */
|
||||
#define TX_BUSY 0x1000 /* Data in FIFO, shift or holding regs */
|
||||
|
||||
#define RX_SPARE 0x0001 /* SPARE */
|
||||
#define RXINTR_ENABLED 0x0002 /* Rx interrupt enabled */
|
||||
#define RX_ICRNL 0x0008 /* ICRNL mode */
|
||||
#define RX_INLCR 0x0010 /* INLCR mode */
|
||||
#define RX_IGNCR 0x0020 /* IGNCR mode */
|
||||
#define RX_CTSFLOW 0x0040 /* CTSFLOW enabled */
|
||||
#define RX_IXOFF 0x0080 /* IXOFF enabled */
|
||||
#define RX_CTSFLOWED 0x0100 /* CTSFLOW and CTS dropped */
|
||||
#define RX_IXOFFED 0x0200 /* IXOFF and xoff sent */
|
||||
#define RX_BUFFERED 0x0400 /* Try and pass on complete packets */
|
||||
#define RX_SPARE 0x0001 /* SPARE */
|
||||
#define RXINTR_ENABLED 0x0002 /* Rx interrupt enabled */
|
||||
#define RX_ICRNL 0x0008 /* ICRNL mode */
|
||||
#define RX_INLCR 0x0010 /* INLCR mode */
|
||||
#define RX_IGNCR 0x0020 /* IGNCR mode */
|
||||
#define RX_CTSFLOW 0x0040 /* CTSFLOW enabled */
|
||||
#define RX_IXOFF 0x0080 /* IXOFF enabled */
|
||||
#define RX_CTSFLOWED 0x0100 /* CTSFLOW and CTS dropped */
|
||||
#define RX_IXOFFED 0x0200 /* IXOFF and xoff sent */
|
||||
#define RX_BUFFERED 0x0400 /* Try and pass on complete packets */
|
||||
|
||||
#define PORT_ISOPEN 0x0001 /* Port open? */
|
||||
#define PORT_HUPCL 0x0002 /* Hangup on close? */
|
||||
#define PORT_MOPENPEND 0x0004 /* Modem open pending */
|
||||
#define PORT_ISPARALLEL 0x0008 /* Parallel port */
|
||||
#define PORT_BREAK 0x0010 /* Port on break */
|
||||
#define PORT_STATUSPEND 0x0020 /* Status packet pending */
|
||||
#define PORT_BREAKPEND 0x0040 /* Break packet pending */
|
||||
#define PORT_MODEMPEND 0x0080 /* Modem status packet pending */
|
||||
#define PORT_PARALLELBUG 0x0100 /* CD1400 LF -> CR LF bug on parallel
|
||||
port */
|
||||
#define PORT_FULLMODEM 0x0200 /* Full modem signals */
|
||||
#define PORT_RJ45 0x0400 /* RJ45 connector - no RI signal */
|
||||
#define PORT_RESTRICTED 0x0600 /* Restricted connector - no RI / DTR */
|
||||
#define PORT_ISOPEN 0x0001 /* Port open? */
|
||||
#define PORT_HUPCL 0x0002 /* Hangup on close? */
|
||||
#define PORT_MOPENPEND 0x0004 /* Modem open pending */
|
||||
#define PORT_ISPARALLEL 0x0008 /* Parallel port */
|
||||
#define PORT_BREAK 0x0010 /* Port on break */
|
||||
#define PORT_STATUSPEND 0x0020 /* Status packet pending */
|
||||
#define PORT_BREAKPEND 0x0040 /* Break packet pending */
|
||||
#define PORT_MODEMPEND 0x0080 /* Modem status packet pending */
|
||||
#define PORT_PARALLELBUG 0x0100 /* CD1400 LF -> CR LF bug on parallel
|
||||
port */
|
||||
#define PORT_FULLMODEM 0x0200 /* Full modem signals */
|
||||
#define PORT_RJ45 0x0400 /* RJ45 connector - no RI signal */
|
||||
#define PORT_RESTRICTED 0x0600 /* Restricted connector - no RI / DTR */
|
||||
|
||||
#define PORT_MODEMBITS 0x0600 /* Mask for modem fields */
|
||||
#define PORT_MODEMBITS 0x0600 /* Mask for modem fields */
|
||||
|
||||
#define PORT_WCLOSE 0x0800 /* Waiting for close */
|
||||
#define PORT_WCLOSE 0x0800 /* Waiting for close */
|
||||
#define PORT_HANDSHAKEFIX 0x1000 /* Port has H/W flow control fix */
|
||||
#define PORT_WASPCLOSED 0x2000 /* Port closed with PCLOSE */
|
||||
#define DUMPMODE 0x4000 /* Dump RTA mem */
|
||||
|
@ -155,139 +155,128 @@
|
|||
#define rx_end u4.s1.rx_end_ptr_ptr
|
||||
#define rx_remove u4.s1.rx_remove_ptr_ptr
|
||||
#endif
|
||||
typedef struct PHB PHB ;
|
||||
typedef struct PHB PHB;
|
||||
struct PHB {
|
||||
#ifdef RTA
|
||||
ushort port;
|
||||
ushort port;
|
||||
#endif
|
||||
#ifdef INKERNEL
|
||||
WORD source;
|
||||
WORD source;
|
||||
#else
|
||||
union
|
||||
{
|
||||
ushort source; /* Complete source */
|
||||
struct
|
||||
{
|
||||
unsigned char unit; /* Source unit */
|
||||
unsigned char port; /* Source port */
|
||||
} s2;
|
||||
} u2;
|
||||
union {
|
||||
ushort source; /* Complete source */
|
||||
struct {
|
||||
unsigned char unit; /* Source unit */
|
||||
unsigned char port; /* Source port */
|
||||
} s2;
|
||||
} u2;
|
||||
#endif
|
||||
WORD handshake ;
|
||||
WORD status ;
|
||||
NUMBER timeout ; /* Maximum of 1.9 seconds */
|
||||
WORD link ; /* Send down this link */
|
||||
WORD handshake;
|
||||
WORD status;
|
||||
NUMBER timeout; /* Maximum of 1.9 seconds */
|
||||
WORD link; /* Send down this link */
|
||||
#ifdef INKERNEL
|
||||
WORD destination;
|
||||
WORD destination;
|
||||
#else
|
||||
union
|
||||
{
|
||||
ushort destination; /* Complete destination */
|
||||
struct
|
||||
{
|
||||
unsigned char unit; /* Destination unit */
|
||||
unsigned char port; /* Destination port */
|
||||
} s1;
|
||||
} u1;
|
||||
union {
|
||||
ushort destination; /* Complete destination */
|
||||
struct {
|
||||
unsigned char unit; /* Destination unit */
|
||||
unsigned char port; /* Destination port */
|
||||
} s1;
|
||||
} u1;
|
||||
#endif
|
||||
#ifdef RTA
|
||||
ushort tx_pkts_added;
|
||||
ushort tx_pkts_removed;
|
||||
Q_BUF_ptr tx_q_start ; /* Start of the Q list chain */
|
||||
short num_tx_q_bufs ; /* Number of Q buffers in the chain */
|
||||
PKT_ptr_ptr tx_add ; /* Add a new Packet here */
|
||||
Q_BUF_ptr tx_add_qb; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr tx_add_st_qbb ; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr tx_add_end_qbb ; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr tx_remove ; /* Remove a Packet here */
|
||||
Q_BUF_ptr tx_remove_qb ; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr tx_remove_st_qbb ; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr tx_remove_end_qbb ; /* Pointer to the end of the Q buf */
|
||||
ushort tx_pkts_added;
|
||||
ushort tx_pkts_removed;
|
||||
Q_BUF_ptr tx_q_start; /* Start of the Q list chain */
|
||||
short num_tx_q_bufs; /* Number of Q buffers in the chain */
|
||||
PKT_ptr_ptr tx_add; /* Add a new Packet here */
|
||||
Q_BUF_ptr tx_add_qb; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr tx_add_st_qbb; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr tx_add_end_qbb; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr tx_remove; /* Remove a Packet here */
|
||||
Q_BUF_ptr tx_remove_qb; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr tx_remove_st_qbb; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr tx_remove_end_qbb; /* Pointer to the end of the Q buf */
|
||||
#endif
|
||||
#ifdef INKERNEL
|
||||
PKT_ptr_ptr tx_start ;
|
||||
PKT_ptr_ptr tx_end ;
|
||||
PKT_ptr_ptr tx_add ;
|
||||
PKT_ptr_ptr tx_remove ;
|
||||
PKT_ptr_ptr tx_start;
|
||||
PKT_ptr_ptr tx_end;
|
||||
PKT_ptr_ptr tx_add;
|
||||
PKT_ptr_ptr tx_remove;
|
||||
#endif
|
||||
#ifdef HOST
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
PKT_ptr_ptr tx_start_ptr_ptr;
|
||||
PKT_ptr_ptr tx_end_ptr_ptr;
|
||||
PKT_ptr_ptr tx_add_ptr_ptr;
|
||||
PKT_ptr_ptr tx_remove_ptr_ptr;
|
||||
} s1;
|
||||
struct
|
||||
{
|
||||
ushort * tx_start_ptr;
|
||||
ushort * tx_end_ptr;
|
||||
ushort * tx_add_ptr;
|
||||
ushort * tx_remove_ptr;
|
||||
} s2;
|
||||
} u3;
|
||||
union {
|
||||
struct {
|
||||
PKT_ptr_ptr tx_start_ptr_ptr;
|
||||
PKT_ptr_ptr tx_end_ptr_ptr;
|
||||
PKT_ptr_ptr tx_add_ptr_ptr;
|
||||
PKT_ptr_ptr tx_remove_ptr_ptr;
|
||||
} s1;
|
||||
struct {
|
||||
ushort *tx_start_ptr;
|
||||
ushort *tx_end_ptr;
|
||||
ushort *tx_add_ptr;
|
||||
ushort *tx_remove_ptr;
|
||||
} s2;
|
||||
} u3;
|
||||
#endif
|
||||
|
||||
#ifdef RTA
|
||||
ushort rx_pkts_added;
|
||||
ushort rx_pkts_removed;
|
||||
Q_BUF_ptr rx_q_start ; /* Start of the Q list chain */
|
||||
short num_rx_q_bufs ; /* Number of Q buffers in the chain */
|
||||
PKT_ptr_ptr rx_add ; /* Add a new Packet here */
|
||||
Q_BUF_ptr rx_add_qb ; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr rx_add_st_qbb ; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr rx_add_end_qbb ; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr rx_remove ; /* Remove a Packet here */
|
||||
Q_BUF_ptr rx_remove_qb ; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr rx_remove_st_qbb ; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr rx_remove_end_qbb ; /* Pointer to the end of the Q buf */
|
||||
ushort rx_pkts_added;
|
||||
ushort rx_pkts_removed;
|
||||
Q_BUF_ptr rx_q_start; /* Start of the Q list chain */
|
||||
short num_rx_q_bufs; /* Number of Q buffers in the chain */
|
||||
PKT_ptr_ptr rx_add; /* Add a new Packet here */
|
||||
Q_BUF_ptr rx_add_qb; /* Pointer to the add Q buf */
|
||||
PKT_ptr_ptr rx_add_st_qbb; /* Pointer to start of the Q's buf */
|
||||
PKT_ptr_ptr rx_add_end_qbb; /* Pointer to the end of the Q's buf */
|
||||
PKT_ptr_ptr rx_remove; /* Remove a Packet here */
|
||||
Q_BUF_ptr rx_remove_qb; /* Pointer to the remove Q buf */
|
||||
PKT_ptr_ptr rx_remove_st_qbb; /* Pointer to the start of the Q buf */
|
||||
PKT_ptr_ptr rx_remove_end_qbb; /* Pointer to the end of the Q buf */
|
||||
#endif
|
||||
#ifdef INKERNEL
|
||||
PKT_ptr_ptr rx_start ;
|
||||
PKT_ptr_ptr rx_end ;
|
||||
PKT_ptr_ptr rx_add ;
|
||||
PKT_ptr_ptr rx_remove ;
|
||||
PKT_ptr_ptr rx_start;
|
||||
PKT_ptr_ptr rx_end;
|
||||
PKT_ptr_ptr rx_add;
|
||||
PKT_ptr_ptr rx_remove;
|
||||
#endif
|
||||
#ifdef HOST
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
PKT_ptr_ptr rx_start_ptr_ptr;
|
||||
PKT_ptr_ptr rx_end_ptr_ptr;
|
||||
PKT_ptr_ptr rx_add_ptr_ptr;
|
||||
PKT_ptr_ptr rx_remove_ptr_ptr;
|
||||
} s1;
|
||||
struct
|
||||
{
|
||||
ushort * rx_start_ptr;
|
||||
ushort * rx_end_ptr;
|
||||
ushort * rx_add_ptr;
|
||||
ushort * rx_remove_ptr;
|
||||
} s2;
|
||||
} u4;
|
||||
union {
|
||||
struct {
|
||||
PKT_ptr_ptr rx_start_ptr_ptr;
|
||||
PKT_ptr_ptr rx_end_ptr_ptr;
|
||||
PKT_ptr_ptr rx_add_ptr_ptr;
|
||||
PKT_ptr_ptr rx_remove_ptr_ptr;
|
||||
} s1;
|
||||
struct {
|
||||
ushort *rx_start_ptr;
|
||||
ushort *rx_end_ptr;
|
||||
ushort *rx_add_ptr;
|
||||
ushort *rx_remove_ptr;
|
||||
} s2;
|
||||
} u4;
|
||||
#endif
|
||||
|
||||
#ifdef RTA /* some fields for the remotes */
|
||||
ushort flush_count; /* Count of write flushes */
|
||||
ushort txmode; /* Modes for tx */
|
||||
ushort rxmode; /* Modes for rx */
|
||||
ushort portmode; /* Generic modes */
|
||||
ushort column; /* TAB3 column count */
|
||||
ushort tx_subscript; /* (TX) Subscript into data field */
|
||||
ushort rx_subscript; /* (RX) Subscript into data field */
|
||||
PKT_ptr rx_incomplete; /* Hold an incomplete packet here */
|
||||
ushort modem_bits; /* Modem bits to mask */
|
||||
ushort lastModem; /* Modem control lines. */
|
||||
ushort addr; /* Address for sub commands */
|
||||
ushort MonitorTstate; /* TRUE if monitoring tstop */
|
||||
#ifdef RTA /* some fields for the remotes */
|
||||
ushort flush_count; /* Count of write flushes */
|
||||
ushort txmode; /* Modes for tx */
|
||||
ushort rxmode; /* Modes for rx */
|
||||
ushort portmode; /* Generic modes */
|
||||
ushort column; /* TAB3 column count */
|
||||
ushort tx_subscript; /* (TX) Subscript into data field */
|
||||
ushort rx_subscript; /* (RX) Subscript into data field */
|
||||
PKT_ptr rx_incomplete; /* Hold an incomplete packet here */
|
||||
ushort modem_bits; /* Modem bits to mask */
|
||||
ushort lastModem; /* Modem control lines. */
|
||||
ushort addr; /* Address for sub commands */
|
||||
ushort MonitorTstate; /* TRUE if monitoring tstop */
|
||||
#endif
|
||||
|
||||
} ;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -69,52 +69,44 @@
|
|||
#define CONTROL_PKT_TTL_MASK (PKT_TTL_MASK << 8)
|
||||
#define CONTROL_DATA_WNDW (DATA_WNDW << 8)
|
||||
|
||||
struct PKT {
|
||||
struct PKT {
|
||||
#ifdef INKERNEL
|
||||
BYTE dest_unit ; /* Destination Unit Id */
|
||||
BYTE dest_port ; /* Destination POrt */
|
||||
BYTE src_unit ; /* Source Unit Id */
|
||||
BYTE src_port ; /* Source POrt */
|
||||
BYTE dest_unit; /* Destination Unit Id */
|
||||
BYTE dest_port; /* Destination POrt */
|
||||
BYTE src_unit; /* Source Unit Id */
|
||||
BYTE src_port; /* Source POrt */
|
||||
#else
|
||||
union
|
||||
{
|
||||
ushort destination; /* Complete destination */
|
||||
struct
|
||||
{
|
||||
unsigned char unit; /* Destination unit */
|
||||
unsigned char port; /* Destination port */
|
||||
} s1;
|
||||
} u1;
|
||||
union
|
||||
{
|
||||
ushort source; /* Complete source */
|
||||
struct
|
||||
{
|
||||
unsigned char unit; /* Source unit */
|
||||
unsigned char port; /* Source port */
|
||||
} s2;
|
||||
} u2;
|
||||
union {
|
||||
ushort destination; /* Complete destination */
|
||||
struct {
|
||||
unsigned char unit; /* Destination unit */
|
||||
unsigned char port; /* Destination port */
|
||||
} s1;
|
||||
} u1;
|
||||
union {
|
||||
ushort source; /* Complete source */
|
||||
struct {
|
||||
unsigned char unit; /* Source unit */
|
||||
unsigned char port; /* Source port */
|
||||
} s2;
|
||||
} u2;
|
||||
#endif
|
||||
#ifdef INKERNEL
|
||||
BYTE len ;
|
||||
BYTE control;
|
||||
BYTE len;
|
||||
BYTE control;
|
||||
#else
|
||||
union
|
||||
{
|
||||
ushort control;
|
||||
struct
|
||||
{
|
||||
unsigned char len;
|
||||
unsigned char control;
|
||||
} s3;
|
||||
} u3;
|
||||
union {
|
||||
ushort control;
|
||||
struct {
|
||||
unsigned char len;
|
||||
unsigned char control;
|
||||
} s3;
|
||||
} u3;
|
||||
#endif
|
||||
BYTE data[PKT_MAX_DATA_LEN] ;
|
||||
/* Actual data :-) */
|
||||
WORD csum ; /* C-SUM */
|
||||
} ;
|
||||
BYTE data[PKT_MAX_DATA_LEN];
|
||||
/* Actual data :-) */
|
||||
WORD csum; /* C-SUM */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_poll_h_sccs = "@(#)poll.h 1.2" ;
|
||||
static char *_rio_poll_h_sccs = "@(#)poll.h 1.2";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -54,23 +54,20 @@ static char *_rio_poll_h_sccs = "@(#)poll.h 1.2" ;
|
|||
#define POLL_PERIOD (int) SECOND
|
||||
|
||||
/* The various poll commands */
|
||||
#define POLL_POLL 0 /* We are connected and happy.. */
|
||||
#define POLL_INTRO 1 /* Introduction packet */
|
||||
#define POLL_TOPOLOGY 2 /* Topology update */
|
||||
#define POLL_ASSIGN 3 /* ID assign */
|
||||
#define POLL_FOAD 4 /* F*** Off And Die */
|
||||
#define POLL_LMD 5 /* Let Me Die */
|
||||
#define POLL_DYB 6 /* Die You Ba***** */
|
||||
#define POLL_POLL 0 /* We are connected and happy.. */
|
||||
#define POLL_INTRO 1 /* Introduction packet */
|
||||
#define POLL_TOPOLOGY 2 /* Topology update */
|
||||
#define POLL_ASSIGN 3 /* ID assign */
|
||||
#define POLL_FOAD 4 /* F*** Off And Die */
|
||||
#define POLL_LMD 5 /* Let Me Die */
|
||||
#define POLL_DYB 6 /* Die You Ba***** */
|
||||
|
||||
/* The way data fields are split up for POLL packets */
|
||||
#define POLL_HOST_SERIAL 2 /* Host who booted me */
|
||||
#define POLL_MY_SERIAL 6 /* My serial number */
|
||||
#define POLL_YOUR_ID 1 /* Your ID number */
|
||||
#define POLL_TOPOLOGY_FIELDS 2 /* Topology maps */
|
||||
#define POLL_HOST_SERIAL 2 /* Host who booted me */
|
||||
#define POLL_MY_SERIAL 6 /* My serial number */
|
||||
#define POLL_YOUR_ID 1 /* Your ID number */
|
||||
#define POLL_TOPOLOGY_FIELDS 2 /* Topology maps */
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -46,96 +46,94 @@ static char *_port_h_sccs_ = "@(#)port.h 1.3";
|
|||
*/
|
||||
|
||||
#ifdef STATS
|
||||
struct RIOStats
|
||||
{
|
||||
struct RIOStats {
|
||||
/*
|
||||
** interrupt statistics
|
||||
*/
|
||||
uint BreakIntCnt;
|
||||
uint ModemOffCnt;
|
||||
uint ModemOnCnt;
|
||||
uint RxIntCnt;
|
||||
uint TxIntCnt;
|
||||
** interrupt statistics
|
||||
*/
|
||||
uint BreakIntCnt;
|
||||
uint ModemOffCnt;
|
||||
uint ModemOnCnt;
|
||||
uint RxIntCnt;
|
||||
uint TxIntCnt;
|
||||
/*
|
||||
** throughput statistics
|
||||
*/
|
||||
uint RxCharCnt;
|
||||
uint RxPktCnt;
|
||||
uint RxSaveCnt;
|
||||
uint TxCharCnt;
|
||||
uint TxPktCnt;
|
||||
** throughput statistics
|
||||
*/
|
||||
uint RxCharCnt;
|
||||
uint RxPktCnt;
|
||||
uint RxSaveCnt;
|
||||
uint TxCharCnt;
|
||||
uint TxPktCnt;
|
||||
/*
|
||||
** driver entry statistics
|
||||
*/
|
||||
uint CloseCnt;
|
||||
uint IoctlCnt;
|
||||
uint OpenCnt;
|
||||
uint ReadCnt;
|
||||
uint WriteCnt;
|
||||
** driver entry statistics
|
||||
*/
|
||||
uint CloseCnt;
|
||||
uint IoctlCnt;
|
||||
uint OpenCnt;
|
||||
uint ReadCnt;
|
||||
uint WriteCnt;
|
||||
/*
|
||||
** proc statistics
|
||||
*/
|
||||
uint BlockCnt;
|
||||
uint OutputCnt;
|
||||
uint ResumeCnt;
|
||||
uint RflushCnt;
|
||||
uint SuspendCnt;
|
||||
uint TbreakCnt;
|
||||
uint TimeoutCnt;
|
||||
uint UnblockCnt;
|
||||
uint WflushCnt;
|
||||
uint WFBodgeCnt;
|
||||
** proc statistics
|
||||
*/
|
||||
uint BlockCnt;
|
||||
uint OutputCnt;
|
||||
uint ResumeCnt;
|
||||
uint RflushCnt;
|
||||
uint SuspendCnt;
|
||||
uint TbreakCnt;
|
||||
uint TimeoutCnt;
|
||||
uint UnblockCnt;
|
||||
uint WflushCnt;
|
||||
uint WFBodgeCnt;
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Port data structure
|
||||
*/
|
||||
struct Port
|
||||
{
|
||||
struct gs_port gs;
|
||||
int PortNum; /* RIO port no., 0-511 */
|
||||
struct Host *HostP;
|
||||
volatile caddr_t Caddr;
|
||||
ushort HostPort; /* Port number on host card */
|
||||
uchar RupNum; /* Number of RUP for port */
|
||||
uchar ID2; /* Second ID of RTA for port */
|
||||
ulong State; /* FLAGS for open & xopen */
|
||||
#define RIO_LOPEN 0x00001 /* Local open */
|
||||
#define RIO_MOPEN 0x00002 /* Modem open */
|
||||
#define RIO_WOPEN 0x00004 /* Waiting for open */
|
||||
#define RIO_CLOSING 0x00008 /* The port is being close */
|
||||
#define RIO_XPBUSY 0x00010 /* Transparent printer busy */
|
||||
#define RIO_BREAKING 0x00020 /* Break in progress */
|
||||
#define RIO_DIRECT 0x00040 /* Doing Direct output */
|
||||
#define RIO_EXCLUSIVE 0x00080 /* Stream open for exclusive use */
|
||||
#define RIO_NDELAY 0x00100 /* Stream is open FNDELAY */
|
||||
#define RIO_CARR_ON 0x00200 /* Stream has carrier present */
|
||||
#define RIO_XPWANTR 0x00400 /* Stream wanted by Xprint */
|
||||
#define RIO_RBLK 0x00800 /* Stream is read-blocked */
|
||||
#define RIO_BUSY 0x01000 /* Stream is BUSY for write */
|
||||
#define RIO_TIMEOUT 0x02000 /* Stream timeout in progress */
|
||||
#define RIO_TXSTOP 0x04000 /* Stream output is stopped */
|
||||
#define RIO_WAITFLUSH 0x08000 /* Stream waiting for flush */
|
||||
#define RIO_DYNOROD 0x10000 /* Drain failed */
|
||||
#define RIO_DELETED 0x20000 /* RTA has been deleted */
|
||||
#define RIO_ISSCANCODE 0x40000 /* This line is in scancode mode */
|
||||
struct Port {
|
||||
struct gs_port gs;
|
||||
int PortNum; /* RIO port no., 0-511 */
|
||||
struct Host *HostP;
|
||||
volatile caddr_t Caddr;
|
||||
ushort HostPort; /* Port number on host card */
|
||||
uchar RupNum; /* Number of RUP for port */
|
||||
uchar ID2; /* Second ID of RTA for port */
|
||||
ulong State; /* FLAGS for open & xopen */
|
||||
#define RIO_LOPEN 0x00001 /* Local open */
|
||||
#define RIO_MOPEN 0x00002 /* Modem open */
|
||||
#define RIO_WOPEN 0x00004 /* Waiting for open */
|
||||
#define RIO_CLOSING 0x00008 /* The port is being close */
|
||||
#define RIO_XPBUSY 0x00010 /* Transparent printer busy */
|
||||
#define RIO_BREAKING 0x00020 /* Break in progress */
|
||||
#define RIO_DIRECT 0x00040 /* Doing Direct output */
|
||||
#define RIO_EXCLUSIVE 0x00080 /* Stream open for exclusive use */
|
||||
#define RIO_NDELAY 0x00100 /* Stream is open FNDELAY */
|
||||
#define RIO_CARR_ON 0x00200 /* Stream has carrier present */
|
||||
#define RIO_XPWANTR 0x00400 /* Stream wanted by Xprint */
|
||||
#define RIO_RBLK 0x00800 /* Stream is read-blocked */
|
||||
#define RIO_BUSY 0x01000 /* Stream is BUSY for write */
|
||||
#define RIO_TIMEOUT 0x02000 /* Stream timeout in progress */
|
||||
#define RIO_TXSTOP 0x04000 /* Stream output is stopped */
|
||||
#define RIO_WAITFLUSH 0x08000 /* Stream waiting for flush */
|
||||
#define RIO_DYNOROD 0x10000 /* Drain failed */
|
||||
#define RIO_DELETED 0x20000 /* RTA has been deleted */
|
||||
#define RIO_ISSCANCODE 0x40000 /* This line is in scancode mode */
|
||||
#define RIO_USING_EUC 0x100000 /* Using extended Unix chars */
|
||||
#define RIO_CAN_COOK 0x200000 /* This line can do cooking */
|
||||
#define RIO_TRIAD_MODE 0x400000 /* Enable TRIAD special ops. */
|
||||
#define RIO_TRIAD_BLOCK 0x800000 /* Next read will block */
|
||||
#define RIO_TRIAD_FUNC 0x1000000 /* Seen a function key coming in */
|
||||
#define RIO_THROTTLE_RX 0x2000000 /* RX needs to be throttled. */
|
||||
#define RIO_TRIAD_MODE 0x400000 /* Enable TRIAD special ops. */
|
||||
#define RIO_TRIAD_BLOCK 0x800000 /* Next read will block */
|
||||
#define RIO_TRIAD_FUNC 0x1000000 /* Seen a function key coming in */
|
||||
#define RIO_THROTTLE_RX 0x2000000 /* RX needs to be throttled. */
|
||||
|
||||
ulong Config; /* FLAGS for NOREAD.... */
|
||||
#define RIO_NOREAD 0x0001 /* Are not allowed to read port */
|
||||
#define RIO_NOWRITE 0x0002 /* Are not allowed to write port */
|
||||
#define RIO_NOXPRINT 0x0004 /* Are not allowed to xprint port */
|
||||
#define RIO_NOMASK 0x0007 /* All not allowed things */
|
||||
#define RIO_IXANY 0x0008 /* Port is allowed ixany */
|
||||
#define RIO_MODEM 0x0010 /* Stream is a modem device */
|
||||
#define RIO_IXON 0x0020 /* Port is allowed ixon */
|
||||
#define RIO_WAITDRAIN 0x0040 /* Wait for port to completely drain */
|
||||
ulong Config; /* FLAGS for NOREAD.... */
|
||||
#define RIO_NOREAD 0x0001 /* Are not allowed to read port */
|
||||
#define RIO_NOWRITE 0x0002 /* Are not allowed to write port */
|
||||
#define RIO_NOXPRINT 0x0004 /* Are not allowed to xprint port */
|
||||
#define RIO_NOMASK 0x0007 /* All not allowed things */
|
||||
#define RIO_IXANY 0x0008 /* Port is allowed ixany */
|
||||
#define RIO_MODEM 0x0010 /* Stream is a modem device */
|
||||
#define RIO_IXON 0x0020 /* Port is allowed ixon */
|
||||
#define RIO_WAITDRAIN 0x0040 /* Wait for port to completely drain */
|
||||
#define RIO_MAP_50_TO_50 0x0080 /* Map 50 baud to 50 baud */
|
||||
#define RIO_MAP_110_TO_110 0x0100 /* Map 110 baud to 110 baud */
|
||||
|
||||
|
@ -144,92 +142,90 @@ struct Port
|
|||
** As LynxOS does not appear to support Hardware Flow Control .....
|
||||
** Define our own flow control flags in 'Config'.
|
||||
*/
|
||||
#define RIO_CTSFLOW 0x0200 /* RIO's own CTSFLOW flag */
|
||||
#define RIO_RTSFLOW 0x0400 /* RIO's own RTSFLOW flag */
|
||||
#define RIO_CTSFLOW 0x0200 /* RIO's own CTSFLOW flag */
|
||||
#define RIO_RTSFLOW 0x0400 /* RIO's own RTSFLOW flag */
|
||||
|
||||
|
||||
struct PHB *PhbP; /* pointer to PHB for port */
|
||||
WORD *TxAdd; /* Add packets here */
|
||||
WORD *TxStart; /* Start of add array */
|
||||
WORD *TxEnd; /* End of add array */
|
||||
WORD *RxRemove; /* Remove packets here */
|
||||
WORD *RxStart; /* Start of remove array */
|
||||
WORD *RxEnd; /* End of remove array */
|
||||
uint RtaUniqueNum; /* Unique number of RTA */
|
||||
ushort PortState; /* status of port */
|
||||
ushort ModemState; /* status of modem lines */
|
||||
ulong ModemLines; /* Modem bits sent to RTA */
|
||||
uchar CookMode; /* who expands CR/LF? */
|
||||
uchar ParamSem; /* Prevent write during param */
|
||||
uchar Mapped; /* if port mapped onto host */
|
||||
uchar SecondBlock; /* if port belongs to 2nd block
|
||||
of 16 port RTA */
|
||||
uchar InUse; /* how many pre-emptive cmds */
|
||||
uchar Lock; /* if params locked */
|
||||
uchar Store; /* if params stored across closes */
|
||||
uchar FirstOpen; /* TRUE if first time port opened */
|
||||
uchar FlushCmdBodge; /* if doing a (non)flush */
|
||||
uchar MagicFlags; /* require intr processing */
|
||||
struct PHB *PhbP; /* pointer to PHB for port */
|
||||
WORD *TxAdd; /* Add packets here */
|
||||
WORD *TxStart; /* Start of add array */
|
||||
WORD *TxEnd; /* End of add array */
|
||||
WORD *RxRemove; /* Remove packets here */
|
||||
WORD *RxStart; /* Start of remove array */
|
||||
WORD *RxEnd; /* End of remove array */
|
||||
uint RtaUniqueNum; /* Unique number of RTA */
|
||||
ushort PortState; /* status of port */
|
||||
ushort ModemState; /* status of modem lines */
|
||||
ulong ModemLines; /* Modem bits sent to RTA */
|
||||
uchar CookMode; /* who expands CR/LF? */
|
||||
uchar ParamSem; /* Prevent write during param */
|
||||
uchar Mapped; /* if port mapped onto host */
|
||||
uchar SecondBlock; /* if port belongs to 2nd block
|
||||
of 16 port RTA */
|
||||
uchar InUse; /* how many pre-emptive cmds */
|
||||
uchar Lock; /* if params locked */
|
||||
uchar Store; /* if params stored across closes */
|
||||
uchar FirstOpen; /* TRUE if first time port opened */
|
||||
uchar FlushCmdBodge; /* if doing a (non)flush */
|
||||
uchar MagicFlags; /* require intr processing */
|
||||
#define MAGIC_FLUSH 0x01 /* mirror of WflushFlag */
|
||||
#define MAGIC_REBOOT 0x02 /* RTA re-booted, re-open ports */
|
||||
#define MORE_OUTPUT_EYGOR 0x04 /* riotproc failed to empty clists */
|
||||
uchar WflushFlag; /* 1 How many WFLUSHs active */
|
||||
uchar WflushFlag; /* 1 How many WFLUSHs active */
|
||||
/*
|
||||
** Transparent print stuff
|
||||
*/
|
||||
struct Xprint
|
||||
{
|
||||
struct Xprint {
|
||||
#ifndef MAX_XP_CTRL_LEN
|
||||
#define MAX_XP_CTRL_LEN 16 /* ALSO IN DAEMON.H */
|
||||
#define MAX_XP_CTRL_LEN 16 /* ALSO IN DAEMON.H */
|
||||
#endif
|
||||
uint XpCps;
|
||||
char XpOn[MAX_XP_CTRL_LEN];
|
||||
char XpOff[MAX_XP_CTRL_LEN];
|
||||
ushort XpLen; /* strlen(XpOn)+strlen(XpOff) */
|
||||
uchar XpActive;
|
||||
uchar XpLastTickOk; /* TRUE if we can process */
|
||||
uint XpCps;
|
||||
char XpOn[MAX_XP_CTRL_LEN];
|
||||
char XpOff[MAX_XP_CTRL_LEN];
|
||||
ushort XpLen; /* strlen(XpOn)+strlen(XpOff) */
|
||||
uchar XpActive;
|
||||
uchar XpLastTickOk; /* TRUE if we can process */
|
||||
#define XP_OPEN 00001
|
||||
#define XP_RUNABLE 00002
|
||||
struct ttystatics *XttyP;
|
||||
} Xprint;
|
||||
struct ttystatics *XttyP;
|
||||
} Xprint;
|
||||
#ifdef VPIX
|
||||
v86_t *StashP;
|
||||
uint IntMask;
|
||||
struct termss VpixSs;
|
||||
uchar ModemStatusReg; /* Modem status register */
|
||||
v86_t *StashP;
|
||||
uint IntMask;
|
||||
struct termss VpixSs;
|
||||
uchar ModemStatusReg; /* Modem status register */
|
||||
#endif
|
||||
uchar RxDataStart;
|
||||
uchar Cor2Copy; /* copy of COR2 */
|
||||
char *Name; /* points to the Rta's name */
|
||||
uchar RxDataStart;
|
||||
uchar Cor2Copy; /* copy of COR2 */
|
||||
char *Name; /* points to the Rta's name */
|
||||
#ifdef STATS
|
||||
struct RIOStats Stat; /* ports statistics */
|
||||
struct RIOStats Stat; /* ports statistics */
|
||||
#endif
|
||||
char *TxRingBuffer;
|
||||
ushort TxBufferIn; /* New data arrives here */
|
||||
ushort TxBufferOut; /* Intr removes data here */
|
||||
ushort OldTxBufferOut; /* Indicates if draining */
|
||||
int TimeoutId; /* Timeout ID */
|
||||
uint Debug;
|
||||
uchar WaitUntilBooted; /* True if open should block */
|
||||
uint statsGather; /* True if gathering stats */
|
||||
ulong txchars; /* Chars transmitted */
|
||||
ulong rxchars; /* Chars received */
|
||||
ulong opens; /* port open count */
|
||||
ulong closes; /* port close count */
|
||||
ulong ioctls; /* ioctl count */
|
||||
uchar LastRxTgl; /* Last state of rx toggle bit */
|
||||
spinlock_t portSem; /* Lock using this sem */
|
||||
int MonitorTstate; /* Monitoring ? */
|
||||
int timeout_id; /* For calling 100 ms delays */
|
||||
int timeout_sem;/* For calling 100 ms delays */
|
||||
int firstOpen; /* First time open ? */
|
||||
char * p; /* save the global struc here .. */
|
||||
char *TxRingBuffer;
|
||||
ushort TxBufferIn; /* New data arrives here */
|
||||
ushort TxBufferOut; /* Intr removes data here */
|
||||
ushort OldTxBufferOut; /* Indicates if draining */
|
||||
int TimeoutId; /* Timeout ID */
|
||||
uint Debug;
|
||||
uchar WaitUntilBooted; /* True if open should block */
|
||||
uint statsGather; /* True if gathering stats */
|
||||
ulong txchars; /* Chars transmitted */
|
||||
ulong rxchars; /* Chars received */
|
||||
ulong opens; /* port open count */
|
||||
ulong closes; /* port close count */
|
||||
ulong ioctls; /* ioctl count */
|
||||
uchar LastRxTgl; /* Last state of rx toggle bit */
|
||||
spinlock_t portSem; /* Lock using this sem */
|
||||
int MonitorTstate; /* Monitoring ? */
|
||||
int timeout_id; /* For calling 100 ms delays */
|
||||
int timeout_sem; /* For calling 100 ms delays */
|
||||
int firstOpen; /* First time open ? */
|
||||
char *p; /* save the global struc here .. */
|
||||
};
|
||||
|
||||
struct ModuleInfo
|
||||
{
|
||||
char *Name;
|
||||
uint Flags[4]; /* one per port on a module */
|
||||
struct ModuleInfo {
|
||||
char *Name;
|
||||
uint Flags[4]; /* one per port on a module */
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -238,8 +234,8 @@ struct ModuleInfo
|
|||
** runs into problems with differing struct sizes between driver and config.
|
||||
*/
|
||||
struct PortParams {
|
||||
uint Port;
|
||||
ulong Config;
|
||||
ulong State;
|
||||
struct ttystatics *TtyP;
|
||||
uint Port;
|
||||
ulong Config;
|
||||
ulong State;
|
||||
struct ttystatics *TtyP;
|
||||
};
|
||||
|
|
|
@ -23,15 +23,15 @@
|
|||
/*
|
||||
** boot.c
|
||||
*/
|
||||
void init_boot( char *p, short stage);
|
||||
void init_boot(char *p, short stage);
|
||||
|
||||
/*
|
||||
** disconct.c
|
||||
*/
|
||||
void kill_boot ( LPB *link );
|
||||
void disconnected( LPB *link );
|
||||
short boot_3( LPB *link, PKT *pkt );
|
||||
short send_3_pkt( LPB *link, PKT *pkt);
|
||||
void kill_boot(LPB * link);
|
||||
void disconnected(LPB * link);
|
||||
short boot_3(LPB * link, PKT * pkt);
|
||||
short send_3_pkt(LPB * link, PKT * pkt);
|
||||
|
||||
/*
|
||||
** error.c
|
||||
|
@ -41,116 +41,116 @@ void du_error(void);
|
|||
/*
|
||||
** formpkt.c
|
||||
*/
|
||||
ushort sum_it( PKT *pkt ) ;
|
||||
void form_rup_pkt( RUP *form_rup, PKT *pkt );
|
||||
void form_poll_pkt ( int type, LPB *link, int node );
|
||||
void form_route_pkt ( int type, PKT *pkt, LPB *link );
|
||||
ushort sum_it(PKT * pkt);
|
||||
void form_rup_pkt(RUP * form_rup, PKT * pkt);
|
||||
void form_poll_pkt(int type, LPB * link, int node);
|
||||
void form_route_pkt(int type, PKT * pkt, LPB * link);
|
||||
|
||||
/*
|
||||
** idle.c
|
||||
*/
|
||||
void idle( Process *idle_p );
|
||||
void idle(Process * idle_p);
|
||||
|
||||
/*
|
||||
** init.c
|
||||
*/
|
||||
void general_init(void);
|
||||
void mem_halt( int error);
|
||||
void mem_halt(int error);
|
||||
|
||||
/*
|
||||
** linkinit.c
|
||||
*/
|
||||
void initlink( u_short number, LPB *link);
|
||||
void runlink( LPB *link);
|
||||
void initlink(u_short number, LPB * link);
|
||||
void runlink(LPB * link);
|
||||
|
||||
/*
|
||||
** list.c
|
||||
*/
|
||||
PKT *get_free_start(void);
|
||||
void put_free_start( PKT *pkt);
|
||||
void put_free_start(PKT * pkt);
|
||||
|
||||
#ifdef HOST
|
||||
int can_remove_transmit ( PKT **pkt, PKT *pointer );
|
||||
int can_remove_transmit(PKT ** pkt, PKT * pointer);
|
||||
#endif
|
||||
|
||||
#ifdef RTA
|
||||
int spl7 ( void );
|
||||
int spl0 ( void );
|
||||
Q_BUF *get_free_q( void );
|
||||
int spl7(void);
|
||||
int spl0(void);
|
||||
Q_BUF *get_free_q(void);
|
||||
PKT *get_free_end(void);
|
||||
int add_end( PKT *pkt, PHB *phb, int type);
|
||||
unsigned short free_packets( PHB *phb, int type);
|
||||
int can_remove_start( PKT **pkt, PHB *phb, int type);
|
||||
int can_add_start( PHB *phb, int type);
|
||||
int can_add_end( PHB *phb, int type);
|
||||
void put_free_end( PKT *pkt);
|
||||
int remove_start( PKT **pkt, PHB *phb, int type);
|
||||
int add_end(PKT * pkt, PHB * phb, int type);
|
||||
unsigned short free_packets(PHB * phb, int type);
|
||||
int can_remove_start(PKT ** pkt, PHB * phb, int type);
|
||||
int can_add_start(PHB * phb, int type);
|
||||
int can_add_end(PHB * phb, int type);
|
||||
void put_free_end(PKT * pkt);
|
||||
int remove_start(PKT ** pkt, PHB * phb, int type);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Lrt.c
|
||||
*/
|
||||
void lrt( Process *lrt_p, LPB *link );
|
||||
void lrt(Process * lrt_p, LPB * link);
|
||||
|
||||
#ifdef RTA
|
||||
void set_led_red ( LPB *link );
|
||||
void set_led_red(LPB * link);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** ltt.c
|
||||
*/
|
||||
void ltt( Process *ltt_p, LPB *link, PHB *phb_ptr[] );
|
||||
void send_poll ( LPB *link );
|
||||
void request_id ( LPB *link );
|
||||
void send_topology_update ( LPB *link );
|
||||
void send_topology ( LPB *link );
|
||||
void supply_id ( LPB *link );
|
||||
void ltt(Process * ltt_p, LPB * link, PHB * phb_ptr[]);
|
||||
void send_poll(LPB * link);
|
||||
void request_id(LPB * link);
|
||||
void send_topology_update(LPB * link);
|
||||
void send_topology(LPB * link);
|
||||
void supply_id(LPB * link);
|
||||
|
||||
#ifdef RTA
|
||||
void redirect_queue ( LPB *link, ushort flush );
|
||||
int obtain_rup ( int rup_number, PKT **pkt_address, LPB *link );
|
||||
void redirect_queue(LPB * link, ushort flush);
|
||||
int obtain_rup(int rup_number, PKT ** pkt_address, LPB * link);
|
||||
#endif
|
||||
|
||||
#ifdef TESTING_PERF
|
||||
int consume_cpu( void );
|
||||
int consume_cpu(void);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** lttwake.c
|
||||
*/
|
||||
#ifdef HOST
|
||||
void ltt_wakeup( Process *ltt_wakeup_p );
|
||||
void ltt_wakeup(Process * ltt_wakeup_p);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** mapgen.c
|
||||
*/
|
||||
void generate_id_map( short mapping, ROUTE_STR route[] );
|
||||
void gen_map( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl );
|
||||
void adjust_ttl( int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl);
|
||||
void generate_id_map(short mapping, ROUTE_STR route[]);
|
||||
void gen_map(int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl);
|
||||
void adjust_ttl(int mapping, int looking_at, int come_from, ROUTE_STR route[], int link, int *ttl);
|
||||
void init_sys_map(void);
|
||||
|
||||
/*
|
||||
** mmu.c
|
||||
*/
|
||||
char *rio_malloc( unsigned int amount);
|
||||
char *rio_calloc( unsigned int num, unsigned int size);
|
||||
ERROR rio_mmu_init( uint total_mem );
|
||||
char *rio_malloc(unsigned int amount);
|
||||
char *rio_calloc(unsigned int num, unsigned int size);
|
||||
ERROR rio_mmu_init(uint total_mem);
|
||||
|
||||
/*
|
||||
** partn.c
|
||||
*/
|
||||
void partition_tx( struct PHB *phb, u_short tx_size, u_short rx_size, u_short rx_limit);
|
||||
void partition_tx(struct PHB *phb, u_short tx_size, u_short rx_size, u_short rx_limit);
|
||||
|
||||
/*
|
||||
** poll.c
|
||||
*/
|
||||
void tx_poll( Process *tx_poll_p);
|
||||
void tx_poll(Process * tx_poll_p);
|
||||
|
||||
/*
|
||||
** process.c
|
||||
*/
|
||||
int get_proc_space( Process **pd, int **pws, int wssize);
|
||||
int get_proc_space(Process ** pd, int **pws, int wssize);
|
||||
|
||||
/*
|
||||
** readrom.c
|
||||
|
@ -160,85 +160,85 @@ void read_serial_number(char *buf);
|
|||
/*
|
||||
** rio.c
|
||||
*/
|
||||
int main( void );
|
||||
int main(void);
|
||||
|
||||
/*
|
||||
** route.c
|
||||
*/
|
||||
void route_update ( PKT *pkt, LPB *link);
|
||||
void route_update(PKT * pkt, LPB * link);
|
||||
|
||||
/*
|
||||
** rtainit.c
|
||||
*/
|
||||
#if defined(RTA)
|
||||
void rta_init(ushort RtaType);
|
||||
#endif /* defined(RTA) */
|
||||
#endif /* defined(RTA) */
|
||||
|
||||
/*
|
||||
** rupboot.c
|
||||
*/
|
||||
void rup_boot( PKT *pkt, RUP *this_rup, LPB *link);
|
||||
void rup_boot(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
|
||||
#ifdef RTA
|
||||
void kill_your_neighbour( int link_to_kill );
|
||||
void kill_your_neighbour(int link_to_kill);
|
||||
#endif
|
||||
|
||||
/*
|
||||
** rupcmd.c
|
||||
*/
|
||||
void rup_command( PKT *pkt, struct RUP *this_rup, LPB *link);
|
||||
void rup_command(PKT * pkt, struct RUP *this_rup, LPB * link);
|
||||
|
||||
/*
|
||||
** ruperr.c
|
||||
*/
|
||||
void rup_error( PKT *pkt, RUP *this_rup, LPB *link );
|
||||
void illegal_cmd( PKT *src_pkt );
|
||||
void rup_error(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
void illegal_cmd(PKT * src_pkt);
|
||||
|
||||
/*
|
||||
** ruppoll.c
|
||||
*/
|
||||
void rup_poll( PKT *pkt, RUP *this_rup, LPB *link );
|
||||
void rup_poll(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
|
||||
/*
|
||||
** ruppower.c
|
||||
*/
|
||||
void rup_power( PKT *pkt, RUP *this_rup, LPB *link );
|
||||
void rup_power(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
|
||||
/*
|
||||
** ruprm.c
|
||||
*/
|
||||
void rup_route_map( PKT *pkt, RUP *this_rup, LPB *link);
|
||||
void rup_route_map(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
|
||||
/*
|
||||
** rupstat.c
|
||||
*/
|
||||
void rup_status( PKT *pkt, RUP *this_rup, LPB *link);
|
||||
void rup_status(PKT * pkt, RUP * this_rup, LPB * link);
|
||||
|
||||
/*
|
||||
** rupsync.c
|
||||
*/
|
||||
void rup_sync( PKT *pkt);
|
||||
void rup_sync(PKT * pkt);
|
||||
|
||||
/*
|
||||
** rxpkt.c
|
||||
*/
|
||||
ERROR rx_pkt( PKT_ptr_ptr pkt_address, LPB *link);
|
||||
ERROR rx_pkt(PKT_ptr_ptr pkt_address, LPB * link);
|
||||
|
||||
/*
|
||||
** sendsts.c
|
||||
*/
|
||||
void send_status( PKT *requesting_pkt, RUP *this_rup);
|
||||
void send_status(PKT * requesting_pkt, RUP * this_rup);
|
||||
|
||||
/*
|
||||
** serial.c
|
||||
*/
|
||||
void assign_serial ( char *ser_in, char *ser_out);
|
||||
int cmp_serial ( char *ser_1, char *ser_2);
|
||||
void assign_serial(char *ser_in, char *ser_out);
|
||||
int cmp_serial(char *ser_1, char *ser_2);
|
||||
|
||||
/*
|
||||
** txpkt.c
|
||||
*/
|
||||
ERROR tx_pkt( PKT *pkt, LPB *link);
|
||||
short send_sync( LPB *link);
|
||||
ERROR tx_pkt(PKT * pkt, LPB * link);
|
||||
short send_sync(LPB * link);
|
||||
|
||||
#endif /* _prototypes_h */
|
||||
#endif /* _prototypes_h */
|
||||
|
|
|
@ -115,5 +115,3 @@
|
|||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_qbuf_h_sccs = "@(#)qbuf.h 1.1" ;
|
||||
static char *_rio_qbuf_h_sccs = "@(#)qbuf.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -52,16 +52,15 @@ static char *_rio_qbuf_h_sccs = "@(#)qbuf.h 1.1" ;
|
|||
#define PKTS_PER_BUFFER (220 / PKT_LENGTH)
|
||||
#endif
|
||||
|
||||
typedef struct Q_BUF Q_BUF ;
|
||||
struct Q_BUF {
|
||||
Q_BUF_ptr next ;
|
||||
Q_BUF_ptr prev ;
|
||||
PKT_ptr buf[PKTS_PER_BUFFER] ;
|
||||
} ;
|
||||
typedef struct Q_BUF Q_BUF;
|
||||
struct Q_BUF {
|
||||
Q_BUF_ptr next;
|
||||
Q_BUF_ptr prev;
|
||||
PKT_ptr buf[PKTS_PER_BUFFER];
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -72,8 +72,8 @@ static char *_rio_h_sccs_ = "@(#)rio.h 1.3";
|
|||
#define RIO_HOSTS 4 /* number of hosts that can be found */
|
||||
#define PORTS_PER_HOST 128 /* number of ports per host */
|
||||
#define LINKS_PER_UNIT 4 /* number of links from a host */
|
||||
#define RIO_PORTS (PORTS_PER_HOST * RIO_HOSTS) /* max. no. of ports */
|
||||
#define RTAS_PER_HOST (MAX_RUP) /* number of RTAs per host */
|
||||
#define RIO_PORTS (PORTS_PER_HOST * RIO_HOSTS) /* max. no. of ports */
|
||||
#define RTAS_PER_HOST (MAX_RUP) /* number of RTAs per host */
|
||||
#define PORTS_PER_RTA (PORTS_PER_HOST/RTAS_PER_HOST) /* ports on a rta */
|
||||
#define PORTS_PER_MODULE 4 /* number of ports on a plug-in module */
|
||||
/* number of modules on an RTA */
|
||||
|
@ -216,10 +216,9 @@ static char *_rio_h_sccs_ = "@(#)rio.h 1.3";
|
|||
#define RIO_PRI (PZERO+10)
|
||||
#define RIO_CLOSE_PRI PZERO-1 /* uninterruptible sleeps for close */
|
||||
|
||||
typedef struct DbInf
|
||||
{
|
||||
uint Flag;
|
||||
char Name[8];
|
||||
typedef struct DbInf {
|
||||
uint Flag;
|
||||
char Name[8];
|
||||
} DbInf;
|
||||
|
||||
#ifndef TRUE
|
||||
|
@ -251,7 +250,7 @@ typedef struct DbInf
|
|||
*((uint *)PK) = PP->PacketInfo; \
|
||||
}
|
||||
|
||||
#define RIO_LINK_ENABLE 0x80FF /* FF is a hack, mainly for Mips, to */
|
||||
#define RIO_LINK_ENABLE 0x80FF /* FF is a hack, mainly for Mips, to */
|
||||
/* prevent a really stupid race condition. */
|
||||
|
||||
#define NOT_INITIALISED 0
|
||||
|
@ -291,4 +290,4 @@ typedef struct DbInf
|
|||
#define DIST_LINESW_OUTPUT 0x40
|
||||
#define DIST_LINESW_MDMINT 0x80
|
||||
|
||||
#endif /* __rio_h__ */
|
||||
#endif /* __rio_h__ */
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -37,15 +37,15 @@
|
|||
|
||||
|
||||
struct vpd_prom {
|
||||
unsigned short id;
|
||||
char hwrev;
|
||||
char hwass;
|
||||
int uniqid;
|
||||
char myear;
|
||||
char mweek;
|
||||
char hw_feature[5];
|
||||
char oem_id;
|
||||
char identifier[16];
|
||||
unsigned short id;
|
||||
char hwrev;
|
||||
char hwass;
|
||||
int uniqid;
|
||||
char myear;
|
||||
char mweek;
|
||||
char hw_feature[5];
|
||||
char oem_id;
|
||||
char identifier[16];
|
||||
};
|
||||
|
||||
|
||||
|
@ -75,13 +75,13 @@ struct vpd_prom {
|
|||
(L_ISIG(tty)))
|
||||
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
||||
#define RIO_BOARD_INTR_LOCK 1
|
||||
|
||||
|
||||
#ifndef RIOCTL_MISC_MINOR
|
||||
#ifndef RIOCTL_MISC_MINOR
|
||||
/* Allow others to gather this into "major.h" or something like that */
|
||||
#define RIOCTL_MISC_MINOR 169
|
||||
#endif
|
||||
|
@ -121,39 +121,39 @@ struct vpd_prom {
|
|||
spin_unlock_irqrestore(sem, flags)
|
||||
|
||||
#define rio_spin_lock(sem) \
|
||||
spin_lock(sem)
|
||||
spin_lock(sem)
|
||||
|
||||
#define rio_spin_unlock(sem) \
|
||||
spin_unlock(sem)
|
||||
spin_unlock(sem)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef CONFIG_RIO_OLDPCI
|
||||
static inline void *rio_memcpy_toio (void *dummy, void *dest, void *source, int n)
|
||||
static inline void *rio_memcpy_toio(void *dummy, void *dest, void *source, int n)
|
||||
{
|
||||
char *dst = dest;
|
||||
char *src = source;
|
||||
char *dst = dest;
|
||||
char *src = source;
|
||||
|
||||
while (n--) {
|
||||
writeb (*src++, dst++);
|
||||
(void) readb (dummy);
|
||||
}
|
||||
while (n--) {
|
||||
writeb(*src++, dst++);
|
||||
(void) readb(dummy);
|
||||
}
|
||||
|
||||
return dest;
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
static inline void *rio_memcpy_fromio (void *dest, void *source, int n)
|
||||
static inline void *rio_memcpy_fromio(void *dest, void *source, int n)
|
||||
{
|
||||
char *dst = dest;
|
||||
char *src = source;
|
||||
char *dst = dest;
|
||||
char *src = source;
|
||||
|
||||
while (n--)
|
||||
*dst++ = readb (src++);
|
||||
while (n--)
|
||||
*dst++ = readb(src++);
|
||||
|
||||
return dest;
|
||||
return dest;
|
||||
}
|
||||
|
||||
#else
|
||||
|
@ -179,9 +179,8 @@ static inline void *rio_memcpy_fromio (void *dest, void *source, int n)
|
|||
#define func_exit() rio_dprintk (RIO_DEBUG_FLOW, "rio: exit %s\n", __FUNCTION__)
|
||||
#define func_enter2() rio_dprintk (RIO_DEBUG_FLOW, "rio: enter %s (port %d)\n",__FUNCTION__, port->line)
|
||||
#else
|
||||
#define rio_dprintk(f, str...) /* nothing */
|
||||
#define rio_dprintk(f, str...) /* nothing */
|
||||
#define func_enter()
|
||||
#define func_exit()
|
||||
#define func_enter2()
|
||||
#endif
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#ifndef _rioboard_h /* If RIOBOARD.H not already defined */
|
||||
#ifndef _rioboard_h /* If RIOBOARD.H not already defined */
|
||||
#define _rioboard_h 1
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -46,7 +46,7 @@
|
|||
|
||||
/* Hardware Registers... */
|
||||
|
||||
#define RIO_REG_BASE 0x7C00 /* Base of control registers */
|
||||
#define RIO_REG_BASE 0x7C00 /* Base of control registers */
|
||||
|
||||
#define RIO_CONFIG RIO_REG_BASE + 0x0000 /* WRITE: Configuration Register */
|
||||
#define RIO_INTSET RIO_REG_BASE + 0x0080 /* WRITE: Interrupt Set */
|
||||
|
@ -58,30 +58,30 @@
|
|||
#define RIO_RESETSTAT RIO_REG_BASE + 0x0100 /* READ: Reset Status (Jet boards only) */
|
||||
|
||||
/* RIO_VPD_ROM definitions... */
|
||||
#define VPD_SLX_ID1 0x00 /* READ: Specialix Identifier #1 */
|
||||
#define VPD_SLX_ID2 0x01 /* READ: Specialix Identifier #2 */
|
||||
#define VPD_HW_REV 0x02 /* READ: Hardware Revision */
|
||||
#define VPD_HW_ASSEM 0x03 /* READ: Hardware Assembly Level */
|
||||
#define VPD_UNIQUEID4 0x04 /* READ: Unique Identifier #4 */
|
||||
#define VPD_UNIQUEID3 0x05 /* READ: Unique Identifier #3 */
|
||||
#define VPD_UNIQUEID2 0x06 /* READ: Unique Identifier #2 */
|
||||
#define VPD_UNIQUEID1 0x07 /* READ: Unique Identifier #1 */
|
||||
#define VPD_MANU_YEAR 0x08 /* READ: Year Of Manufacture (0 = 1970) */
|
||||
#define VPD_MANU_WEEK 0x09 /* READ: Week Of Manufacture (0 = week 1 Jan) */
|
||||
#define VPD_HWFEATURE1 0x0A /* READ: Hardware Feature Byte 1 */
|
||||
#define VPD_HWFEATURE2 0x0B /* READ: Hardware Feature Byte 2 */
|
||||
#define VPD_HWFEATURE3 0x0C /* READ: Hardware Feature Byte 3 */
|
||||
#define VPD_HWFEATURE4 0x0D /* READ: Hardware Feature Byte 4 */
|
||||
#define VPD_HWFEATURE5 0x0E /* READ: Hardware Feature Byte 5 */
|
||||
#define VPD_OEMID 0x0F /* READ: OEM Identifier */
|
||||
#define VPD_IDENT 0x10 /* READ: Identifier string (16 bytes) */
|
||||
#define VPD_SLX_ID1 0x00 /* READ: Specialix Identifier #1 */
|
||||
#define VPD_SLX_ID2 0x01 /* READ: Specialix Identifier #2 */
|
||||
#define VPD_HW_REV 0x02 /* READ: Hardware Revision */
|
||||
#define VPD_HW_ASSEM 0x03 /* READ: Hardware Assembly Level */
|
||||
#define VPD_UNIQUEID4 0x04 /* READ: Unique Identifier #4 */
|
||||
#define VPD_UNIQUEID3 0x05 /* READ: Unique Identifier #3 */
|
||||
#define VPD_UNIQUEID2 0x06 /* READ: Unique Identifier #2 */
|
||||
#define VPD_UNIQUEID1 0x07 /* READ: Unique Identifier #1 */
|
||||
#define VPD_MANU_YEAR 0x08 /* READ: Year Of Manufacture (0 = 1970) */
|
||||
#define VPD_MANU_WEEK 0x09 /* READ: Week Of Manufacture (0 = week 1 Jan) */
|
||||
#define VPD_HWFEATURE1 0x0A /* READ: Hardware Feature Byte 1 */
|
||||
#define VPD_HWFEATURE2 0x0B /* READ: Hardware Feature Byte 2 */
|
||||
#define VPD_HWFEATURE3 0x0C /* READ: Hardware Feature Byte 3 */
|
||||
#define VPD_HWFEATURE4 0x0D /* READ: Hardware Feature Byte 4 */
|
||||
#define VPD_HWFEATURE5 0x0E /* READ: Hardware Feature Byte 5 */
|
||||
#define VPD_OEMID 0x0F /* READ: OEM Identifier */
|
||||
#define VPD_IDENT 0x10 /* READ: Identifier string (16 bytes) */
|
||||
#define VPD_IDENT_LEN 0x10
|
||||
|
||||
/* VPD ROM Definitions... */
|
||||
#define SLX_ID1 0x4D
|
||||
#define SLX_ID2 0x98
|
||||
|
||||
#define PRODUCT_ID(a) ((a>>4)&0xF) /* Use to obtain Product ID from VPD_UNIQUEID1 */
|
||||
#define PRODUCT_ID(a) ((a>>4)&0xF) /* Use to obtain Product ID from VPD_UNIQUEID1 */
|
||||
|
||||
#define ID_SX_ISA 0x2
|
||||
#define ID_RIO_EISA 0x3
|
||||
|
@ -101,7 +101,7 @@
|
|||
|
||||
/* Firmware load position... */
|
||||
|
||||
#define FIRMWARELOADADDR 0x7C00 /* Firmware is loaded _before_ this address */
|
||||
#define FIRMWARELOADADDR 0x7C00 /* Firmware is loaded _before_ this address */
|
||||
|
||||
/*****************************************************************************
|
||||
***************************** *****************************
|
||||
|
@ -112,14 +112,14 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_ISA_IDENT "JBJGPGGHINSMJPJR"
|
||||
|
||||
#define RIO_ISA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_ISA_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA_CFG_IRQMASK 0x30 /* Interrupt mask */
|
||||
#define RIO_ISA_CFG_IRQ12 0x10 /* Interrupt Level 12 */
|
||||
#define RIO_ISA_CFG_IRQ11 0x20 /* Interrupt Level 11 */
|
||||
#define RIO_ISA_CFG_IRQ9 0x30 /* Interrupt Level 9 */
|
||||
#define RIO_ISA_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_ISA_CFG_WAITSTATE0 0x80 /* 0 waitstates, else 1 */
|
||||
#define RIO_ISA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_ISA_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA_CFG_IRQMASK 0x30 /* Interrupt mask */
|
||||
#define RIO_ISA_CFG_IRQ12 0x10 /* Interrupt Level 12 */
|
||||
#define RIO_ISA_CFG_IRQ11 0x20 /* Interrupt Level 11 */
|
||||
#define RIO_ISA_CFG_IRQ9 0x30 /* Interrupt Level 9 */
|
||||
#define RIO_ISA_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_ISA_CFG_WAITSTATE0 0x80 /* 0 waitstates, else 1 */
|
||||
|
||||
/*****************************************************************************
|
||||
***************************** *****************************
|
||||
|
@ -130,17 +130,17 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_ISA2_IDENT "JBJGPGGHINSMJPJR"
|
||||
|
||||
#define RIO_ISA2_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_ISA2_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA2_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_ISA2_CFG_16BIT 0x08 /* 16bit mode, else 8bit */
|
||||
#define RIO_ISA2_CFG_IRQMASK 0x30 /* Interrupt mask */
|
||||
#define RIO_ISA2_CFG_IRQ15 0x00 /* Interrupt Level 15 */
|
||||
#define RIO_ISA2_CFG_IRQ12 0x10 /* Interrupt Level 12 */
|
||||
#define RIO_ISA2_CFG_IRQ11 0x20 /* Interrupt Level 11 */
|
||||
#define RIO_ISA2_CFG_IRQ9 0x30 /* Interrupt Level 9 */
|
||||
#define RIO_ISA2_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_ISA2_CFG_WAITSTATE0 0x80 /* 0 waitstates, else 1 */
|
||||
#define RIO_ISA2_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_ISA2_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA2_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_ISA2_CFG_16BIT 0x08 /* 16bit mode, else 8bit */
|
||||
#define RIO_ISA2_CFG_IRQMASK 0x30 /* Interrupt mask */
|
||||
#define RIO_ISA2_CFG_IRQ15 0x00 /* Interrupt Level 15 */
|
||||
#define RIO_ISA2_CFG_IRQ12 0x10 /* Interrupt Level 12 */
|
||||
#define RIO_ISA2_CFG_IRQ11 0x20 /* Interrupt Level 11 */
|
||||
#define RIO_ISA2_CFG_IRQ9 0x30 /* Interrupt Level 9 */
|
||||
#define RIO_ISA2_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_ISA2_CFG_WAITSTATE0 0x80 /* 0 waitstates, else 1 */
|
||||
|
||||
/*****************************************************************************
|
||||
***************************** ******************************
|
||||
|
@ -151,14 +151,14 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_ISA3_IDENT "JET HOST BY KEV#"
|
||||
|
||||
#define RIO_ISA3_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA3_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_ISA32_CFG_IRQMASK 0xF30 /* Interrupt mask */
|
||||
#define RIO_ISA3_CFG_IRQ15 0xF0 /* Interrupt Level 15 */
|
||||
#define RIO_ISA3_CFG_IRQ12 0xC0 /* Interrupt Level 12 */
|
||||
#define RIO_ISA3_CFG_IRQ11 0xB0 /* Interrupt Level 11 */
|
||||
#define RIO_ISA3_CFG_IRQ10 0xA0 /* Interrupt Level 10 */
|
||||
#define RIO_ISA3_CFG_IRQ9 0x90 /* Interrupt Level 9 */
|
||||
#define RIO_ISA3_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_ISA3_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_ISA32_CFG_IRQMASK 0xF30 /* Interrupt mask */
|
||||
#define RIO_ISA3_CFG_IRQ15 0xF0 /* Interrupt Level 15 */
|
||||
#define RIO_ISA3_CFG_IRQ12 0xC0 /* Interrupt Level 12 */
|
||||
#define RIO_ISA3_CFG_IRQ11 0xB0 /* Interrupt Level 11 */
|
||||
#define RIO_ISA3_CFG_IRQ10 0xA0 /* Interrupt Level 10 */
|
||||
#define RIO_ISA3_CFG_IRQ9 0x90 /* Interrupt Level 9 */
|
||||
|
||||
/*****************************************************************************
|
||||
********************************* ********************************
|
||||
|
@ -169,9 +169,9 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_MCA_IDENT "JBJGPGGHINSMJPJR"
|
||||
|
||||
#define RIO_MCA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_MCA_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_MCA_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_MCA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_MCA_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_MCA_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
|
||||
/*****************************************************************************
|
||||
******************************** ********************************
|
||||
|
@ -185,35 +185,35 @@
|
|||
#define EISA_PRODUCT_NUMBER 0xC82
|
||||
#define EISA_REVISION_NUMBER 0xC83
|
||||
#define EISA_CARD_ENABLE 0xC84
|
||||
#define EISA_VPD_UNIQUEID4 0xC88 /* READ: Unique Identifier #4 */
|
||||
#define EISA_VPD_UNIQUEID3 0xC8A /* READ: Unique Identifier #3 */
|
||||
#define EISA_VPD_UNIQUEID2 0xC90 /* READ: Unique Identifier #2 */
|
||||
#define EISA_VPD_UNIQUEID1 0xC92 /* READ: Unique Identifier #1 */
|
||||
#define EISA_VPD_MANU_YEAR 0xC98 /* READ: Year Of Manufacture (0 = 1970) */
|
||||
#define EISA_VPD_MANU_WEEK 0xC9A /* READ: Week Of Manufacture (0 = week 1 Jan) */
|
||||
#define EISA_VPD_UNIQUEID4 0xC88 /* READ: Unique Identifier #4 */
|
||||
#define EISA_VPD_UNIQUEID3 0xC8A /* READ: Unique Identifier #3 */
|
||||
#define EISA_VPD_UNIQUEID2 0xC90 /* READ: Unique Identifier #2 */
|
||||
#define EISA_VPD_UNIQUEID1 0xC92 /* READ: Unique Identifier #1 */
|
||||
#define EISA_VPD_MANU_YEAR 0xC98 /* READ: Year Of Manufacture (0 = 1970) */
|
||||
#define EISA_VPD_MANU_WEEK 0xC9A /* READ: Week Of Manufacture (0 = week 1 Jan) */
|
||||
#define EISA_MEM_ADDR_23_16 0xC00
|
||||
#define EISA_MEM_ADDR_31_24 0xC01
|
||||
#define EISA_RIO_CONFIG 0xC02 /* WRITE: Configuration Register */
|
||||
#define EISA_RIO_INTSET 0xC03 /* WRITE: Interrupt Set */
|
||||
#define EISA_RIO_INTRESET 0xC03 /* READ: Interrupt Reset */
|
||||
#define EISA_RIO_CONFIG 0xC02 /* WRITE: Configuration Register */
|
||||
#define EISA_RIO_INTSET 0xC03 /* WRITE: Interrupt Set */
|
||||
#define EISA_RIO_INTRESET 0xC03 /* READ: Interrupt Reset */
|
||||
|
||||
/* Control Register Definitions... */
|
||||
#define RIO_EISA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_EISA_CFG_LINK20 0x02 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_EISA_CFG_BUSENABLE 0x04 /* Enable processor bus */
|
||||
#define RIO_EISA_CFG_PROCRUN 0x08 /* Processor running, else reset */
|
||||
#define RIO_EISA_CFG_IRQMASK 0xF0 /* Interrupt mask */
|
||||
#define RIO_EISA_CFG_IRQ15 0xF0 /* Interrupt Level 15 */
|
||||
#define RIO_EISA_CFG_IRQ14 0xE0 /* Interrupt Level 14 */
|
||||
#define RIO_EISA_CFG_IRQ12 0xC0 /* Interrupt Level 12 */
|
||||
#define RIO_EISA_CFG_IRQ11 0xB0 /* Interrupt Level 11 */
|
||||
#define RIO_EISA_CFG_IRQ10 0xA0 /* Interrupt Level 10 */
|
||||
#define RIO_EISA_CFG_IRQ9 0x90 /* Interrupt Level 9 */
|
||||
#define RIO_EISA_CFG_IRQ7 0x70 /* Interrupt Level 7 */
|
||||
#define RIO_EISA_CFG_IRQ6 0x60 /* Interrupt Level 6 */
|
||||
#define RIO_EISA_CFG_IRQ5 0x50 /* Interrupt Level 5 */
|
||||
#define RIO_EISA_CFG_IRQ4 0x40 /* Interrupt Level 4 */
|
||||
#define RIO_EISA_CFG_IRQ3 0x30 /* Interrupt Level 3 */
|
||||
#define RIO_EISA_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_EISA_CFG_LINK20 0x02 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_EISA_CFG_BUSENABLE 0x04 /* Enable processor bus */
|
||||
#define RIO_EISA_CFG_PROCRUN 0x08 /* Processor running, else reset */
|
||||
#define RIO_EISA_CFG_IRQMASK 0xF0 /* Interrupt mask */
|
||||
#define RIO_EISA_CFG_IRQ15 0xF0 /* Interrupt Level 15 */
|
||||
#define RIO_EISA_CFG_IRQ14 0xE0 /* Interrupt Level 14 */
|
||||
#define RIO_EISA_CFG_IRQ12 0xC0 /* Interrupt Level 12 */
|
||||
#define RIO_EISA_CFG_IRQ11 0xB0 /* Interrupt Level 11 */
|
||||
#define RIO_EISA_CFG_IRQ10 0xA0 /* Interrupt Level 10 */
|
||||
#define RIO_EISA_CFG_IRQ9 0x90 /* Interrupt Level 9 */
|
||||
#define RIO_EISA_CFG_IRQ7 0x70 /* Interrupt Level 7 */
|
||||
#define RIO_EISA_CFG_IRQ6 0x60 /* Interrupt Level 6 */
|
||||
#define RIO_EISA_CFG_IRQ5 0x50 /* Interrupt Level 5 */
|
||||
#define RIO_EISA_CFG_IRQ4 0x40 /* Interrupt Level 4 */
|
||||
#define RIO_EISA_CFG_IRQ3 0x30 /* Interrupt Level 3 */
|
||||
|
||||
/*****************************************************************************
|
||||
******************************** ********************************
|
||||
|
@ -224,20 +224,20 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_SBUS_IDENT "JBPGK#\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
#define RIO_SBUS_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_SBUS_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_SBUS_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_SBUS_CFG_IRQMASK 0x38 /* Interrupt mask */
|
||||
#define RIO_SBUS_CFG_IRQNONE 0x00 /* No Interrupt */
|
||||
#define RIO_SBUS_CFG_IRQ7 0x38 /* Interrupt Level 7 */
|
||||
#define RIO_SBUS_CFG_IRQ6 0x30 /* Interrupt Level 6 */
|
||||
#define RIO_SBUS_CFG_IRQ5 0x28 /* Interrupt Level 5 */
|
||||
#define RIO_SBUS_CFG_IRQ4 0x20 /* Interrupt Level 4 */
|
||||
#define RIO_SBUS_CFG_IRQ3 0x18 /* Interrupt Level 3 */
|
||||
#define RIO_SBUS_CFG_IRQ2 0x10 /* Interrupt Level 2 */
|
||||
#define RIO_SBUS_CFG_IRQ1 0x08 /* Interrupt Level 1 */
|
||||
#define RIO_SBUS_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_SBUS_CFG_PROC25 0x80 /* 25Mhz processor clock, else 20Mhz */
|
||||
#define RIO_SBUS_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_SBUS_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_SBUS_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_SBUS_CFG_IRQMASK 0x38 /* Interrupt mask */
|
||||
#define RIO_SBUS_CFG_IRQNONE 0x00 /* No Interrupt */
|
||||
#define RIO_SBUS_CFG_IRQ7 0x38 /* Interrupt Level 7 */
|
||||
#define RIO_SBUS_CFG_IRQ6 0x30 /* Interrupt Level 6 */
|
||||
#define RIO_SBUS_CFG_IRQ5 0x28 /* Interrupt Level 5 */
|
||||
#define RIO_SBUS_CFG_IRQ4 0x20 /* Interrupt Level 4 */
|
||||
#define RIO_SBUS_CFG_IRQ3 0x18 /* Interrupt Level 3 */
|
||||
#define RIO_SBUS_CFG_IRQ2 0x10 /* Interrupt Level 2 */
|
||||
#define RIO_SBUS_CFG_IRQ1 0x08 /* Interrupt Level 1 */
|
||||
#define RIO_SBUS_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_SBUS_CFG_PROC25 0x80 /* 25Mhz processor clock, else 20Mhz */
|
||||
|
||||
/*****************************************************************************
|
||||
********************************* ********************************
|
||||
|
@ -248,18 +248,18 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_PCI_IDENT "ECDDPGJGJHJRGSK#"
|
||||
|
||||
#define RIO_PCI_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_PCI_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_PCI_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_PCI_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_PCI_CFG_PROC25 0x80 /* 25Mhz processor clock, else 20Mhz */
|
||||
#define RIO_PCI_CFG_BOOTRAM 0x01 /* Boot from RAM, else Link */
|
||||
#define RIO_PCI_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_PCI_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_PCI_CFG_LINK20 0x40 /* 20Mbps link, else 10Mbps */
|
||||
#define RIO_PCI_CFG_PROC25 0x80 /* 25Mhz processor clock, else 20Mhz */
|
||||
|
||||
/* PCI Definitions... */
|
||||
#define SPX_VENDOR_ID 0x11CB /* Assigned by the PCI SIG */
|
||||
#define SPX_DEVICE_ID 0x8000 /* RIO bridge boards */
|
||||
#define SPX_PLXDEVICE_ID 0x2000 /* PLX bridge boards */
|
||||
#define SPX_VENDOR_ID 0x11CB /* Assigned by the PCI SIG */
|
||||
#define SPX_DEVICE_ID 0x8000 /* RIO bridge boards */
|
||||
#define SPX_PLXDEVICE_ID 0x2000 /* PLX bridge boards */
|
||||
#define SPX_SUB_VENDOR_ID SPX_VENDOR_ID /* Same as vendor id */
|
||||
#define RIO_SUB_SYS_ID 0x0800 /* RIO PCI board */
|
||||
#define RIO_SUB_SYS_ID 0x0800 /* RIO PCI board */
|
||||
|
||||
/*****************************************************************************
|
||||
***************************** ******************************
|
||||
|
@ -270,11 +270,11 @@
|
|||
/* Control Register Definitions... */
|
||||
#define RIO_PCI2_IDENT "JET HOST BY KEV#"
|
||||
|
||||
#define RIO_PCI2_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_PCI2_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
#define RIO_PCI2_CFG_BUSENABLE 0x02 /* Enable processor bus */
|
||||
#define RIO_PCI2_CFG_INTENABLE 0x04 /* Interrupt enable, else disable */
|
||||
|
||||
/* PCI Definitions... */
|
||||
#define RIO2_SUB_SYS_ID 0x0100 /* RIO (Jet) PCI board */
|
||||
#define RIO2_SUB_SYS_ID 0x0100 /* RIO (Jet) PCI board */
|
||||
|
||||
#endif /*_rioboard_h */
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -33,7 +33,7 @@
|
|||
#ifndef __riodrvr_h
|
||||
#define __riodrvr_h
|
||||
|
||||
#include <asm/param.h> /* for HZ */
|
||||
#include <asm/param.h> /* for HZ */
|
||||
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_riodrvr_h_sccs_ = "@(#)riodrvr.h 1.3";
|
||||
|
@ -44,15 +44,15 @@ static char *_riodrvr_h_sccs_ = "@(#)riodrvr.h 1.3";
|
|||
|
||||
|
||||
struct rio_info {
|
||||
int mode; /* Intr or polled, word/byte */
|
||||
spinlock_t RIOIntrSem; /* Interrupt thread sem */
|
||||
int current_chan; /* current channel */
|
||||
int RIOFailed; /* Not initialised ? */
|
||||
int RIOInstallAttempts; /* no. of rio-install() calls */
|
||||
int RIOLastPCISearch; /* status of last search */
|
||||
int RIONumHosts; /* Number of RIO Hosts */
|
||||
struct Host * RIOHosts; /* RIO Host values */
|
||||
struct Port **RIOPortp; /* RIO port values */
|
||||
int mode; /* Intr or polled, word/byte */
|
||||
spinlock_t RIOIntrSem; /* Interrupt thread sem */
|
||||
int current_chan; /* current channel */
|
||||
int RIOFailed; /* Not initialised ? */
|
||||
int RIOInstallAttempts; /* no. of rio-install() calls */
|
||||
int RIOLastPCISearch; /* status of last search */
|
||||
int RIONumHosts; /* Number of RIO Hosts */
|
||||
struct Host *RIOHosts; /* RIO Host values */
|
||||
struct Port **RIOPortp; /* RIO port values */
|
||||
/*
|
||||
** 02.03.1999 ARG - ESIL 0820 fix
|
||||
** We no longer use RIOBootMode
|
||||
|
@ -60,9 +60,9 @@ struct rio_info {
|
|||
int RIOBootMode; * RIO boot mode *
|
||||
**
|
||||
*/
|
||||
int RIOPrintDisabled; /* RIO printing disabled ? */
|
||||
int RIOPrintLogState; /* RIO printing state ? */
|
||||
int RIOPolling; /* Polling ? */
|
||||
int RIOPrintDisabled; /* RIO printing disabled ? */
|
||||
int RIOPrintLogState; /* RIO printing state ? */
|
||||
int RIOPolling; /* Polling ? */
|
||||
/*
|
||||
** 09.12.1998 ARG - ESIL 0776 part fix
|
||||
** The 'RIO_QUICK_CHECK' ioctl was using RIOHalted.
|
||||
|
@ -70,61 +70,61 @@ struct rio_info {
|
|||
** updated in RIOConCon() - to keep track of RTA connections/disconnections.
|
||||
** 'RIO_QUICK_CHECK' now returns the value of RIORtaDisCons.
|
||||
*/
|
||||
int RIOHalted; /* halted ? */
|
||||
int RIORtaDisCons; /* RTA connections/disconnections */
|
||||
uint RIOReadCheck; /* Rio read check */
|
||||
uint RIONoMessage; /* To display message or not */
|
||||
uint RIONumBootPkts; /* how many packets for an RTA */
|
||||
uint RIOBootCount; /* size of RTA code */
|
||||
uint RIOBooting; /* count of outstanding boots */
|
||||
uint RIOSystemUp; /* Booted ?? */
|
||||
uint RIOCounting; /* for counting interrupts */
|
||||
uint RIOIntCount; /* # of intr since last check */
|
||||
uint RIOTxCount; /* number of xmit intrs */
|
||||
uint RIORxCount; /* number of rx intrs */
|
||||
uint RIORupCount; /* number of rup intrs */
|
||||
int RIXTimer;
|
||||
int RIOBufferSize; /* Buffersize */
|
||||
int RIOBufferMask; /* Buffersize */
|
||||
int RIOHalted; /* halted ? */
|
||||
int RIORtaDisCons; /* RTA connections/disconnections */
|
||||
uint RIOReadCheck; /* Rio read check */
|
||||
uint RIONoMessage; /* To display message or not */
|
||||
uint RIONumBootPkts; /* how many packets for an RTA */
|
||||
uint RIOBootCount; /* size of RTA code */
|
||||
uint RIOBooting; /* count of outstanding boots */
|
||||
uint RIOSystemUp; /* Booted ?? */
|
||||
uint RIOCounting; /* for counting interrupts */
|
||||
uint RIOIntCount; /* # of intr since last check */
|
||||
uint RIOTxCount; /* number of xmit intrs */
|
||||
uint RIORxCount; /* number of rx intrs */
|
||||
uint RIORupCount; /* number of rup intrs */
|
||||
int RIXTimer;
|
||||
int RIOBufferSize; /* Buffersize */
|
||||
int RIOBufferMask; /* Buffersize */
|
||||
|
||||
int RIOFirstMajor; /* First host card's major no */
|
||||
int RIOFirstMajor; /* First host card's major no */
|
||||
|
||||
uint RIOLastPortsMapped; /* highest port number known */
|
||||
uint RIOFirstPortsMapped; /* lowest port number known */
|
||||
uint RIOLastPortsMapped; /* highest port number known */
|
||||
uint RIOFirstPortsMapped; /* lowest port number known */
|
||||
|
||||
uint RIOLastPortsBooted; /* highest port number running */
|
||||
uint RIOFirstPortsBooted; /* lowest port number running */
|
||||
uint RIOLastPortsBooted; /* highest port number running */
|
||||
uint RIOFirstPortsBooted; /* lowest port number running */
|
||||
|
||||
uint RIOLastPortsOpened; /* highest port number running */
|
||||
uint RIOFirstPortsOpened; /* lowest port number running */
|
||||
uint RIOLastPortsOpened; /* highest port number running */
|
||||
uint RIOFirstPortsOpened; /* lowest port number running */
|
||||
|
||||
/* Flag to say that the topology information has been changed. */
|
||||
uint RIOQuickCheck;
|
||||
uint CdRegister; /* ??? */
|
||||
int RIOSignalProcess; /* Signalling process */
|
||||
int rio_debug; /* To debug ... */
|
||||
int RIODebugWait; /* For what ??? */
|
||||
int tpri; /* Thread prio */
|
||||
int tid; /* Thread id */
|
||||
uint _RIO_Polled; /* Counter for polling */
|
||||
uint _RIO_Interrupted; /* Counter for interrupt */
|
||||
int intr_tid; /* iointset return value */
|
||||
int TxEnSem; /* TxEnable Semaphore */
|
||||
uint RIOQuickCheck;
|
||||
uint CdRegister; /* ??? */
|
||||
int RIOSignalProcess; /* Signalling process */
|
||||
int rio_debug; /* To debug ... */
|
||||
int RIODebugWait; /* For what ??? */
|
||||
int tpri; /* Thread prio */
|
||||
int tid; /* Thread id */
|
||||
uint _RIO_Polled; /* Counter for polling */
|
||||
uint _RIO_Interrupted; /* Counter for interrupt */
|
||||
int intr_tid; /* iointset return value */
|
||||
int TxEnSem; /* TxEnable Semaphore */
|
||||
|
||||
|
||||
struct Error RIOError; /* to Identify what went wrong */
|
||||
struct Conf RIOConf; /* Configuration ??? */
|
||||
struct ttystatics channel[RIO_PORTS]; /* channel information */
|
||||
char RIOBootPackets[1+(SIXTY_FOUR_K/RTA_BOOT_DATA_SIZE)]
|
||||
[RTA_BOOT_DATA_SIZE];
|
||||
struct Map RIOConnectTable[TOTAL_MAP_ENTRIES];
|
||||
struct Map RIOSavedTable[TOTAL_MAP_ENTRIES];
|
||||
struct Error RIOError; /* to Identify what went wrong */
|
||||
struct Conf RIOConf; /* Configuration ??? */
|
||||
struct ttystatics channel[RIO_PORTS]; /* channel information */
|
||||
char RIOBootPackets[1 + (SIXTY_FOUR_K / RTA_BOOT_DATA_SIZE)]
|
||||
[RTA_BOOT_DATA_SIZE];
|
||||
struct Map RIOConnectTable[TOTAL_MAP_ENTRIES];
|
||||
struct Map RIOSavedTable[TOTAL_MAP_ENTRIES];
|
||||
|
||||
/* RTA to host binding table for master/slave operation */
|
||||
ulong RIOBindTab[MAX_RTA_BINDINGS];
|
||||
ulong RIOBindTab[MAX_RTA_BINDINGS];
|
||||
/* RTA memory dump variable */
|
||||
uchar RIOMemDump[MEMDUMP_SIZE];
|
||||
struct ModuleInfo RIOModuleTypes[MAX_MODULE_TYPES];
|
||||
uchar RIOMemDump[MEMDUMP_SIZE];
|
||||
struct ModuleInfo RIOModuleTypes[MAX_MODULE_TYPES];
|
||||
|
||||
};
|
||||
|
||||
|
@ -141,4 +141,4 @@ struct rio_info {
|
|||
#define WRBYTE(x,y) *(volatile unsigned char *)((x)) = \
|
||||
(unsigned char)(y)
|
||||
|
||||
#endif /* __riodrvr.h */
|
||||
#endif /* __riodrvr.h */
|
||||
|
|
|
@ -41,29 +41,29 @@ static char *_rioinfo_h_sccs_ = "@(#)rioinfo.h 1.2";
|
|||
** Host card data structure
|
||||
*/
|
||||
struct RioHostInfo {
|
||||
long location; /* RIO Card Base I/O address */
|
||||
long vector; /* RIO Card IRQ vector */
|
||||
int bus; /* ISA/EISA/MCA/PCI */
|
||||
int mode; /* pointer to host mode - INTERRUPT / POLLED */
|
||||
long location; /* RIO Card Base I/O address */
|
||||
long vector; /* RIO Card IRQ vector */
|
||||
int bus; /* ISA/EISA/MCA/PCI */
|
||||
int mode; /* pointer to host mode - INTERRUPT / POLLED */
|
||||
struct old_sgttyb
|
||||
* Sg; /* pointer to default term characteristics */
|
||||
*Sg; /* pointer to default term characteristics */
|
||||
};
|
||||
|
||||
|
||||
/* Mode in rio device info */
|
||||
#define INTERRUPTED_MODE 0x01 /* Interrupt is generated */
|
||||
#define POLLED_MODE 0x02 /* No interrupt */
|
||||
#define AUTO_MODE 0x03 /* Auto mode */
|
||||
#define INTERRUPTED_MODE 0x01 /* Interrupt is generated */
|
||||
#define POLLED_MODE 0x02 /* No interrupt */
|
||||
#define AUTO_MODE 0x03 /* Auto mode */
|
||||
|
||||
#define WORD_ACCESS_MODE 0x10 /* Word Access Mode */
|
||||
#define BYTE_ACCESS_MODE 0x20 /* Byte Access Mode */
|
||||
#define WORD_ACCESS_MODE 0x10 /* Word Access Mode */
|
||||
#define BYTE_ACCESS_MODE 0x20 /* Byte Access Mode */
|
||||
|
||||
|
||||
/* Bus type that RIO supports */
|
||||
#define ISA_BUS 0x01 /* The card is ISA */
|
||||
#define EISA_BUS 0x02 /* The card is EISA */
|
||||
#define MCA_BUS 0x04 /* The card is MCA */
|
||||
#define PCI_BUS 0x08 /* The card is PCI */
|
||||
#define ISA_BUS 0x01 /* The card is ISA */
|
||||
#define EISA_BUS 0x02 /* The card is EISA */
|
||||
#define MCA_BUS 0x04 /* The card is MCA */
|
||||
#define PCI_BUS 0x08 /* The card is PCI */
|
||||
|
||||
/*
|
||||
** 11.11.1998 ARG - ESIL ???? part fix
|
||||
|
@ -93,4 +93,4 @@ struct RioHostInfo {
|
|||
'V' - '@' /* literal next char */ \
|
||||
}
|
||||
|
||||
#endif /* __rioinfo_h */
|
||||
#endif /* __rioinfo_h */
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -42,14 +42,14 @@ static char *_rioioctl_h_sccs_ = "@(#)rioioctl.h 1.2";
|
|||
*/
|
||||
|
||||
struct portStats {
|
||||
int port;
|
||||
int gather;
|
||||
ulong txchars;
|
||||
ulong rxchars;
|
||||
ulong opens;
|
||||
ulong closes;
|
||||
ulong ioctls;
|
||||
};
|
||||
int port;
|
||||
int gather;
|
||||
ulong txchars;
|
||||
ulong rxchars;
|
||||
ulong opens;
|
||||
ulong closes;
|
||||
ulong ioctls;
|
||||
};
|
||||
|
||||
|
||||
#define rIOC ('r'<<8)
|
||||
|
@ -100,4 +100,4 @@ struct portStats {
|
|||
#define RIO_RESET_PORT_STATS (RIOC | 194)
|
||||
#define RIO_GET_PORT_STATS (RIOC | 195)
|
||||
|
||||
#endif /* __rioioctl_h__ */
|
||||
#endif /* __rioioctl_h__ */
|
||||
|
|
|
@ -157,46 +157,44 @@ static char *_rioparam_c_sccs_ = "@(#)rioparam.c 1.3";
|
|||
** NB. for MPX
|
||||
** tty lock must NOT have been previously acquired.
|
||||
*/
|
||||
int
|
||||
RIOParam(PortP, cmd, Modem, SleepFlag)
|
||||
int RIOParam(PortP, cmd, Modem, SleepFlag)
|
||||
struct Port *PortP;
|
||||
int cmd;
|
||||
int Modem;
|
||||
int SleepFlag;
|
||||
int SleepFlag;
|
||||
{
|
||||
register struct tty_struct *TtyP;
|
||||
int retval;
|
||||
int retval;
|
||||
register struct phb_param *phb_param_ptr;
|
||||
PKT *PacketP;
|
||||
int res;
|
||||
uchar Cor1=0, Cor2=0, Cor4=0, Cor5=0;
|
||||
uchar TxXon=0, TxXoff=0, RxXon=0, RxXoff=0;
|
||||
uchar LNext=0, TxBaud=0, RxBaud=0;
|
||||
int retries = 0xff;
|
||||
uchar Cor1 = 0, Cor2 = 0, Cor4 = 0, Cor5 = 0;
|
||||
uchar TxXon = 0, TxXoff = 0, RxXon = 0, RxXoff = 0;
|
||||
uchar LNext = 0, TxBaud = 0, RxBaud = 0;
|
||||
int retries = 0xff;
|
||||
unsigned long flags;
|
||||
|
||||
func_enter ();
|
||||
func_enter();
|
||||
|
||||
TtyP = PortP->gs.tty;
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "RIOParam: Port:%d cmd:%d Modem:%d SleepFlag:%d Mapped: %d, tty=%p\n",
|
||||
PortP->PortNum, cmd, Modem, SleepFlag, PortP->Mapped, TtyP);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "RIOParam: Port:%d cmd:%d Modem:%d SleepFlag:%d Mapped: %d, tty=%p\n", PortP->PortNum, cmd, Modem, SleepFlag, PortP->Mapped, TtyP);
|
||||
|
||||
if (!TtyP) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Can't call rioparam with null tty.\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Can't call rioparam with null tty.\n");
|
||||
|
||||
func_exit ();
|
||||
func_exit();
|
||||
|
||||
return RIO_FAIL;
|
||||
return RIO_FAIL;
|
||||
}
|
||||
rio_spin_lock_irqsave(&PortP->portSem, flags );
|
||||
rio_spin_lock_irqsave(&PortP->portSem, flags);
|
||||
|
||||
if (cmd == OPEN) {
|
||||
/*
|
||||
** If the port is set to store or lock the parameters, and it is
|
||||
** paramed with OPEN, we want to restore the saved port termio, but
|
||||
** only if StoredTermio has been saved, i.e. NOT 1st open after reboot.
|
||||
*/
|
||||
** If the port is set to store or lock the parameters, and it is
|
||||
** paramed with OPEN, we want to restore the saved port termio, but
|
||||
** only if StoredTermio has been saved, i.e. NOT 1st open after reboot.
|
||||
*/
|
||||
#if 0
|
||||
if (PortP->FirstOpen) {
|
||||
PortP->StoredTty.iflag = TtyP->tm.c_iflag;
|
||||
|
@ -207,9 +205,8 @@ int SleepFlag;
|
|||
for (i = 0; i < NCC + 5; i++)
|
||||
PortP->StoredTty.cc[i] = TtyP->tm.c_cc[i];
|
||||
PortP->FirstOpen = 0;
|
||||
}
|
||||
else if (PortP->Store || PortP->Lock) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "OPEN: Restoring stored/locked params\n");
|
||||
} else if (PortP->Store || PortP->Lock) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "OPEN: Restoring stored/locked params\n");
|
||||
TtyP->tm.c_iflag = PortP->StoredTty.iflag;
|
||||
TtyP->tm.c_oflag = PortP->StoredTty.oflag;
|
||||
TtyP->tm.c_cflag = PortP->StoredTty.cflag;
|
||||
|
@ -222,230 +219,222 @@ int SleepFlag;
|
|||
}
|
||||
|
||||
/*
|
||||
** wait for space
|
||||
*/
|
||||
while ( !(res=can_add_transmit(&PacketP,PortP)) ||
|
||||
(PortP->InUse != NOT_INUSE) ) {
|
||||
if (retries -- <= 0) {
|
||||
** wait for space
|
||||
*/
|
||||
while (!(res = can_add_transmit(&PacketP, PortP)) || (PortP->InUse != NOT_INUSE)) {
|
||||
if (retries-- <= 0) {
|
||||
break;
|
||||
}
|
||||
if ( PortP->InUse != NOT_INUSE ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Port IN_USE for pre-emptive command\n");
|
||||
if (PortP->InUse != NOT_INUSE) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Port IN_USE for pre-emptive command\n");
|
||||
}
|
||||
|
||||
if ( !res ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Port has no space on transmit queue\n");
|
||||
if (!res) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Port has no space on transmit queue\n");
|
||||
}
|
||||
|
||||
if ( SleepFlag != OK_TO_SLEEP ) {
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
if (SleepFlag != OK_TO_SLEEP) {
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
func_exit();
|
||||
|
||||
|
||||
return RIO_FAIL;
|
||||
}
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "wait for can_add_transmit\n");
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "wait for can_add_transmit\n");
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
retval = RIODelay(PortP, HUNDRED_MS);
|
||||
rio_spin_lock_irqsave( &PortP->portSem, flags);
|
||||
rio_spin_lock_irqsave(&PortP->portSem, flags);
|
||||
if (retval == RIO_FAIL) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "wait for can_add_transmit broken by signal\n");
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "wait for can_add_transmit broken by signal\n");
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
pseterr(EINTR);
|
||||
func_exit();
|
||||
|
||||
return RIO_FAIL;
|
||||
}
|
||||
if ( PortP->State & RIO_DELETED ) {
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
func_exit ();
|
||||
if (PortP->State & RIO_DELETED) {
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
func_exit();
|
||||
|
||||
return RIO_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
if (!res) {
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
func_exit ();
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
func_exit();
|
||||
|
||||
return RIO_FAIL;
|
||||
}
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "can_add_transmit() returns %x\n",res);
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Packet is 0x%x\n",(int) PacketP);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "can_add_transmit() returns %x\n", res);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Packet is 0x%x\n", (int) PacketP);
|
||||
|
||||
phb_param_ptr = (struct phb_param *)PacketP->data;
|
||||
phb_param_ptr = (struct phb_param *) PacketP->data;
|
||||
|
||||
|
||||
#if 0
|
||||
/*
|
||||
** COR 1
|
||||
*/
|
||||
if ( TtyP->tm.c_iflag & INPCK ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Parity checking on input enabled\n");
|
||||
** COR 1
|
||||
*/
|
||||
if (TtyP->tm.c_iflag & INPCK) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Parity checking on input enabled\n");
|
||||
Cor1 |= COR1_INPCK;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch ( TtyP->termios->c_cflag & CSIZE ) {
|
||||
case CS5:
|
||||
switch (TtyP->termios->c_cflag & CSIZE) {
|
||||
case CS5:
|
||||
{
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "5 bit data\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "5 bit data\n");
|
||||
Cor1 |= COR1_5BITS;
|
||||
break;
|
||||
}
|
||||
case CS6:
|
||||
case CS6:
|
||||
{
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "6 bit data\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "6 bit data\n");
|
||||
Cor1 |= COR1_6BITS;
|
||||
break;
|
||||
}
|
||||
case CS7:
|
||||
case CS7:
|
||||
{
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "7 bit data\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "7 bit data\n");
|
||||
Cor1 |= COR1_7BITS;
|
||||
break;
|
||||
}
|
||||
case CS8:
|
||||
case CS8:
|
||||
{
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "8 bit data\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "8 bit data\n");
|
||||
Cor1 |= COR1_8BITS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_cflag & CSTOPB ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "2 stop bits\n");
|
||||
if (TtyP->termios->c_cflag & CSTOPB) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "2 stop bits\n");
|
||||
Cor1 |= COR1_2STOP;
|
||||
}
|
||||
else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "1 stop bit\n");
|
||||
} else {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "1 stop bit\n");
|
||||
Cor1 |= COR1_1STOP;
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_cflag & PARENB ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable parity\n");
|
||||
if (TtyP->termios->c_cflag & PARENB) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable parity\n");
|
||||
Cor1 |= COR1_NORMAL;
|
||||
}
|
||||
else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Disable parity\n");
|
||||
} else {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Disable parity\n");
|
||||
Cor1 |= COR1_NOP;
|
||||
}
|
||||
if ( TtyP->termios->c_cflag & PARODD ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Odd parity\n");
|
||||
if (TtyP->termios->c_cflag & PARODD) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Odd parity\n");
|
||||
Cor1 |= COR1_ODD;
|
||||
}
|
||||
else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Even parity\n");
|
||||
Cor1 |= COR1_EVEN;
|
||||
} else {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Even parity\n");
|
||||
Cor1 |= COR1_EVEN;
|
||||
}
|
||||
|
||||
/*
|
||||
** COR 2
|
||||
*/
|
||||
if ( TtyP->termios->c_iflag & IXON ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable start/stop output control\n");
|
||||
** COR 2
|
||||
*/
|
||||
if (TtyP->termios->c_iflag & IXON) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable start/stop output control\n");
|
||||
Cor2 |= COR2_IXON;
|
||||
}
|
||||
else {
|
||||
if ( PortP->Config & RIO_IXON ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Force enable start/stop output control\n");
|
||||
} else {
|
||||
if (PortP->Config & RIO_IXON) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Force enable start/stop output control\n");
|
||||
Cor2 |= COR2_IXON;
|
||||
}
|
||||
else
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "IXON has been disabled.\n");
|
||||
} else
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "IXON has been disabled.\n");
|
||||
}
|
||||
|
||||
if (TtyP->termios->c_iflag & IXANY) {
|
||||
if ( PortP->Config & RIO_IXANY ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable any key to restart output\n");
|
||||
if (PortP->Config & RIO_IXANY) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable any key to restart output\n");
|
||||
Cor2 |= COR2_IXANY;
|
||||
}
|
||||
else
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "IXANY has been disabled due to sanity reasons.\n");
|
||||
} else
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "IXANY has been disabled due to sanity reasons.\n");
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_iflag & IXOFF ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable start/stop input control 2\n");
|
||||
if (TtyP->termios->c_iflag & IXOFF) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable start/stop input control 2\n");
|
||||
Cor2 |= COR2_IXOFF;
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_cflag & HUPCL ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Hangup on last close\n");
|
||||
if (TtyP->termios->c_cflag & HUPCL) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Hangup on last close\n");
|
||||
Cor2 |= COR2_HUPCL;
|
||||
}
|
||||
|
||||
if ( C_CRTSCTS (TtyP)) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Rx hardware flow control enabled\n");
|
||||
if (C_CRTSCTS(TtyP)) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Rx hardware flow control enabled\n");
|
||||
Cor2 |= COR2_CTSFLOW;
|
||||
Cor2 |= COR2_RTSFLOW;
|
||||
} else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Rx hardware flow control disabled\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Rx hardware flow control disabled\n");
|
||||
Cor2 &= ~COR2_CTSFLOW;
|
||||
Cor2 &= ~COR2_RTSFLOW;
|
||||
}
|
||||
|
||||
|
||||
if ( TtyP->termios->c_cflag & CLOCAL ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Local line\n");
|
||||
}
|
||||
else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Possible Modem line\n");
|
||||
if (TtyP->termios->c_cflag & CLOCAL) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Local line\n");
|
||||
} else {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Possible Modem line\n");
|
||||
}
|
||||
|
||||
/*
|
||||
** COR 4 (there is no COR 3)
|
||||
*/
|
||||
if ( TtyP->termios->c_iflag & IGNBRK ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Ignore break condition\n");
|
||||
** COR 4 (there is no COR 3)
|
||||
*/
|
||||
if (TtyP->termios->c_iflag & IGNBRK) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Ignore break condition\n");
|
||||
Cor4 |= COR4_IGNBRK;
|
||||
}
|
||||
if ( !(TtyP->termios->c_iflag & BRKINT) ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Break generates NULL condition\n");
|
||||
if (!(TtyP->termios->c_iflag & BRKINT)) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Break generates NULL condition\n");
|
||||
Cor4 |= COR4_NBRKINT;
|
||||
} else {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Interrupt on break condition\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Interrupt on break condition\n");
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_iflag & INLCR ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map newline to carriage return on input\n");
|
||||
if (TtyP->termios->c_iflag & INLCR) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map newline to carriage return on input\n");
|
||||
Cor4 |= COR4_INLCR;
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_iflag & IGNCR ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Ignore carriage return on input\n");
|
||||
if (TtyP->termios->c_iflag & IGNCR) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Ignore carriage return on input\n");
|
||||
Cor4 |= COR4_IGNCR;
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_iflag & ICRNL ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map carriage return to newline on input\n");
|
||||
if (TtyP->termios->c_iflag & ICRNL) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map carriage return to newline on input\n");
|
||||
Cor4 |= COR4_ICRNL;
|
||||
}
|
||||
if ( TtyP->termios->c_iflag & IGNPAR ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Ignore characters with parity errors\n");
|
||||
if (TtyP->termios->c_iflag & IGNPAR) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Ignore characters with parity errors\n");
|
||||
Cor4 |= COR4_IGNPAR;
|
||||
}
|
||||
if ( TtyP->termios->c_iflag & PARMRK ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Mark parity errors\n");
|
||||
if (TtyP->termios->c_iflag & PARMRK) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Mark parity errors\n");
|
||||
Cor4 |= COR4_PARMRK;
|
||||
}
|
||||
|
||||
/*
|
||||
** Set the RAISEMOD flag to ensure that the modem lines are raised
|
||||
** on reception of a config packet.
|
||||
** The download code handles the zero baud condition.
|
||||
*/
|
||||
** Set the RAISEMOD flag to ensure that the modem lines are raised
|
||||
** on reception of a config packet.
|
||||
** The download code handles the zero baud condition.
|
||||
*/
|
||||
Cor4 |= COR4_RAISEMOD;
|
||||
|
||||
/*
|
||||
** COR 5
|
||||
*/
|
||||
** COR 5
|
||||
*/
|
||||
|
||||
Cor5 = COR5_CMOE;
|
||||
|
||||
/*
|
||||
** Set to monitor tbusy/tstop (or not).
|
||||
*/
|
||||
** Set to monitor tbusy/tstop (or not).
|
||||
*/
|
||||
|
||||
if (PortP->MonitorTstate)
|
||||
Cor5 |= COR5_TSTATE_ON;
|
||||
|
@ -453,182 +442,195 @@ int SleepFlag;
|
|||
Cor5 |= COR5_TSTATE_OFF;
|
||||
|
||||
/*
|
||||
** Could set LNE here if you wanted LNext processing. SVR4 will use it.
|
||||
*/
|
||||
if ( TtyP->termios->c_iflag & ISTRIP ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Strip input characters\n");
|
||||
if (! (PortP->State & RIO_TRIAD_MODE)) {
|
||||
** Could set LNE here if you wanted LNext processing. SVR4 will use it.
|
||||
*/
|
||||
if (TtyP->termios->c_iflag & ISTRIP) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Strip input characters\n");
|
||||
if (!(PortP->State & RIO_TRIAD_MODE)) {
|
||||
Cor5 |= COR5_ISTRIP;
|
||||
}
|
||||
}
|
||||
|
||||
if ( TtyP->termios->c_oflag & ONLCR ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map newline to carriage-return, newline on output\n");
|
||||
if ( PortP->CookMode == COOK_MEDIUM )
|
||||
if (TtyP->termios->c_oflag & ONLCR) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map newline to carriage-return, newline on output\n");
|
||||
if (PortP->CookMode == COOK_MEDIUM)
|
||||
Cor5 |= COR5_ONLCR;
|
||||
}
|
||||
if ( TtyP->termios->c_oflag & OCRNL ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map carriage return to newline on output\n");
|
||||
if ( PortP->CookMode == COOK_MEDIUM )
|
||||
if (TtyP->termios->c_oflag & OCRNL) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map carriage return to newline on output\n");
|
||||
if (PortP->CookMode == COOK_MEDIUM)
|
||||
Cor5 |= COR5_OCRNL;
|
||||
}
|
||||
if ( ( TtyP->termios->c_oflag & TABDLY) == TAB3 ) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Tab delay 3 set\n");
|
||||
if ( PortP->CookMode == COOK_MEDIUM )
|
||||
if ((TtyP->termios->c_oflag & TABDLY) == TAB3) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Tab delay 3 set\n");
|
||||
if (PortP->CookMode == COOK_MEDIUM)
|
||||
Cor5 |= COR5_TAB3;
|
||||
}
|
||||
|
||||
/*
|
||||
** Flow control bytes.
|
||||
*/
|
||||
** Flow control bytes.
|
||||
*/
|
||||
TxXon = TtyP->termios->c_cc[VSTART];
|
||||
TxXoff = TtyP->termios->c_cc[VSTOP];
|
||||
RxXon = TtyP->termios->c_cc[VSTART];
|
||||
RxXoff = TtyP->termios->c_cc[VSTOP];
|
||||
/*
|
||||
** LNEXT byte
|
||||
*/
|
||||
** LNEXT byte
|
||||
*/
|
||||
LNext = 0;
|
||||
|
||||
/*
|
||||
** Baud rate bytes
|
||||
*/
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Mapping of rx/tx baud %x (%x)\n",
|
||||
TtyP->termios->c_cflag, CBAUD);
|
||||
** Baud rate bytes
|
||||
*/
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Mapping of rx/tx baud %x (%x)\n", TtyP->termios->c_cflag, CBAUD);
|
||||
|
||||
switch (TtyP->termios->c_cflag & CBAUD) {
|
||||
#define e(b) case B ## b : RxBaud = TxBaud = RIO_B ## b ;break
|
||||
e(50);e(75);e(110);e(134);e(150);e(200);e(300);e(600);e(1200);
|
||||
e(1800);e(2400);e(4800);e(9600);e(19200);e(38400);e(57600);
|
||||
e(115200); /* e(230400);e(460800); e(921600); */
|
||||
e(50);
|
||||
e(75);
|
||||
e(110);
|
||||
e(134);
|
||||
e(150);
|
||||
e(200);
|
||||
e(300);
|
||||
e(600);
|
||||
e(1200);
|
||||
e(1800);
|
||||
e(2400);
|
||||
e(4800);
|
||||
e(9600);
|
||||
e(19200);
|
||||
e(38400);
|
||||
e(57600);
|
||||
e(115200); /* e(230400);e(460800); e(921600); */
|
||||
}
|
||||
|
||||
/* XXX MIssing conversion table. XXX */
|
||||
/* (TtyP->termios->c_cflag & V_CBAUD); */
|
||||
/* (TtyP->termios->c_cflag & V_CBAUD); */
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "tx baud 0x%x, rx baud 0x%x\n", TxBaud, RxBaud);
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "tx baud 0x%x, rx baud 0x%x\n", TxBaud, RxBaud);
|
||||
|
||||
|
||||
/*
|
||||
** Leftovers
|
||||
*/
|
||||
if ( TtyP->termios->c_cflag & CREAD )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable receiver\n");
|
||||
** Leftovers
|
||||
*/
|
||||
if (TtyP->termios->c_cflag & CREAD)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable receiver\n");
|
||||
#ifdef RCV1EN
|
||||
if ( TtyP->termios->c_cflag & RCV1EN )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "RCV1EN (?)\n");
|
||||
if (TtyP->termios->c_cflag & RCV1EN)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "RCV1EN (?)\n");
|
||||
#endif
|
||||
#ifdef XMT1EN
|
||||
if ( TtyP->termios->c_cflag & XMT1EN )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "XMT1EN (?)\n");
|
||||
if (TtyP->termios->c_cflag & XMT1EN)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "XMT1EN (?)\n");
|
||||
#endif
|
||||
#if 0
|
||||
if ( TtyP->termios->c_cflag & LOBLK )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "LOBLK - JCL output blocks when not current\n");
|
||||
if (TtyP->termios->c_cflag & LOBLK)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "LOBLK - JCL output blocks when not current\n");
|
||||
#endif
|
||||
if ( TtyP->termios->c_lflag & ISIG )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Input character signal generating enabled\n");
|
||||
if ( TtyP->termios->c_lflag & ICANON )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Canonical input: erase and kill enabled\n");
|
||||
if ( TtyP->termios->c_lflag & XCASE )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Canonical upper/lower presentation\n");
|
||||
if ( TtyP->termios->c_lflag & ECHO )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable input echo\n");
|
||||
if ( TtyP->termios->c_lflag & ECHOE )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable echo erase\n");
|
||||
if ( TtyP->termios->c_lflag & ECHOK )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable echo kill\n");
|
||||
if ( TtyP->termios->c_lflag & ECHONL )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable echo newline\n");
|
||||
if ( TtyP->termios->c_lflag & NOFLSH )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Disable flush after interrupt or quit\n");
|
||||
if (TtyP->termios->c_lflag & ISIG)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Input character signal generating enabled\n");
|
||||
if (TtyP->termios->c_lflag & ICANON)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Canonical input: erase and kill enabled\n");
|
||||
if (TtyP->termios->c_lflag & XCASE)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Canonical upper/lower presentation\n");
|
||||
if (TtyP->termios->c_lflag & ECHO)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable input echo\n");
|
||||
if (TtyP->termios->c_lflag & ECHOE)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable echo erase\n");
|
||||
if (TtyP->termios->c_lflag & ECHOK)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable echo kill\n");
|
||||
if (TtyP->termios->c_lflag & ECHONL)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable echo newline\n");
|
||||
if (TtyP->termios->c_lflag & NOFLSH)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Disable flush after interrupt or quit\n");
|
||||
#ifdef TOSTOP
|
||||
if ( TtyP->termios->c_lflag & TOSTOP )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Send SIGTTOU for background output\n");
|
||||
if (TtyP->termios->c_lflag & TOSTOP)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Send SIGTTOU for background output\n");
|
||||
#endif
|
||||
#ifdef XCLUDE
|
||||
if ( TtyP->termios->c_lflag & XCLUDE )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Exclusive use of this line\n");
|
||||
if (TtyP->termios->c_lflag & XCLUDE)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Exclusive use of this line\n");
|
||||
#endif
|
||||
if ( TtyP->termios->c_iflag & IUCLC )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map uppercase to lowercase on input\n");
|
||||
if ( TtyP->termios->c_oflag & OPOST )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Enable output post-processing\n");
|
||||
if ( TtyP->termios->c_oflag & OLCUC )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Map lowercase to uppercase on output\n");
|
||||
if ( TtyP->termios->c_oflag & ONOCR )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "No carriage return output at column 0\n");
|
||||
if ( TtyP->termios->c_oflag & ONLRET )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Newline performs carriage return function\n");
|
||||
if ( TtyP->termios->c_oflag & OFILL )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Use fill characters for delay\n");
|
||||
if ( TtyP->termios->c_oflag & OFDEL )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Fill character is DEL\n");
|
||||
if ( TtyP->termios->c_oflag & NLDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Newline delay set\n");
|
||||
if ( TtyP->termios->c_oflag & CRDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Carriage return delay set\n");
|
||||
if ( TtyP->termios->c_oflag & TABDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Tab delay set\n");
|
||||
if (TtyP->termios->c_iflag & IUCLC)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map uppercase to lowercase on input\n");
|
||||
if (TtyP->termios->c_oflag & OPOST)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Enable output post-processing\n");
|
||||
if (TtyP->termios->c_oflag & OLCUC)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Map lowercase to uppercase on output\n");
|
||||
if (TtyP->termios->c_oflag & ONOCR)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "No carriage return output at column 0\n");
|
||||
if (TtyP->termios->c_oflag & ONLRET)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Newline performs carriage return function\n");
|
||||
if (TtyP->termios->c_oflag & OFILL)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Use fill characters for delay\n");
|
||||
if (TtyP->termios->c_oflag & OFDEL)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Fill character is DEL\n");
|
||||
if (TtyP->termios->c_oflag & NLDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Newline delay set\n");
|
||||
if (TtyP->termios->c_oflag & CRDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Carriage return delay set\n");
|
||||
if (TtyP->termios->c_oflag & TABDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Tab delay set\n");
|
||||
#if 0
|
||||
if ( TtyP->termios->c_oflag & BSDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Back-space delay set\n");
|
||||
if ( TtyP->termios->c_oflag & VTDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Vertical tab delay set\n");
|
||||
if ( TtyP->termios->c_oflag & FFDLY )
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "Form-feed delay set\n");
|
||||
if (TtyP->termios->c_oflag & BSDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Back-space delay set\n");
|
||||
if (TtyP->termios->c_oflag & VTDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Vertical tab delay set\n");
|
||||
if (TtyP->termios->c_oflag & FFDLY)
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "Form-feed delay set\n");
|
||||
#endif
|
||||
/*
|
||||
** These things are kind of useful in a later life!
|
||||
*/
|
||||
** These things are kind of useful in a later life!
|
||||
*/
|
||||
PortP->Cor2Copy = Cor2;
|
||||
|
||||
if ( PortP->State & RIO_DELETED ) {
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
func_exit ();
|
||||
if (PortP->State & RIO_DELETED) {
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
func_exit();
|
||||
|
||||
return RIO_FAIL;
|
||||
}
|
||||
|
||||
/*
|
||||
** Actually write the info into the packet to be sent
|
||||
*/
|
||||
WBYTE(phb_param_ptr->Cmd, cmd);
|
||||
WBYTE(phb_param_ptr->Cor1, Cor1);
|
||||
WBYTE(phb_param_ptr->Cor2, Cor2);
|
||||
WBYTE(phb_param_ptr->Cor4, Cor4);
|
||||
WBYTE(phb_param_ptr->Cor5, Cor5);
|
||||
WBYTE(phb_param_ptr->TxXon, TxXon);
|
||||
WBYTE(phb_param_ptr->RxXon, RxXon);
|
||||
** Actually write the info into the packet to be sent
|
||||
*/
|
||||
WBYTE(phb_param_ptr->Cmd, cmd);
|
||||
WBYTE(phb_param_ptr->Cor1, Cor1);
|
||||
WBYTE(phb_param_ptr->Cor2, Cor2);
|
||||
WBYTE(phb_param_ptr->Cor4, Cor4);
|
||||
WBYTE(phb_param_ptr->Cor5, Cor5);
|
||||
WBYTE(phb_param_ptr->TxXon, TxXon);
|
||||
WBYTE(phb_param_ptr->RxXon, RxXon);
|
||||
WBYTE(phb_param_ptr->TxXoff, TxXoff);
|
||||
WBYTE(phb_param_ptr->RxXoff, RxXoff);
|
||||
WBYTE(phb_param_ptr->LNext, LNext);
|
||||
WBYTE(phb_param_ptr->LNext, LNext);
|
||||
WBYTE(phb_param_ptr->TxBaud, TxBaud);
|
||||
WBYTE(phb_param_ptr->RxBaud, RxBaud);
|
||||
|
||||
/*
|
||||
** Set the length/command field
|
||||
*/
|
||||
WBYTE(PacketP->len , 12 | PKT_CMD_BIT);
|
||||
** Set the length/command field
|
||||
*/
|
||||
WBYTE(PacketP->len, 12 | PKT_CMD_BIT);
|
||||
|
||||
/*
|
||||
** The packet is formed - now, whack it off
|
||||
** to its final destination:
|
||||
*/
|
||||
** The packet is formed - now, whack it off
|
||||
** to its final destination:
|
||||
*/
|
||||
add_transmit(PortP);
|
||||
/*
|
||||
** Count characters transmitted for port statistics reporting
|
||||
*/
|
||||
** Count characters transmitted for port statistics reporting
|
||||
*/
|
||||
if (PortP->statsGather)
|
||||
PortP->txchars += 12;
|
||||
|
||||
rio_spin_unlock_irqrestore( &PortP->portSem, flags);
|
||||
rio_spin_unlock_irqrestore(&PortP->portSem, flags);
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "add_transmit returned.\n");
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "add_transmit returned.\n");
|
||||
/*
|
||||
** job done.
|
||||
*/
|
||||
func_exit ();
|
||||
** job done.
|
||||
*/
|
||||
func_exit();
|
||||
|
||||
return RIO_SUCCESS;
|
||||
}
|
||||
|
@ -638,16 +640,15 @@ int SleepFlag;
|
|||
** We can add another packet to a transmit queue if the packet pointer pointed
|
||||
** to by the TxAdd pointer has PKT_IN_USE clear in its address.
|
||||
*/
|
||||
int
|
||||
can_add_transmit(PktP, PortP)
|
||||
int can_add_transmit(PktP, PortP)
|
||||
PKT **PktP;
|
||||
struct Port *PortP;
|
||||
struct Port *PortP;
|
||||
{
|
||||
register PKT *tp;
|
||||
|
||||
*PktP = tp = (PKT *)RIO_PTR(PortP->Caddr,RWORD(*PortP->TxAdd));
|
||||
*PktP = tp = (PKT *) RIO_PTR(PortP->Caddr, RWORD(*PortP->TxAdd));
|
||||
|
||||
return !((uint)tp & PKT_IN_USE);
|
||||
return !((uint) tp & PKT_IN_USE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -655,25 +656,22 @@ struct Port *PortP;
|
|||
** and then move the TxAdd pointer along one position to point to the next
|
||||
** packet pointer. You must wrap the pointer from the end back to the start.
|
||||
*/
|
||||
void
|
||||
add_transmit(PortP)
|
||||
struct Port *PortP;
|
||||
void add_transmit(PortP)
|
||||
struct Port *PortP;
|
||||
{
|
||||
if (RWORD(*PortP->TxAdd) & PKT_IN_USE) {
|
||||
rio_dprintk (RIO_DEBUG_PARAM, "add_transmit: Packet has been stolen!");
|
||||
}
|
||||
WWORD( *(ushort *)PortP->TxAdd, RWORD(*PortP->TxAdd) | PKT_IN_USE);
|
||||
PortP->TxAdd = (PortP->TxAdd == PortP->TxEnd) ? PortP->TxStart :
|
||||
PortP->TxAdd + 1;
|
||||
WWORD( PortP->PhbP->tx_add , RIO_OFF(PortP->Caddr,PortP->TxAdd) );
|
||||
if (RWORD(*PortP->TxAdd) & PKT_IN_USE) {
|
||||
rio_dprintk(RIO_DEBUG_PARAM, "add_transmit: Packet has been stolen!");
|
||||
}
|
||||
WWORD(*(ushort *) PortP->TxAdd, RWORD(*PortP->TxAdd) | PKT_IN_USE);
|
||||
PortP->TxAdd = (PortP->TxAdd == PortP->TxEnd) ? PortP->TxStart : PortP->TxAdd + 1;
|
||||
WWORD(PortP->PhbP->tx_add, RIO_OFF(PortP->Caddr, PortP->TxAdd));
|
||||
}
|
||||
|
||||
/****************************************
|
||||
* Put a packet onto the end of the
|
||||
* free list
|
||||
****************************************/
|
||||
void
|
||||
put_free_end(HostP, PktP)
|
||||
void put_free_end(HostP, PktP)
|
||||
struct Host *HostP;
|
||||
PKT *PktP;
|
||||
{
|
||||
|
@ -688,24 +686,23 @@ PKT *PktP;
|
|||
*
|
||||
************************************************/
|
||||
|
||||
rio_dprintk (RIO_DEBUG_PFE, "put_free_end(PktP=%x)\n",(int)PktP);
|
||||
rio_dprintk(RIO_DEBUG_PFE, "put_free_end(PktP=%x)\n", (int) PktP);
|
||||
|
||||
if ((old_end=RWORD(HostP->ParmMapP->free_list_end)) != TPNULL) {
|
||||
new_end = RIO_OFF(HostP->Caddr,PktP);
|
||||
tmp_pointer = (FREE_LIST *)RIO_PTR(HostP->Caddr,old_end);
|
||||
WWORD(tmp_pointer->next , new_end );
|
||||
WWORD(((FREE_LIST *)PktP)->prev , old_end);
|
||||
WWORD(((FREE_LIST *)PktP)->next , TPNULL);
|
||||
if ((old_end = RWORD(HostP->ParmMapP->free_list_end)) != TPNULL) {
|
||||
new_end = RIO_OFF(HostP->Caddr, PktP);
|
||||
tmp_pointer = (FREE_LIST *) RIO_PTR(HostP->Caddr, old_end);
|
||||
WWORD(tmp_pointer->next, new_end);
|
||||
WWORD(((FREE_LIST *) PktP)->prev, old_end);
|
||||
WWORD(((FREE_LIST *) PktP)->next, TPNULL);
|
||||
WWORD(HostP->ParmMapP->free_list_end, new_end);
|
||||
} else { /* First packet on the free list this should never happen! */
|
||||
rio_dprintk(RIO_DEBUG_PFE, "put_free_end(): This should never happen\n");
|
||||
WWORD(HostP->ParmMapP->free_list_end, RIO_OFF(HostP->Caddr, PktP));
|
||||
tmp_pointer = (FREE_LIST *) PktP;
|
||||
WWORD(tmp_pointer->prev, TPNULL);
|
||||
WWORD(tmp_pointer->next, TPNULL);
|
||||
}
|
||||
else { /* First packet on the free list this should never happen! */
|
||||
rio_dprintk (RIO_DEBUG_PFE, "put_free_end(): This should never happen\n");
|
||||
WWORD(HostP->ParmMapP->free_list_end , RIO_OFF(HostP->Caddr,PktP));
|
||||
tmp_pointer = (FREE_LIST *)PktP;
|
||||
WWORD(tmp_pointer->prev , TPNULL);
|
||||
WWORD(tmp_pointer->next , TPNULL);
|
||||
}
|
||||
rio_dprintk (RIO_DEBUG_CMD, "Before unlock: %p\n", &HostP->HostLock);
|
||||
rio_dprintk(RIO_DEBUG_CMD, "Before unlock: %p\n", &HostP->HostLock);
|
||||
rio_spin_unlock_irqrestore(&HostP->HostLock, flags);
|
||||
}
|
||||
|
||||
|
@ -715,14 +712,12 @@ PKT *PktP;
|
|||
** relevant packet, [having cleared the PKT_IN_USE bit]. If PKT_IN_USE is clear,
|
||||
** then can_remove_receive() returns 0.
|
||||
*/
|
||||
int
|
||||
can_remove_receive(PktP, PortP)
|
||||
int can_remove_receive(PktP, PortP)
|
||||
PKT **PktP;
|
||||
struct Port *PortP;
|
||||
{
|
||||
if ( RWORD(*PortP->RxRemove) & PKT_IN_USE) {
|
||||
*PktP = (PKT *)RIO_PTR(PortP->Caddr,
|
||||
RWORD(*PortP->RxRemove) & ~PKT_IN_USE);
|
||||
if (RWORD(*PortP->RxRemove) & PKT_IN_USE) {
|
||||
*PktP = (PKT *) RIO_PTR(PortP->Caddr, RWORD(*PortP->RxRemove) & ~PKT_IN_USE);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -733,12 +728,10 @@ struct Port *PortP;
|
|||
** and then bump the pointers. Once the pointers get to the end, they must
|
||||
** be wrapped back to the start.
|
||||
*/
|
||||
void
|
||||
remove_receive(PortP)
|
||||
struct Port *PortP;
|
||||
void remove_receive(PortP)
|
||||
struct Port *PortP;
|
||||
{
|
||||
WWORD( *PortP->RxRemove, RWORD(*PortP->RxRemove) & ~PKT_IN_USE );
|
||||
PortP->RxRemove = (PortP->RxRemove == PortP->RxEnd) ? PortP->RxStart :
|
||||
PortP->RxRemove + 1;
|
||||
WWORD( PortP->PhbP->rx_remove , RIO_OFF(PortP->Caddr, PortP->RxRemove) );
|
||||
WWORD(*PortP->RxRemove, RWORD(*PortP->RxRemove) & ~PKT_IN_USE);
|
||||
PortP->RxRemove = (PortP->RxRemove == PortP->RxEnd) ? PortP->RxStart : PortP->RxRemove + 1;
|
||||
WWORD(PortP->PhbP->rx_remove, RIO_OFF(PortP->Caddr, PortP->RxRemove));
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
/* Yeah. We have copyright on this one. Sure. */
|
||||
|
||||
void rio_pcicopy( char *from, char *to, int amount)
|
||||
void rio_pcicopy(char *from, char *to, int amount)
|
||||
{
|
||||
while ( amount-- )
|
||||
*to++ = *from++;
|
||||
while (amount--)
|
||||
*to++ = *from++;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -47,9 +47,8 @@ static char *_riospace_h_sccs_ = "@(#)riospace.h 1.2";
|
|||
** In particular, it won't be able to see changes to RIO_SLOTS
|
||||
*/
|
||||
|
||||
struct Conf
|
||||
{
|
||||
char Locator[24];
|
||||
struct Conf {
|
||||
char Locator[24];
|
||||
unsigned int StartupTime;
|
||||
unsigned int SlowCook;
|
||||
unsigned int IntrPollTime;
|
||||
|
@ -59,8 +58,8 @@ struct Conf
|
|||
unsigned int HostLoadBase;
|
||||
unsigned int XpHz;
|
||||
unsigned int XpCps;
|
||||
char *XpOn;
|
||||
char *XpOff;
|
||||
char *XpOn;
|
||||
char *XpOff;
|
||||
unsigned int MaxXpCps;
|
||||
unsigned int MinXpCps;
|
||||
unsigned int SpinCmds;
|
||||
|
@ -74,7 +73,7 @@ struct Conf
|
|||
|
||||
/*
|
||||
** Board types - these MUST correspond to product codes!
|
||||
*/
|
||||
*/
|
||||
#define RIO_EMPTY 0x0
|
||||
#define RIO_EISA 0x3
|
||||
#define RIO_RTA_16 0x9
|
||||
|
@ -86,18 +85,16 @@ struct Conf
|
|||
/*
|
||||
** Board data structure. This is used for configuration info
|
||||
*/
|
||||
struct Brd
|
||||
{
|
||||
unsigned char Type; /* RIO_EISA, RIO_MCA, RIO_AT, RIO_EMPTY... */
|
||||
unsigned char Ivec; /* POLLED or ivec number */
|
||||
unsigned char Mode; /* Control stuff, see below */
|
||||
struct Brd {
|
||||
unsigned char Type; /* RIO_EISA, RIO_MCA, RIO_AT, RIO_EMPTY... */
|
||||
unsigned char Ivec; /* POLLED or ivec number */
|
||||
unsigned char Mode; /* Control stuff, see below */
|
||||
};
|
||||
|
||||
struct Board
|
||||
{
|
||||
char Locator[RIO_LOCATOR_LEN];
|
||||
int NumSlots;
|
||||
struct Brd Boards[MAX_RIO_BOARDS];
|
||||
struct Board {
|
||||
char Locator[RIO_LOCATOR_LEN];
|
||||
int NumSlots;
|
||||
struct Brd Boards[MAX_RIO_BOARDS];
|
||||
};
|
||||
|
||||
#define BOOT_FROM_LINK 0x00
|
||||
|
@ -158,4 +155,4 @@ struct Board
|
|||
|
||||
#define DBG_ALWAYS 0x80000000
|
||||
|
||||
#endif /* __rio_riospace_h__ */
|
||||
#endif /* __rio_riospace_h__ */
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -40,7 +40,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_riotime_h_sccs = "@(#)riotime.h 1.1" ;
|
||||
static char *_rio_riotime_h_sccs = "@(#)riotime.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -52,7 +52,7 @@ static char *_rio_riotime_h_sccs = "@(#)riotime.h 1.1" ;
|
|||
/**************************************
|
||||
* Convert a RIO tick (1/10th second)
|
||||
* into transputer low priority ticks
|
||||
*************************************/
|
||||
*************************************/
|
||||
#define RioTimeToLow(time) (time*(100000 / 64))
|
||||
#define RioLowToTime(time) ((time*64)/100000)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -89,47 +89,46 @@ typedef RIO_POINTER u_short_ptr;
|
|||
typedef RIO_POINTER ushort_ptr;
|
||||
#endif
|
||||
|
||||
#else /* not INKERNEL */
|
||||
typedef unsigned char BYTE;
|
||||
typedef unsigned short WORD;
|
||||
typedef unsigned long DWORD;
|
||||
typedef short NUMBER;
|
||||
typedef short *NUMBER_ptr;
|
||||
typedef unsigned short *WORD_ptr;
|
||||
typedef unsigned char *BYTE_ptr;
|
||||
typedef unsigned char uchar ;
|
||||
typedef unsigned short ushort ;
|
||||
typedef unsigned int uint ;
|
||||
typedef unsigned long ulong ;
|
||||
typedef unsigned char u_char ;
|
||||
typedef unsigned short u_short ;
|
||||
typedef unsigned int u_int ;
|
||||
typedef unsigned long u_long ;
|
||||
typedef unsigned short ERROR ;
|
||||
typedef unsigned long ID ;
|
||||
typedef char *char_ptr;
|
||||
typedef Channel *Channel_ptr;
|
||||
#else /* not INKERNEL */
|
||||
typedef unsigned char BYTE;
|
||||
typedef unsigned short WORD;
|
||||
typedef unsigned long DWORD;
|
||||
typedef short NUMBER;
|
||||
typedef short *NUMBER_ptr;
|
||||
typedef unsigned short *WORD_ptr;
|
||||
typedef unsigned char *BYTE_ptr;
|
||||
typedef unsigned char uchar;
|
||||
typedef unsigned short ushort;
|
||||
typedef unsigned int uint;
|
||||
typedef unsigned long ulong;
|
||||
typedef unsigned char u_char;
|
||||
typedef unsigned short u_short;
|
||||
typedef unsigned int u_int;
|
||||
typedef unsigned long u_long;
|
||||
typedef unsigned short ERROR;
|
||||
typedef unsigned long ID;
|
||||
typedef char *char_ptr;
|
||||
typedef Channel *Channel_ptr;
|
||||
typedef struct FREE_LIST *FREE_LIST_ptr;
|
||||
typedef struct FREE_LIST **FREE_LIST_ptr_ptr;
|
||||
typedef struct LPB *LPB_ptr;
|
||||
typedef struct Process *Process_ptr;
|
||||
typedef struct PHB *PHB_ptr;
|
||||
typedef struct PKT *PKT_ptr;
|
||||
typedef struct PKT **PKT_ptr_ptr;
|
||||
typedef struct Q_BUF *Q_BUF_ptr;
|
||||
typedef struct Q_BUF **Q_BUF_ptr_ptr;
|
||||
typedef struct LPB *LPB_ptr;
|
||||
typedef struct Process *Process_ptr;
|
||||
typedef struct PHB *PHB_ptr;
|
||||
typedef struct PKT *PKT_ptr;
|
||||
typedef struct PKT **PKT_ptr_ptr;
|
||||
typedef struct Q_BUF *Q_BUF_ptr;
|
||||
typedef struct Q_BUF **Q_BUF_ptr_ptr;
|
||||
typedef struct ROUTE_STR *ROUTE_STR_ptr;
|
||||
typedef struct RUP *RUP_ptr;
|
||||
typedef short *short_ptr;
|
||||
typedef u_short *u_short_ptr;
|
||||
typedef ushort *ushort_ptr;
|
||||
typedef struct PKT PKT;
|
||||
typedef struct LPB LPB;
|
||||
typedef struct RUP RUP;
|
||||
typedef struct RUP *RUP_ptr;
|
||||
typedef short *short_ptr;
|
||||
typedef u_short *u_short_ptr;
|
||||
typedef ushort *ushort_ptr;
|
||||
typedef struct PKT PKT;
|
||||
typedef struct LPB LPB;
|
||||
typedef struct RUP RUP;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __riotypes__ */
|
||||
#endif /* __riotypes__ */
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -60,4 +60,4 @@ static char *_riscos_h_sccs_ = "@(#)riscos.h 1.2";
|
|||
#define RINDW(A) (*(ushort *)(A))
|
||||
#define WINDW(A,V) (*(ushort *)(A)=(ushort)(V))
|
||||
|
||||
#endif /* __rio_riscos_h__ */
|
||||
#endif /* __rio_riscos_h__ */
|
||||
|
|
|
@ -39,19 +39,19 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS
|
||||
static char *_rio_rom_h_sccs = "@(#)rom.h 1.1" ;
|
||||
static char *_rio_rom_h_sccs = "@(#)rom.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct ROM ROM ;
|
||||
struct ROM {
|
||||
u_short slx ;
|
||||
char pcb_letter_rev ;
|
||||
char pcb_number_rev ;
|
||||
char serial[4] ;
|
||||
char year ;
|
||||
char week ;
|
||||
} ;
|
||||
typedef struct ROM ROM;
|
||||
struct ROM {
|
||||
u_short slx;
|
||||
char pcb_letter_rev;
|
||||
char pcb_number_rev;
|
||||
char serial[4];
|
||||
char year;
|
||||
char week;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -60,5 +60,3 @@ struct ROM {
|
|||
#define ROM_LENGTH 0x20
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
|
|
@ -44,26 +44,26 @@
|
|||
#endif
|
||||
|
||||
#define MAX_LINKS 4
|
||||
#define MAX_NODES 17 /* Maximum nodes in a subnet */
|
||||
#define NODE_BYTES ((MAX_NODES / 8) + 1) /* Number of bytes needed for
|
||||
1 bit per node */
|
||||
#define ROUTE_DATA_SIZE (NODE_BYTES + 2) /* Number of bytes for complete
|
||||
info about cost etc. */
|
||||
#define MAX_NODES 17 /* Maximum nodes in a subnet */
|
||||
#define NODE_BYTES ((MAX_NODES / 8) + 1) /* Number of bytes needed for
|
||||
1 bit per node */
|
||||
#define ROUTE_DATA_SIZE (NODE_BYTES + 2) /* Number of bytes for complete
|
||||
info about cost etc. */
|
||||
#define ROUTES_PER_PACKET ((PKT_MAX_DATA_LEN -2)/ ROUTE_DATA_SIZE)
|
||||
/* Number of nodes we can squeeze
|
||||
into one packet */
|
||||
/* Number of nodes we can squeeze
|
||||
into one packet */
|
||||
#define MAX_TOPOLOGY_PACKETS (MAX_NODES / ROUTES_PER_PACKET + 1)
|
||||
/************************************************
|
||||
* Define the types of command for the ROUTE RUP.
|
||||
************************************************/
|
||||
#define ROUTE_REQUEST 0 /* Request an ID */
|
||||
#define ROUTE_FOAD 1 /* Kill the RTA */
|
||||
#define ROUTE_ALREADY 2 /* ID given already */
|
||||
#define ROUTE_USED 3 /* All ID's used */
|
||||
#define ROUTE_ALLOCATE 4 /* Here it is */
|
||||
#define ROUTE_REQ_TOP 5 /* I bet you didn't expect....
|
||||
the Topological Inquisition */
|
||||
#define ROUTE_TOPOLOGY 6 /* Topology request answered FD */
|
||||
#define ROUTE_REQUEST 0 /* Request an ID */
|
||||
#define ROUTE_FOAD 1 /* Kill the RTA */
|
||||
#define ROUTE_ALREADY 2 /* ID given already */
|
||||
#define ROUTE_USED 3 /* All ID's used */
|
||||
#define ROUTE_ALLOCATE 4 /* Here it is */
|
||||
#define ROUTE_REQ_TOP 5 /* I bet you didn't expect....
|
||||
the Topological Inquisition */
|
||||
#define ROUTE_TOPOLOGY 6 /* Topology request answered FD */
|
||||
/*******************************************************************
|
||||
* Define the Route Map Structure
|
||||
*
|
||||
|
@ -72,22 +72,22 @@
|
|||
******************************************************************/
|
||||
typedef struct COST_ROUTE COST_ROUTE;
|
||||
struct COST_ROUTE {
|
||||
unsigned char cost; /* Cost down this link */
|
||||
unsigned char route[NODE_BYTES]; /* Nodes thorough this route */
|
||||
} ;
|
||||
unsigned char cost; /* Cost down this link */
|
||||
unsigned char route[NODE_BYTES]; /* Nodes thorough this route */
|
||||
};
|
||||
|
||||
typedef struct ROUTE_STR ROUTE_STR ;
|
||||
struct ROUTE_STR {
|
||||
COST_ROUTE cost_route[MAX_LINKS];
|
||||
/* cost / route for this link */
|
||||
ushort favoured; /* favoured link */
|
||||
} ;
|
||||
typedef struct ROUTE_STR ROUTE_STR;
|
||||
struct ROUTE_STR {
|
||||
COST_ROUTE cost_route[MAX_LINKS];
|
||||
/* cost / route for this link */
|
||||
ushort favoured; /* favoured link */
|
||||
};
|
||||
|
||||
|
||||
#define NO_LINK (short) 5 /* Link unattached */
|
||||
#define ROUTE_NO_ID (short) 100 /* No Id */
|
||||
#define ROUTE_DISCONNECT (ushort) 0xff /* Not connected */
|
||||
#define ROUTE_INTERCONNECT (ushort) 0x40 /* Sub-net interconnect */
|
||||
#define NO_LINK (short) 5 /* Link unattached */
|
||||
#define ROUTE_NO_ID (short) 100 /* No Id */
|
||||
#define ROUTE_DISCONNECT (ushort) 0xff /* Not connected */
|
||||
#define ROUTE_INTERCONNECT (ushort) 0x40 /* Sub-net interconnect */
|
||||
|
||||
|
||||
#define SYNC_RUP (ushort) 255
|
||||
|
@ -99,10 +99,9 @@ struct ROUTE_STR {
|
|||
#define STATUS_RUP (ushort) 249
|
||||
#define POWER_RUP (ushort) 248
|
||||
|
||||
#define HIGHEST_RUP (ushort) 255 /* Set to Top one */
|
||||
#define LOWEST_RUP (ushort) 248 /* Set to bottom one */
|
||||
#define HIGHEST_RUP (ushort) 255 /* Set to Top one */
|
||||
#define LOWEST_RUP (ushort) 248 /* Set to bottom one */
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_rtahw_h_sccs = "@(#)rtahw.h 1.5" ;
|
||||
static char *_rio_rtahw_h_sccs = "@(#)rtahw.h 1.5";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -58,12 +58,12 @@ static char *_rio_rtahw_h_sccs = "@(#)rtahw.h 1.5" ;
|
|||
** Define the different types of modules we can have
|
||||
*/
|
||||
enum module {
|
||||
MOD_BLANK = 0x0f, /* Blank plate attached */
|
||||
MOD_RS232DB25 = 0x00, /* RS232 DB25 connector */
|
||||
MOD_RS232RJ45 = 0x01, /* RS232 RJ45 connector */
|
||||
MOD_RS422DB25 = 0x02, /* RS422 DB25 connector */
|
||||
MOD_RS485DB25 = 0x03, /* RS485 DB25 connector */
|
||||
MOD_PARALLEL = 0x04 /* Centronics parallel */
|
||||
MOD_BLANK = 0x0f, /* Blank plate attached */
|
||||
MOD_RS232DB25 = 0x00, /* RS232 DB25 connector */
|
||||
MOD_RS232RJ45 = 0x01, /* RS232 RJ45 connector */
|
||||
MOD_RS422DB25 = 0x02, /* RS422 DB25 connector */
|
||||
MOD_RS485DB25 = 0x03, /* RS485 DB25 connector */
|
||||
MOD_PARALLEL = 0x04 /* Centronics parallel */
|
||||
};
|
||||
|
||||
#define TYPE_HOST 0
|
||||
|
|
|
@ -44,39 +44,38 @@
|
|||
#endif
|
||||
|
||||
#if defined( HOST ) || defined( INKERNEL )
|
||||
#define MAX_RUP ((short) 16)
|
||||
#define MAX_RUP ((short) 16)
|
||||
#endif
|
||||
#ifdef RTA
|
||||
#define MAX_RUP ((short) 1)
|
||||
#endif
|
||||
|
||||
#define PKTS_PER_RUP ((short) 2) /* They are always used in pairs */
|
||||
#define PKTS_PER_RUP ((short) 2) /* They are always used in pairs */
|
||||
|
||||
/*************************************************
|
||||
* Define all the packet request stuff
|
||||
************************************************/
|
||||
#define TX_RUP_INACTIVE 0 /* Nothing to transmit */
|
||||
#define TX_PACKET_READY 1 /* Transmit packet ready */
|
||||
#define TX_LOCK_RUP 2 /* Transmit side locked */
|
||||
#define TX_RUP_INACTIVE 0 /* Nothing to transmit */
|
||||
#define TX_PACKET_READY 1 /* Transmit packet ready */
|
||||
#define TX_LOCK_RUP 2 /* Transmit side locked */
|
||||
|
||||
#define RX_RUP_INACTIVE 0 /* Nothing received */
|
||||
#define RX_PACKET_READY 1 /* Packet received */
|
||||
#define RX_RUP_INACTIVE 0 /* Nothing received */
|
||||
#define RX_PACKET_READY 1 /* Packet received */
|
||||
|
||||
#define RUP_NO_OWNER 0xff /* RUP not owned by any process */
|
||||
#define RUP_NO_OWNER 0xff /* RUP not owned by any process */
|
||||
|
||||
struct RUP {
|
||||
PKT_ptr txpkt; /* Outgoing packet */
|
||||
PKT_ptr rxpkt; /* Incoming packet */
|
||||
WORD link; /* Which link to send down? */
|
||||
BYTE rup_dest_unit[2]; /* Destination unit */
|
||||
WORD handshake; /* For handshaking */
|
||||
WORD timeout; /* Timeout */
|
||||
WORD status; /* Status */
|
||||
WORD txcontrol; /* Transmit control */
|
||||
WORD rxcontrol; /* Receive control */
|
||||
};
|
||||
|
||||
PKT_ptr txpkt; /* Outgoing packet */
|
||||
PKT_ptr rxpkt; /* Incoming packet */
|
||||
WORD link; /* Which link to send down? */
|
||||
BYTE rup_dest_unit[2]; /* Destination unit */
|
||||
WORD handshake; /* For handshaking */
|
||||
WORD timeout; /* Timeout */
|
||||
WORD status; /* Status */
|
||||
WORD txcontrol; /* Transmit control */
|
||||
WORD rxcontrol; /* Receive control */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_rupstat_h_sccs = "@(#)rupstat.h 1.1" ;
|
||||
static char *_rio_rupstat_h_sccs = "@(#)rupstat.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -48,4 +48,3 @@ static char *_rio_rupstat_h_sccs = "@(#)rupstat.h 1.1" ;
|
|||
#define STATUS_TOPOLOGY 2
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -60,15 +60,12 @@
|
|||
#define RX FALSE
|
||||
|
||||
|
||||
typedef struct FREE_LIST FREE_LIST ;
|
||||
struct FREE_LIST {
|
||||
FREE_LIST_ptr next ;
|
||||
FREE_LIST_ptr prev ;
|
||||
} ;
|
||||
typedef struct FREE_LIST FREE_LIST;
|
||||
struct FREE_LIST {
|
||||
FREE_LIST_ptr next;
|
||||
FREE_LIST_ptr prev;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -38,36 +38,36 @@
|
|||
** selftest on a booting RTA.
|
||||
*/
|
||||
typedef struct {
|
||||
short magic; /* Identifies packet type */
|
||||
int test; /* Test number, see below */
|
||||
unsigned int result; /* Result value */
|
||||
unsigned int dataIn;
|
||||
unsigned int dataOut;
|
||||
}selftestStruct;
|
||||
short magic; /* Identifies packet type */
|
||||
int test; /* Test number, see below */
|
||||
unsigned int result; /* Result value */
|
||||
unsigned int dataIn;
|
||||
unsigned int dataOut;
|
||||
} selftestStruct;
|
||||
|
||||
/*
|
||||
** The different tests are identified by the following data values.
|
||||
*/
|
||||
enum test {
|
||||
TESTS_COMPLETE = 0x00,
|
||||
MEMTEST_ADDR = 0x01,
|
||||
MEMTEST_BIT = 0x02,
|
||||
MEMTEST_FILL = 0x03,
|
||||
MEMTEST_DATABUS = 0x04,
|
||||
MEMTEST_ADDRBUS = 0x05,
|
||||
CD1400_INIT = 0x10,
|
||||
CD1400_LOOP = 0x11,
|
||||
CD1400_INTERRUPT = 0x12
|
||||
TESTS_COMPLETE = 0x00,
|
||||
MEMTEST_ADDR = 0x01,
|
||||
MEMTEST_BIT = 0x02,
|
||||
MEMTEST_FILL = 0x03,
|
||||
MEMTEST_DATABUS = 0x04,
|
||||
MEMTEST_ADDRBUS = 0x05,
|
||||
CD1400_INIT = 0x10,
|
||||
CD1400_LOOP = 0x11,
|
||||
CD1400_INTERRUPT = 0x12
|
||||
};
|
||||
|
||||
enum result {
|
||||
E_PORT = 0x10,
|
||||
E_TX = 0x11,
|
||||
E_RX = 0x12,
|
||||
E_EXCEPT = 0x13,
|
||||
E_COMPARE = 0x14,
|
||||
E_MODEM = 0x15,
|
||||
E_TIMEOUT = 0x16,
|
||||
E_INTERRUPT = 0x17
|
||||
E_PORT = 0x10,
|
||||
E_TX = 0x11,
|
||||
E_RX = 0x12,
|
||||
E_EXCEPT = 0x13,
|
||||
E_COMPARE = 0x14,
|
||||
E_MODEM = 0x15,
|
||||
E_TIMEOUT = 0x16,
|
||||
E_INTERRUPT = 0x17
|
||||
};
|
||||
#endif /* _selftests_h_ */
|
||||
#endif /* _selftests_h_ */
|
||||
|
|
|
@ -42,4 +42,4 @@ extern int rio_bases[];
|
|||
extern int rio_limits[];
|
||||
extern int rio_vects[];
|
||||
|
||||
#endif /* __rio_space_h__ */
|
||||
#endif /* __rio_space_h__ */
|
||||
|
|
|
@ -37,27 +37,26 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_sysmap_h_sccs = "@(#)sysmap.h 1.1" ;
|
||||
static char *_rio_sysmap_h_sccs = "@(#)sysmap.h 1.1";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SYSTEM_MAP_LEN 64 /* Len of System Map array */
|
||||
#define SYSTEM_MAP_LEN 64 /* Len of System Map array */
|
||||
|
||||
|
||||
typedef struct SYS_MAP SYS_MAP ;
|
||||
typedef struct SYS_MAP_LINK SYS_MAP_LINK ;
|
||||
typedef struct SYS_MAP SYS_MAP;
|
||||
typedef struct SYS_MAP_LINK SYS_MAP_LINK;
|
||||
|
||||
struct SYS_MAP_LINK {
|
||||
short id ; /* Unit Id */
|
||||
short link ; /* Id's Link */
|
||||
short been_here ; /* Used by map_gen */
|
||||
} ;
|
||||
short id; /* Unit Id */
|
||||
short link; /* Id's Link */
|
||||
short been_here; /* Used by map_gen */
|
||||
};
|
||||
|
||||
struct SYS_MAP {
|
||||
char serial_num[4] ;
|
||||
SYS_MAP_LINK link[4] ;
|
||||
} ;
|
||||
char serial_num[4];
|
||||
SYS_MAP_LINK link[4];
|
||||
};
|
||||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -37,15 +37,14 @@
|
|||
|
||||
#ifndef lint
|
||||
#ifdef SCCS_LABELS
|
||||
static char *_rio_defaults_h_sccs = "@(#)timeouts.h 1.3" ;
|
||||
static char *_rio_defaults_h_sccs = "@(#)timeouts.h 1.3";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define MILLISECOND (int) (1000/64) /* 15.625 low ticks */
|
||||
#define SECOND (int) 15625 /* Low priority ticks */
|
||||
#define MILLISECOND (int) (1000/64) /* 15.625 low ticks */
|
||||
#define SECOND (int) 15625 /* Low priority ticks */
|
||||
|
||||
#define TX_TIMEOUT (int) (200 * MILLISECOND)
|
||||
|
||||
|
||||
/*********** end of file ***********/
|
||||
|
||||
|
|
|
@ -40,10 +40,9 @@ static char *_top_h_sccs_ = "@(#)top.h 1.2";
|
|||
/*
|
||||
** Topology information
|
||||
*/
|
||||
struct Top
|
||||
{
|
||||
uchar Unit;
|
||||
uchar Link;
|
||||
struct Top {
|
||||
uchar Unit;
|
||||
uchar Link;
|
||||
};
|
||||
|
||||
#endif /* __rio_top_h__ */
|
||||
#endif /* __rio_top_h__ */
|
||||
|
|
|
@ -45,11 +45,11 @@ static char *_typdef_h_sccs_ = "@(#)typdef.h 1.2";
|
|||
** These types are ONLY to be used for refering to data structures
|
||||
** on the RIO Host card!
|
||||
*/
|
||||
typedef volatile unsigned char BYTE;
|
||||
typedef volatile unsigned short WORD;
|
||||
typedef volatile unsigned int DWORD;
|
||||
typedef volatile unsigned short RIOP;
|
||||
typedef volatile short NUMBER;
|
||||
typedef volatile unsigned char BYTE;
|
||||
typedef volatile unsigned short WORD;
|
||||
typedef volatile unsigned int DWORD;
|
||||
typedef volatile unsigned short RIOP;
|
||||
typedef volatile short NUMBER;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -59,13 +59,13 @@ typedef volatile short NUMBER;
|
|||
** are here only to make the source compile.
|
||||
*/
|
||||
/* typedef unsigned int uint; */
|
||||
typedef unsigned long ulong_t;
|
||||
typedef unsigned short ushort_t;
|
||||
typedef unsigned char uchar_t;
|
||||
typedef unsigned char queue_t;
|
||||
typedef unsigned char mblk_t;
|
||||
typedef unsigned int paddr_t;
|
||||
typedef unsigned char uchar;
|
||||
typedef unsigned long ulong_t;
|
||||
typedef unsigned short ushort_t;
|
||||
typedef unsigned char uchar_t;
|
||||
typedef unsigned char queue_t;
|
||||
typedef unsigned char mblk_t;
|
||||
typedef unsigned int paddr_t;
|
||||
typedef unsigned char uchar;
|
||||
|
||||
#define TPNULL ((ushort)(0x8000))
|
||||
|
||||
|
@ -73,10 +73,10 @@ typedef unsigned char uchar;
|
|||
/*
|
||||
** RIO structures defined in other include files.
|
||||
*/
|
||||
typedef struct PKT PKT;
|
||||
typedef struct LPB LPB;
|
||||
typedef struct RUP RUP;
|
||||
typedef struct Port Port;
|
||||
typedef struct DpRam DpRam;
|
||||
typedef struct PKT PKT;
|
||||
typedef struct LPB LPB;
|
||||
typedef struct RUP RUP;
|
||||
typedef struct Port Port;
|
||||
typedef struct DpRam DpRam;
|
||||
|
||||
#endif /* __rio_typdef_h__ */
|
||||
#endif /* __rio_typdef_h__ */
|
||||
|
|
|
@ -41,16 +41,15 @@ static char *_unixrup_h_sccs_ = "@(#)unixrup.h 1.2";
|
|||
** UnixRup data structure. This contains pointers to actual RUPs on the
|
||||
** host card, and all the command/boot control stuff.
|
||||
*/
|
||||
struct UnixRup
|
||||
{
|
||||
struct CmdBlk *CmdsWaitingP; /* Commands waiting to be done */
|
||||
struct CmdBlk *CmdPendingP; /* The command currently being sent */
|
||||
struct RUP *RupP; /* the Rup to send it to */
|
||||
uint Id; /* Id number */
|
||||
uint BaseSysPort; /* SysPort of first tty on this RTA */
|
||||
uint ModTypes; /* Modules on this RTA */
|
||||
spinlock_t RupLock; /* Lock structure for MPX */
|
||||
/* struct lockb RupLock; */ /* Lock structure for MPX */
|
||||
struct UnixRup {
|
||||
struct CmdBlk *CmdsWaitingP; /* Commands waiting to be done */
|
||||
struct CmdBlk *CmdPendingP; /* The command currently being sent */
|
||||
struct RUP *RupP; /* the Rup to send it to */
|
||||
uint Id; /* Id number */
|
||||
uint BaseSysPort; /* SysPort of first tty on this RTA */
|
||||
uint ModTypes; /* Modules on this RTA */
|
||||
spinlock_t RupLock; /* Lock structure for MPX */
|
||||
/* struct lockb RupLock; *//* Lock structure for MPX */
|
||||
};
|
||||
|
||||
#endif /* __rio_unixrup_h__ */
|
||||
#endif /* __rio_unixrup_h__ */
|
||||
|
|
Loading…
Reference in a new issue