Annotation of Net2/arch/i386/isa/asreg.h, revision 1.1.1.1

1.1       root        1: struct 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: 
                     72: struct 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: 
                     82: struct 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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.