Module Name: src
Committed By: tsutsui
Date: Mon Jul 5 14:51:23 UTC 2021
Modified Files:
src/sys/arch/hp300/dev: ct.c ctreg.h hpibvar.h rd.c rdreg.h rdvar.h
src/sys/arch/hp300/stand/common: ct.c hpibvar.h rd.c
Log Message:
Cleanup duplicated CS/80 indentify structures. From OpenBSD.
https://marc.info/?l=openbsd-cvs&m=113227249626888&w=2
> Define the CS/80 identify structure only once and correctly, instead of
> duplicating it in every CS/80 driver and using an hardcoded number for
> its size.
> No functional change.
https://marc.info/?l=openbsd-cvs&m=113273001020159&w=2
> Pick HP-IB describe structures changes from main kernel code here as well.
To generate a diff of this commit:
cvs rdiff -u -r1.62 -r1.63 src/sys/arch/hp300/dev/ct.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/hp300/dev/ctreg.h
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/hp300/dev/hpibvar.h
cvs rdiff -u -r1.106 -r1.107 src/sys/arch/hp300/dev/rd.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/hp300/dev/rdreg.h
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/hp300/dev/rdvar.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/hp300/stand/common/ct.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/hp300/stand/common/hpibvar.h
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/hp300/stand/common/rd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/hp300/dev/ct.c
diff -u src/sys/arch/hp300/dev/ct.c:1.62 src/sys/arch/hp300/dev/ct.c:1.63
--- src/sys/arch/hp300/dev/ct.c:1.62 Mon Jul 5 14:03:46 2021
+++ src/sys/arch/hp300/dev/ct.c Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ct.c,v 1.62 2021/07/05 14:03:46 tsutsui Exp $ */
+/* $NetBSD: ct.c,v 1.63 2021/07/05 14:51:23 tsutsui Exp $ */
/*-
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -75,7 +75,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ct.c,v 1.62 2021/07/05 14:03:46 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ct.c,v 1.63 2021/07/05 14:51:23 tsutsui Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -257,7 +257,7 @@ ctattach(device_t parent, device_t self,
static int
ctident(device_t parent, struct ct_softc *sc, struct hpibbus_attach_args *ha)
{
- struct ct_describe desc;
+ struct cs80_describe desc;
u_char stat, cmd[3];
char name[7];
int i, id, n, type, canstream;
@@ -284,9 +284,10 @@ ctident(device_t parent, struct ct_softc
cmd[1] = C_SVOL(0);
cmd[2] = C_DESC;
hpibsend(device_unit(parent), ha->ha_slave, C_CMD, cmd, sizeof(cmd));
- hpibrecv(device_unit(parent), ha->ha_slave, C_EXEC, &desc, 37);
+ hpibrecv(device_unit(parent), ha->ha_slave, C_EXEC, &desc,
+ sizeof(desc));
hpibrecv(device_unit(parent), ha->ha_slave, C_QSTAT, &stat,
- sizeof(stat));
+ sizeof(stat));
memset(name, 0, sizeof(name));
if (stat == 0) {
Index: src/sys/arch/hp300/dev/ctreg.h
diff -u src/sys/arch/hp300/dev/ctreg.h:1.10 src/sys/arch/hp300/dev/ctreg.h:1.11
--- src/sys/arch/hp300/dev/ctreg.h:1.10 Sun Dec 11 12:17:13 2005
+++ src/sys/arch/hp300/dev/ctreg.h Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ctreg.h,v 1.10 2005/12/11 12:17:13 christos Exp $ */
+/* $NetBSD: ctreg.h,v 1.11 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1982, 1990, 1993
@@ -98,30 +98,6 @@ struct ct_clearcmd {
char cmd;
};
-struct ct_describe {
- u_int d_iuw:16, /* controller: installed unit word */
- d_cmaxxfr:16, /* controller: max transfer rate (Kb) */
- d_ctype:8, /* controller: controller type */
- d_utype:8, /* unit: unit type */
- d_name:24, /* unit: name (6 BCD digits) */
- d_sectsize:16, /* unit: # of bytes per block (sector) */
- d_blkbuf:8, /* unit: # of blocks which can be buffered */
- d_burstsize:8, /* unit: recommended burst size */
- d_blocktime:16, /* unit: block time (u-sec) */
- d_uavexfr:16, /* unit: average transfer rate (Kb) */
- d_retry:16, /* unit: optimal retry time (1/100-sec) */
- d_access:16, /* unit: access time param (1/100-sec) */
- d_maxint:8, /* unit: maximum interleave */
- d_fvbyte:8, /* unit: fixed volume byte */
- d_rvbyte:8, /* unit: removable volume byte */
- d_maxcyl:24, /* volume: maximum cylinder */
- d_maxhead:8, /* volume: maximum head */
- d_maxsect:16, /* volume: maximum sector on track */
- d_maxvsecth:16, /* volume: maximum sector on volume (MSW) */
- d_maxvsectl:32, /* volume: maximum sector on volume (LSWs) */
- d_interleave:8; /* volume: current interleave */
- };
-
#define CT7946ID 0x220
#define CT9145ID 0x268
#define CT9144ID 0x260
Index: src/sys/arch/hp300/dev/hpibvar.h
diff -u src/sys/arch/hp300/dev/hpibvar.h:1.22 src/sys/arch/hp300/dev/hpibvar.h:1.23
--- src/sys/arch/hp300/dev/hpibvar.h:1.22 Mon Jul 5 14:03:46 2021
+++ src/sys/arch/hp300/dev/hpibvar.h Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hpibvar.h,v 1.22 2021/07/05 14:03:46 tsutsui Exp $ */
+/* $NetBSD: hpibvar.h,v 1.23 2021/07/05 14:51:23 tsutsui Exp $ */
/*-
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -60,8 +60,6 @@
* @(#)hpibvar.h 8.1 (Berkeley) 6/10/93
*/
-#include <sys/queue.h>
-
#define HPIB_IPL(x) ((((x) >> 4) & 0x3) + 3)
#define HPIBA 32
@@ -93,6 +91,36 @@
#define C_UNT_P 0xdf /* with odd parity */
#define C_SCG 0x60 /* Secondary group commands */
+/*
+ * Description structure for CS/80 devices.
+ */
+struct cs80_describe {
+ u_int d_iuw:16, /* controller: installed unit word */
+ d_cmaxxfr:16, /* controller: max transfer rate (Kb) */
+ d_ctype:8, /* controller: controller type */
+ d_utype:8, /* unit: unit type */
+ d_name:24, /* unit: name (6 BCD digits) */
+ d_sectsize:16, /* unit: # of bytes per block (sector) */
+ d_blkbuf:8, /* unit: # of blocks which can be buffered */
+ d_burstsize:8, /* unit: recommended burst size */
+ d_blocktime:16, /* unit: block time (u-sec) */
+ d_uavexfr:16, /* unit: average transfer rate (Kb) */
+ d_retry:16, /* unit: optimal retry time (1/100-sec) */
+ d_access:16, /* unit: access time param (1/100-sec) */
+ d_maxint:8, /* unit: maximum interleave */
+ d_fvbyte:8, /* unit: fixed volume byte */
+ d_rvbyte:8, /* unit: removable volume byte */
+ d_maxcyl:24, /* volume: maximum cylinder */
+ d_maxhead:8, /* volume: maximum head */
+ d_maxsect:16, /* volume: maximum sector on track */
+ d_maxvsecth:16, /* volume: maximum sector on volume (MSW) */
+ d_maxvsectl:32, /* volume: maximum sector on volume (LSWs) */
+ d_interleave:8; /* volume: current interleave */
+} __attribute__((__packed__));
+
+#ifdef _KERNEL
+#include <sys/queue.h>
+
struct hpibbus_softc;
/*
@@ -184,7 +212,6 @@ struct hpibbus_softc {
#define HPIBF_TIMO 0x10
#define HPIBF_DMA16 0x8000
-#ifdef _KERNEL
extern void *internalhpib;
extern int hpibtimeout;
extern int hpibdmathresh;
Index: src/sys/arch/hp300/dev/rd.c
diff -u src/sys/arch/hp300/dev/rd.c:1.106 src/sys/arch/hp300/dev/rd.c:1.107
--- src/sys/arch/hp300/dev/rd.c:1.106 Mon Jul 5 14:15:16 2021
+++ src/sys/arch/hp300/dev/rd.c Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rd.c,v 1.106 2021/07/05 14:15:16 tsutsui Exp $ */
+/* $NetBSD: rd.c,v 1.107 2021/07/05 14:51:23 tsutsui Exp $ */
/*-
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -72,7 +72,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rd.c,v 1.106 2021/07/05 14:15:16 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rd.c,v 1.107 2021/07/05 14:51:23 tsutsui Exp $");
#include "opt_useleds.h"
@@ -178,7 +178,7 @@ static const char *err_info[] = {
#define RDB_IO 0x08
#define RDB_ASYNC 0x10
#define RDB_ERROR 0x80
-int rddebug = HDB_ERROR | HDB_IDENT;
+int rddebug = RDB_ERROR | RDB_IDENT;
#endif
/*
@@ -381,7 +381,7 @@ rdattach(device_t parent, device_t self,
static int
rdident(device_t parent, struct rd_softc *sc, struct hpibbus_attach_args *ha)
{
- struct rd_describe *desc = sc != NULL ? &sc->sc_rddesc : NULL;
+ struct cs80_describe desc;
u_char stat, cmd[3];
char name[7];
int i, id, n, ctlr, slave;
@@ -416,11 +416,11 @@ rdident(device_t parent, struct rd_softc
cmd[1] = C_SVOL(0);
cmd[2] = C_DESC;
hpibsend(ctlr, slave, C_CMD, cmd, sizeof(cmd));
- hpibrecv(ctlr, slave, C_EXEC, desc, 37);
+ hpibrecv(ctlr, slave, C_EXEC, &desc, sizeof(desc));
hpibrecv(ctlr, slave, C_QSTAT, &stat, sizeof(stat));
memset(name, 0, sizeof(name));
if (stat == 0) {
- n = desc->d_name;
+ n = desc.d_name;
for (i = 5; i >= 0; i--) {
name[i] = (n & 0xf) + '0';
n >>= 4;
@@ -431,21 +431,21 @@ rdident(device_t parent, struct rd_softc
if (rddebug & RDB_IDENT) {
aprint_normal("\n");
aprint_normal_dev(sc->sc_dev, "id: 0x%04x, name: %x ('%s')\n",
- ha->ha_id, desc->d_name, name);
+ ha->ha_id, desc.d_name, name);
aprint_normal(" iuw %x, maxxfr %d, ctype %d\n",
- desc->d_iuw, desc->d_cmaxxfr, desc->d_ctype);
+ desc.d_iuw, desc.d_cmaxxfr, desc.d_ctype);
aprint_normal(" utype %d, bps %d, blkbuf %d, burst %d,"
" blktime %d\n",
- desc->d_utype, desc->d_sectsize,
- desc->d_blkbuf, desc->d_burstsize, desc->d_blocktime);
+ desc.d_utype, desc.d_sectsize,
+ desc.d_blkbuf, desc.d_burstsize, desc.d_blocktime);
aprint_normal(" avxfr %d, ort %d, atp %d, maxint %d, fv %x"
", rv %x\n",
- desc->d_uavexfr, desc->d_retry, desc->d_access,
- desc->d_maxint, desc->d_fvbyte, desc->d_rvbyte);
+ desc.d_uavexfr, desc.d_retry, desc.d_access,
+ desc.d_maxint, desc.d_fvbyte, desc.d_rvbyte);
aprint_normal(" maxcyl/head/sect %d/%d/%d, maxvsect %d,"
" inter %d\n",
- desc->d_maxcyl, desc->d_maxhead, desc->d_maxsect,
- desc->d_maxvsectl, desc->d_interleave);
+ desc.d_maxcyl, desc.d_maxhead, desc.d_maxsect,
+ desc.d_maxvsectl, desc.d_interleave);
aprint_normal("%s", device_xname(sc->sc_dev));
}
#endif
Index: src/sys/arch/hp300/dev/rdreg.h
diff -u src/sys/arch/hp300/dev/rdreg.h:1.14 src/sys/arch/hp300/dev/rdreg.h:1.15
--- src/sys/arch/hp300/dev/rdreg.h:1.14 Tue May 18 15:21:41 2021
+++ src/sys/arch/hp300/dev/rdreg.h Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rdreg.h,v 1.14 2021/05/18 15:21:41 tsutsui Exp $ */
+/* $NetBSD: rdreg.h,v 1.15 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -103,30 +103,6 @@ struct rd_clearcmd {
char c_cmd;
} __attribute__((__packed__));
-struct rd_describe {
- u_int d_iuw:16, /* controller: installed unit word */
- d_cmaxxfr:16, /* controller: max transfer rate (Kb) */
- d_ctype:8, /* controller: controller type */
- d_utype:8, /* unit: unit type */
- d_name:24, /* unit: name (6 BCD digits) */
- d_sectsize:16, /* unit: # of bytes per block (sector) */
- d_blkbuf:8, /* unit: # of blocks which can be buffered */
- d_burstsize:8, /* unit: recommended burst size */
- d_blocktime:16, /* unit: block time (u-sec) */
- d_uavexfr:16, /* unit: average transfer rate (Kb) */
- d_retry:16, /* unit: optimal retry time (1/100-sec) */
- d_access:16, /* unit: access time param (1/100-sec) */
- d_maxint:8, /* unit: maximum interleave */
- d_fvbyte:8, /* unit: fixed volume byte */
- d_rvbyte:8, /* unit: removable volume byte */
- d_maxcyl:24, /* volume: maximum cylinder */
- d_maxhead:8, /* volume: maximum head */
- d_maxsect:16, /* volume: maximum sector on track */
- d_maxvsecth:16, /* volume: maximum sector on volume (MSW) */
- d_maxvsectl:32, /* volume: maximum sector on volume (LSWs) */
- d_interleave:8; /* volume: current interleave */
-} __attribute__((__packed__));
-
/* HW ids */
#define RD7946AID 0x220 /* also 7945A */
#define RD9134DID 0x221 /* also 9122S */
Index: src/sys/arch/hp300/dev/rdvar.h
diff -u src/sys/arch/hp300/dev/rdvar.h:1.24 src/sys/arch/hp300/dev/rdvar.h:1.25
--- src/sys/arch/hp300/dev/rdvar.h:1.24 Fri Jun 4 17:12:08 2021
+++ src/sys/arch/hp300/dev/rdvar.h Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rdvar.h,v 1.24 2021/06/04 17:12:08 tsutsui Exp $ */
+/* $NetBSD: rdvar.h,v 1.25 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -69,7 +69,6 @@ struct rd_softc {
short sc_type;
char *sc_addr;
int sc_resid;
- struct rd_describe sc_rddesc;
struct hpibqueue sc_hq; /* hpib job queue entry */
struct rd_iocmd sc_ioc;
struct rd_rscmd sc_rsc;
Index: src/sys/arch/hp300/stand/common/ct.c
diff -u src/sys/arch/hp300/stand/common/ct.c:1.7 src/sys/arch/hp300/stand/common/ct.c:1.8
--- src/sys/arch/hp300/stand/common/ct.c:1.7 Sun Jul 17 20:54:40 2011
+++ src/sys/arch/hp300/stand/common/ct.c Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ct.c,v 1.7 2011/07/17 20:54:40 joerg Exp $ */
+/* $NetBSD: ct.c,v 1.8 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1982, 1990, 1993
@@ -106,7 +106,7 @@ ctinit(int ctlr, int unit)
int
ctident(int ctlr, int unit)
{
- struct ct_describe desc;
+ struct cs80_describe desc;
uint8_t stat, cmd[3];
char name[7];
int id, i;
@@ -131,7 +131,7 @@ ctident(int ctlr, int unit)
cmd[1] = C_SVOL(0);
cmd[2] = C_DESC;
hpibsend(ctlr, unit, C_CMD, cmd, sizeof(cmd));
- hpibrecv(ctlr, unit, C_EXEC, (uint8_t *)&desc, 37);
+ hpibrecv(ctlr, unit, C_EXEC, (uint8_t *)&desc, sizeof(desc));
hpibrecv(ctlr, unit, C_QSTAT, &stat, sizeof(stat));
memset(name, 0, sizeof(name));
if (!stat) {
Index: src/sys/arch/hp300/stand/common/hpibvar.h
diff -u src/sys/arch/hp300/stand/common/hpibvar.h:1.5 src/sys/arch/hp300/stand/common/hpibvar.h:1.6
--- src/sys/arch/hp300/stand/common/hpibvar.h:1.5 Sun Jun 25 17:37:43 2006
+++ src/sys/arch/hp300/stand/common/hpibvar.h Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: hpibvar.h,v 1.5 2006/06/25 17:37:43 tsutsui Exp $ */
+/* $NetBSD: hpibvar.h,v 1.6 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1982, 1990, 1993
@@ -31,21 +31,7 @@
* @(#)hpibvar.h 8.1 (Berkeley) 6/10/93
*/
-#define HPIBA 32
-#define HPIBB 1
-#define HPIBC 8
-#define HPIBA_BA 21
-#define HPIBC_BA 30
-
-#define CSA_BA 0x1F
-
-#define C_DCL 20
-#define C_LAG 32
-#define C_UNL 63
-#define C_TAG 64
-#define C_UNA 94
-#define C_UNT 95
-#define C_SCG 96
+#include <hp300/dev/hpibvar.h>
struct hpib_softc {
char sc_alive;
Index: src/sys/arch/hp300/stand/common/rd.c
diff -u src/sys/arch/hp300/stand/common/rd.c:1.10 src/sys/arch/hp300/stand/common/rd.c:1.11
--- src/sys/arch/hp300/stand/common/rd.c:1.10 Sun Jul 17 20:54:40 2011
+++ src/sys/arch/hp300/stand/common/rd.c Mon Jul 5 14:51:23 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rd.c,v 1.10 2011/07/17 20:54:40 joerg Exp $ */
+/* $NetBSD: rd.c,v 1.11 2021/07/05 14:51:23 tsutsui Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -144,7 +144,7 @@ rdreset(int ctlr, int unit)
static int
rdident(int ctlr, int unit)
{
- struct rd_describe desc;
+ struct cs80_describe desc;
uint8_t stat, cmd[3];
char name[7];
int id, i;
@@ -163,7 +163,7 @@ rdident(int ctlr, int unit)
cmd[1] = C_SVOL(0);
cmd[2] = C_DESC;
hpibsend(ctlr, unit, C_CMD, cmd, sizeof(cmd));
- hpibrecv(ctlr, unit, C_EXEC, (uint8_t *)&desc, 37);
+ hpibrecv(ctlr, unit, C_EXEC, (uint8_t *)&desc, sizeof(desc));
hpibrecv(ctlr, unit, C_QSTAT, &stat, sizeof(stat));
memset(name, 0, sizeof(name));
if (!stat) {