Add big and ugly warning to users of lpa that
[unix-history] / sys / i386 / isa / asreg.h
CommitLineData
15637ed4
RG
1struct scsicmd {
2 int lun;
3 int readflag; /* 1=read, 0=write */
4 int blkno; /* just used in seek sorting */
5
6 unsigned int cdblen;
7 caddr_t cdb;
8
9 unsigned int datalen;
10 caddr_t data;
11
12 unsigned int ccblen;
13 caddr_t ccb;
14};
15#define SCSICMD _IOWR('a', 150, struct scsicmd)
16
17/* write regs */
18#define AS_CONTROL 0
19#define AS_DATA_OUT 1
20
21/* read regs */
22#define AS_STATUS 0
23#define AS_DATA_IN 1
24#define AS_INTR 2
25
26/* control port bits */
27#define AS_CONTROL_HRST 0x80 /* hard reset */
28#define AS_CONTROL_SRST 0x40 /* soft reset */
29#define AS_CONTROL_IRST 0x20 /* interrupt reset */
30#define AS_CONTROL_SCRST 0x10 /* scsi bus reset */
31
32/* status port bits */
33#define AS_STATUS_STST 0x80 /* self test in progress */
34#define AS_STATUS_DIAGF 0x40 /* internal diagnostic failure */
35#define AS_STATUS_INIT 0x20 /* mailbox initialization required */
36#define AS_STATUS_IDLE 0x10 /* scsi host adapter idle */
37#define AS_STATUS_CDF 0x08 /* command/data out port full */
38#define AS_STATUS_DF 0x04 /* data in port full */
39/* 0x02 reserved */
40#define AS_STATUS_INVDCMD 0x01 /* invalid host adapter command */
41
42/* interrupt port bits */
43#define AS_INTR_ANY 0x80
44#define AS_INTR_SCRD 0x08 /* scsi reset detected */
45#define AS_INTR_HACC 0x04 /* host adapter command complete */
46#define AS_INTR_MBOA 0x02 /* mailbox out available */
47#define AS_INTR_MBIF 0x01 /* mailbox in available */
48
49/* command bytes */
50#define AS_CMD_NOP 0x00
51#define AS_CMD_MAILBOX_INIT 0x01
52#define AS_CMD_START_SCSI_COMMAND 0x02
53#define AS_CMD_START_BIOS_COMMAND 0x03
54#define AS_CMD_ADAPTER_INQUIRY 0x04
55#define AS_CMD_ENABLE_MBOA_INTR 0x05
56#define AS_CMD_SET_SELECTION_TIMEOUT 0x06
57#define AS_CMD_SET_BUS_ON_TIME 0x07
58#define AS_CMD_SET_BUS_OFF_TIME 0x08
59#define AS_CMD_SET_TRANSFER_SPEED 0x09
60#define AS_CMD_RETURN_INSTALLED_DEVICES 0x0a
61#define AS_CMD_RETURN_CONFIGURATION_DATA 0x0b
62#define AS_CMD_ENABLE_TARGET_MODE 0x0c
63#define AS_CMD_RETURN_SETUP_DATA 0x0d
64#define AS_CMD_WRITE_ADAPTER_CHANNEL_2_BUFFER 0x1a
65#define AS_CMD_READ_ADAPTER_CHANNEL_2_BUFGFER 0x1b
66#define AS_CMD_WRITE_ADAPTER_FIFO_BUFFER 0x1c
67#define AS_CMD_READ_ADAPTER_FIFO_BUFFER 0x1d
68#define AS_CMD_ECHO 0x1f
69#define AS_CMD_ADAPTER_DIAG 0x20
70#define AS_CMD_SET_ADAPTER_OPTIONS 0x21
71
72struct mailbox_entry {
73 unsigned char cmd;
74 unsigned char msb;
75 unsigned char mid;
76 unsigned char lsb;
77};
78
79#define MAXCDB 50
80#define MAXSENSE 100
81
82struct ccb {
83 unsigned char ccb_opcode;
84 unsigned char ccb_addr_and_control;
85 unsigned char ccb_scsi_command_len;
86 unsigned char ccb_requst_sense_allocation_len;
87 unsigned char ccb_data_len_msb;
88 unsigned char ccb_data_len_mid;
89 unsigned char ccb_data_len_lsb;
90 unsigned char ccb_data_ptr_msb;
91 unsigned char ccb_data_ptr_mid;
92 unsigned char ccb_data_ptr_lsb;
93 unsigned char ccb_link_msb;
94 unsigned char ccb_link_mid;
95 unsigned char ccb_link_lsb;
96 unsigned char ccb_link_id;
97 unsigned char ccb_host_status;
98 unsigned char ccb_target_status;
99 unsigned char ccb_zero1;
100 unsigned char ccb_zero2;
101 unsigned char ccb_cdb[MAXCDB + MAXSENSE];
102};
103#define ccb_sense(ccb) ((ccb)->ccb_cdb + (ccb)->ccb_scsi_command_len)
104