Home | History | Annotate | Line # | Download | only in scsipi
scsi_ctron_ether.h revision 1.2
      1 /*	$NetBSD: scsi_ctron_ether.h,v 1.2 1997/03/24 00:04:55 thorpej Exp $	*/
      2 
      3 /*
      4  * SCSI interface description
      5  */
      6 
      7 
      8 /*
      9  * SCSI command format
     10  */
     11 
     12 #ifndef	_SCSI_CTRON_ETHER_H
     13 #define _SCSI_CTRON_ETHER_H 1
     14 
     15 #define CTRON_ETHERCMD2(OP, SUB) {OP, SUB}
     16 #define CTRON_ETHER_SEND CTRON_ETHERCMD2(0xc, 0x1)
     17 #define CTRON_ETHER_RECV 0xe1
     18 #define CTRON_ETHER_GET_ADDR CTRON_ETHERCMD2(0xc, 0x4)
     19 #define CTRON_ETHER_ADD_PROTO CTRON_ETHERCMD2(0xd, 0x1)
     20 #define CTRON_ETHER_REM_PROTO CTRON_ETHERCMD2(0xd, 0x2)
     21 #define CTRON_ETHER_SET_MODE CTRON_ETHERCMD2(0xd, 0x3)
     22 #define CTRON_ETHER_SET_MULTI CTRON_ETHERCMD2(0xd, 0x4)
     23 #define CTRON_ETHER_REMOVE_MULTI CTRON_ETHERCMD2(0xd, 0x5)
     24 #define CTRON_ETHER_GET_STATS CTRON_ETHERCMD2(0xd, 0x6)
     25 #define CTRON_ETHER_SET_MEDIA CTRON_ETHERCMD2(0xd, 0x07)
     26 #define CTRON_ETHER_GET_MEDIA CTRON_ETHERCMD2(0xd, 0x08)
     27 #define CTRON_ETHER_SET_ADDR CTRON_ETHERCMD2(0xd, 0xA)
     28 #define CTRON_ETHER_LOAD_IMAGE CTRON_ETHERCMD2(0xd, 0x09)
     29 #define IS_RECV(generic) ((generic)->opcode == 0xe1)
     30 #define IS_SEND(generic) ((generic)->opcode == 0xc && (generic)->bytes[0] == 0x1)
     31 
     32 struct scsi_ctron_ether_recv {
     33 	u_int8_t opcode;	/* This really *is* all */
     34 };
     35 
     36 struct scsi_ctron_ether_generic {
     37 	u_int8_t opcode[2];
     38 	u_int8_t byte3;
     39 	u_int8_t length[2];
     40 	u_int8_t byte6;
     41 };
     42 
     43 struct scsi_ctron_ether_set_mode {
     44 	u_int8_t opcode[2];
     45 	u_int8_t mode;
     46 	u_int8_t length[2];
     47 	u_int8_t byte6;
     48 };
     49 
     50 
     51 struct ctron_stats {
     52     u_int32_t  frames_xmit;
     53     u_int32_t  bytes_xmit;
     54     u_int32_t  ucast_xmit;			/* never incremented? */
     55     u_int32_t  mcast_xmit;			/* gets ucasts and mcasts?? */
     56     u_int32_t  bcast_xmit;
     57     u_int32_t  defer_xmit;
     58     u_int32_t  sgl_coll;
     59     u_int32_t  multi_coll;
     60     u_int32_t  tot_xmit_err;
     61     u_int32_t  late_coll;
     62     u_int32_t  excess_coll;
     63     u_int32_t  int_err_xmit;
     64     u_int32_t  carr_err;
     65     u_int32_t  media_abort;
     66     u_int32_t  frames_rec;
     67     u_int32_t  bytes_rec;
     68     u_int32_t  ucast_rec;			/* never incremented? */
     69     u_int32_t  mcast_rec;			/* gets ucasts and mcasts?? */
     70     u_int32_t  bcast_rec;
     71     u_int32_t  tot_rec_err;
     72     u_int32_t  too_long;
     73     u_int32_t  too_short;
     74     u_int32_t  align_err;
     75     u_int32_t  crc_err;
     76     u_int32_t  len_err;
     77     u_int32_t  int_err_rec;
     78     u_int32_t  sqe_err;
     79 };
     80 
     81 struct scsi_ctron_ether_inquiry_data {
     82 /* standard; */
     83     u_int8_t device;			/* 3 (T_CPU) */
     84     u_int8_t dev_qual2;			/* 0 (fixed) */
     85     u_int8_t version;			/* 0 */
     86     u_int8_t response_format;			/* 0 */
     87     u_int8_t additional_len;		/* 75!! */
     88     u_int8_t unused[2];			/* 0, 0 */
     89     u_int8_t flags;			/* 0x18 (sync+linked!?) */
     90     char vendor[8];			/* ie; "Cabletrn" or "CABLETRN" */
     91     char product[16];			/* ie; "EA412/...." */
     92     char revision[4];			/* ie; "0100" or "1.00" */
     93     char extra[8];			/* ie; "00.00.19" or "01.00.00" */
     94 /* non-standard; */
     95     u_int8_t hwaddr[6];			/* PROM ethernet addr */
     96     u_int8_t swaddr[6];			/* curr ethernet addr */
     97     char date[22];			/* firmware date string (asciz) */
     98     u_int8_t mtype;			/* media type?? */
     99     u_int8_t hwport;			/* value of h/w read port?? */
    100 };
    101 
    102 enum scsi_ctron_ether_media {
    103     CMEDIA_PRIMARY=0,			/* twisted pair */
    104     CMEDIA_SECONDARY=1,			/* coax */
    105     CMEDIA_AUTOSENSE=2			/* set_media command only */
    106 };
    107 
    108 #endif /* _SCSI_CTRON_ETHER_H */
    109