157331Shibler /* 257331Shibler * Copyright (c) 1988 University of Utah. 3*63151Sbostic * Copyright (c) 1982, 1990, 1993 4*63151Sbostic * The Regents of the University of California. All rights reserved. 557331Shibler * 657331Shibler * This code is derived from software contributed to Berkeley by 757331Shibler * the Systems Programming Group of the University of Utah Computer 857331Shibler * Science Department. 957331Shibler * 1057331Shibler * %sccs.include.redist.c% 1157331Shibler * 1257331Shibler * from: Utah $Hdr: rdvar.h 1.1 92/12/21$ 1357331Shibler * 14*63151Sbostic * @(#)rdvar.h 8.1 (Berkeley) 06/10/93 1557331Shibler */ 1657331Shibler 1757331Shibler struct rdidentinfo { 1857331Shibler short ri_hwid; /* 2 byte HW id */ 1957331Shibler short ri_maxunum; /* maximum allowed unit number */ 2057331Shibler char *ri_desc; /* drive type description */ 2157331Shibler int ri_nblocks; /* DEV_BSIZE blocks on disk */ 2257331Shibler }; 2357331Shibler 2457331Shibler struct rdinfo { 2557331Shibler struct disklabel ri_label; /* label */ 2657331Shibler int ri_bopen; /* mask of open block devs */ 2757331Shibler int ri_copen; /* mask of open char devs */ 2857331Shibler int ri_open; /* composite mask of open devs */ 2957331Shibler }; 3057331Shibler 3157331Shibler struct rd_softc { 3257331Shibler struct hp_device *sc_hd; 3357331Shibler int sc_flags; 3457331Shibler short sc_type; 3557331Shibler short sc_punit; 3657331Shibler char *sc_addr; 3757331Shibler int sc_resid; 3857331Shibler u_int sc_wpms; 3957331Shibler struct rdinfo sc_info; 4057331Shibler struct devqueue sc_dq; 4157331Shibler struct rd_iocmd sc_ioc; 4257331Shibler struct rd_rscmd sc_rsc; 4357331Shibler struct rd_stat sc_stat; 4457331Shibler struct rd_ssmcmd sc_ssmc; 4557331Shibler struct rd_srcmd sc_src; 4657331Shibler struct rd_clearcmd sc_clear; 4757331Shibler }; 4857331Shibler 4957331Shibler /* sc_flags values */ 5057331Shibler #define RDF_ALIVE 0x01 5157331Shibler #define RDF_SEEK 0x02 5257331Shibler #define RDF_SWAIT 0x04 5357331Shibler #define RDF_OPENING 0x08 5457331Shibler #define RDF_CLOSING 0x10 5557331Shibler #define RDF_WANTED 0x20 5657331Shibler #define RDF_WLABEL 0x40 5757331Shibler 5857331Shibler struct rdstats { 5957331Shibler long rdretries; 6057331Shibler long rdresets; 6157331Shibler long rdtimeouts; 6257331Shibler long rdpolltries; 6357331Shibler long rdpollwaits; 6457331Shibler }; 6557331Shibler 6657331Shibler #define rdunit(x) (minor(x) >> 3) 6757331Shibler #define rdpart(x) (minor(x) & 0x7) 6857331Shibler #define rdpunit(x) ((x) & 7) 6957331Shibler #define rdlabdev(d) (dev_t)(((int)(d)&~7)|2) /* rd?c */ 7057331Shibler 7157331Shibler #define b_cylin b_resid 7257331Shibler 7357331Shibler #define RDRETRY 5 7457331Shibler #define RDWAITC 1 /* min time for timeout in seconds */ 75