now REALLY the new version from glaser
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Thu, 29 Aug 1985 06:50:37 +0000 (22:50 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Thu, 29 Aug 1985 06:50:37 +0000 (22:50 -0800)
SCCS-vsn: sys/vax/if/if_hyreg.h 6.4

usr/src/sys/vax/if/if_hyreg.h

index bbdd4e6..13d5664 100644 (file)
@@ -1,11 +1,16 @@
 /*
 /*
- * Copyright (c) 1982 Regents of the University of California.
- * All rights reserved.  The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
+ *     @(#)if_hyreg.h  6.4 (Berkeley) %G%
+ *
+ * $Header: if_hyreg.h,v 10.0 84/06/30 19:51:34 steveg Stable $
+ * $Locker:  $
+ *
+ * Modifications from Berkeley 4.2 BSD
+ * Copyright (c) 1983, Tektronix Inc.
+ * All Rights Reserved
  *
  *
- *     @(#)if_hyreg.h  6.3 (Berkeley) %G%
  */
 
  */
 
+
 /*
  * Network Systems Corporation Hyperchannel interface
  *
 /*
  * Network Systems Corporation Hyperchannel interface
  *
  * The first adapters at Tek came with DR11Bs, and the code once worked,
  * but those have been upgraded to PI-13s.
  */
  * The first adapters at Tek came with DR11Bs, and the code once worked,
  * but those have been upgraded to PI-13s.
  */
-#define        PI13    1       /* PI13 vs. DR11B device depandant code */
-#ifndef HYLOG
-#define HYLOG  1       /* enable logging of errors */
-#endif
-
-/*
- * Structure of a HYPERchannel adapter header
- */
-struct hy_hdr {
-       short   hyh_ctl;        /* control */
-       short   hyh_access;     /* access code */
-       union {                 /* to/from addresses */
-               short   hyh_addr;       /* full address */
-               char    hyh_baddr[2];   /* adapter/port number from address */
-       } hyhu_to, hyhu_from;
-#define        hyh_to          hyhu_to.hyh_addr
-#define        hyh_from        hyhu_from.hyh_addr
-#define        hyh_to_adapter  hyhu_to.hyh_baddr[0]
-#define        hyh_to_port     hyhu_to.hyh_baddr[1]
-#define        hyh_from_adapter hyhu_from.hyh_baddr[0]
-#define        hyh_from_port   hyhu_from.hyh_baddr[1]
-       short   hyh_param;      /* parameter (for loopback) */
-       char    hyh_type;       /* record type */
-       char    hyh_off;        /* offset from end of hy_hdr to ip data */
-};
-
-/*
- * Structure of a HYPERchannel message header (from software)
- */
-struct hym_data {
-       short   hymd_mplen;     /* message proper length, if associated data */
-};
-
-struct hym_hdr {
-       struct  hym_data hym_d;
-#define hym_mplen hym_d.hymd_mplen
-       struct  hy_hdr hym_hdr; /* hardware header, MUST BE LAST */
-};
-
-/*
- * HYPERchannel header word control bits
- */
-#define        H_XTRUNKS       0x00F0  /* transmit trunks */
-#define H_RTRUNKS      0x000F  /* remote trunks to transmit on for loopback */
-#define H_ASSOC                0x0100  /* has associated data */
-#define H_LOOPBK       0x00FF  /* loopback command */
-
-/*
- * Structure of Statistics Record (counters)
- */
-struct hy_stat {
-       u_long  hyc_msgcnt;             /* # messages transmitted */
-       u_long  hyc_dbcnt;              /* # data buffers transmitted */
-       u_long  hyc_tbusy;              /* # available trunks busy */
-       u_long  hyc_hwret;              /* # hardware retransmits */
-       u_long  hyc_crcbad;             /* # crc errors on trunk */
-       u_long  hyc_mcret;              /* # microcode retransmits */
-       u_long  hyc_tdabort;            /* # trunk driver aborts */
-       u_char  hyc_atype[3];           /* adapter type and revision level */
-       u_char  hyc_uaddr;              /* adapter unit number */
-};
-
-/*
- * Structure of the Status Record
- */
-struct hy_status {
-       u_char  hys_gen_status;         /* general status byte */
-       u_char  hys_last_fcn;           /* last function code issued */
-       u_char  hys_resp_trunk;         /* trunk response byte */
-       u_char  hys_status_trunk;       /* trunk status byte */
-       u_char  hys_recd_resp;          /* recieved response byte */
-       u_char  hys_error;              /* error code */
-       u_char  hys_caddr;              /* compressed addr of 1st msg on chain */
-       u_char  hys_pad;                /* not used */
-};
-
-/*
- * Get port number from status record
- */
-#define PORTNUM(p)     (((p)->hys_gen_status >> 6) & 0x03)
 
 /*
  * The HYPERchannel driver sends and receives messages formatted:
 
 /*
  * The HYPERchannel driver sends and receives messages formatted:
@@ -214,7 +139,9 @@ struct      hydevice {
 
 #define XBASHIFT       12
 
 
 #define XBASHIFT       12
 
-#define HY_CSR_BITS "\20\20ERROR\17NEX\16ATTN\15STKINTR\14RECV_DATA\13NORMAL\12ABNORMAL\11POWER\10READY\07IENABLE\06XBA17\05XBA16\04IATTN\03IWC\02BURST\01GO"
+#define HY_CSR_BITS "\20\
+\20ERROR\17NEX\16ATTN\15STKINTR\14RECV_DATA\13NORMAL\12ABNORMAL\11POWER\
+\10READY\07IENABLE\06XBA17\05XBA16\04IATTN\03IWC\02BURST\01GO"
 
 /*
  * PI13 status conditions
 
 /*
  * PI13 status conditions
@@ -256,40 +183,3 @@ struct     hydevice {
 #define        HYF_END_OP      0xE4    /* end operation */
 #define        HYF_CLRWFMSG    0xE6    /* clear wait for mwssage */
 #define        HYF_WAITFORMSG  0xE8    /* wait for message */
 #define        HYF_END_OP      0xE4    /* end operation */
 #define        HYF_CLRWFMSG    0xE6    /* clear wait for mwssage */
 #define        HYF_WAITFORMSG  0xE8    /* wait for message */
-
-/*
- * Hyperchannel record types
- */
-#define        HYLINK_IP       0       /* Internet Protocol Packet */
-
-#ifdef HYLOG
-#define HYL_SIZE 16*1024
-struct hy_log {
-       struct  hy_log *hyl_self;
-       u_char  hyl_enable;             /* logging enabled? */
-       u_char  hyl_onerr;              /* state to enter on error */
-       u_char  *hyl_eptr;              /* &hy_log.hyl_buf[HYL_SIZE] */
-       u_char  *hyl_ptr;               /* pointer into hyl_buf */
-       u_char  hyl_buf[HYL_SIZE];      /* log buffer space */
-};
-
-#define HYL_NOP                0
-#define HYL_UP         1       /* markup */
-#define HYL_STATUS     2       /* status results (struct hy_status) */
-#define HYL_STATISTICS 3       /* statistics (struct hy_stat) */
-#define HYL_XMIT       4       /* packed being send (struct hym_hdr) */
-#define HYL_RECV       5       /* recieved packet (short len; struct hy_hdr) */
-#define HYL_CMD                6       /* cmd issued (uchar cmd, state; short count) */
-#define HYL_INT                7       /* interrupt (short csr, wcr) */
-
-#define HYL_DISABLED   0       /* logging disabled */
-#define HYL_CONTINUOUS 1       /* continuous logging */
-#define HYL_CAUGHT1    2       /* one buffer full captured */
-#define HYL_CATCH1     3       /* one buffer full being captured */
-#define HYL_CAUGHTSTATUS  4    /* one buffer of status captured */
-#define HYL_CATCHSTATUS        5       /* one buffer fill of status being captured */
-
-#ifdef  KERNEL
-struct hy_log hy_log;
-#endif
-#endif