xref: /csrg-svn/sys/hp300/dev/rdvar.h (revision 63151)
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