xref: /csrg-svn/sys/hp300/dev/sdvar.h (revision 63151)
157332Shibler /*
2*63151Sbostic  * Copyright (c) 1990, 1993
3*63151Sbostic  *	The Regents of the University of California.  All rights reserved.
457332Shibler  *
557332Shibler  * This code is derived from software contributed to Berkeley by
657332Shibler  * Van Jacobson of Lawrence Berkeley Laboratory.
757332Shibler  *
857332Shibler  * %sccs.include.redist.c%
957332Shibler  *
10*63151Sbostic  *	@(#)sdvar.h	8.1 (Berkeley) 06/10/93
1157332Shibler  */
1257332Shibler 
1357332Shibler struct sdinfo {
1457332Shibler 	struct	disklabel si_label;	/* label */
1557332Shibler 	int	si_bopen;		/* mask of open block devs */
1657332Shibler 	int	si_copen;		/* mask of open char devs */
1757332Shibler 	int	si_open;		/* composite mask of open devs */
1857332Shibler };
1957332Shibler 
2057332Shibler struct	sd_softc {
2157332Shibler 	struct	hp_device *sc_hd;
2257332Shibler 	struct	devqueue sc_dq;
2357332Shibler 	int	sc_format_pid;	/* process using "format" mode */
2457332Shibler 	short	sc_flags;
2557332Shibler 	short	sc_type;	/* drive type */
2657332Shibler 	short	sc_punit;	/* physical unit (scsi lun) */
2757332Shibler 	u_short	sc_bshift;	/* convert device blocks to DEV_BSIZE blks */
2857332Shibler 	u_int	sc_blks;	/* number of blocks on device */
2957332Shibler 	int	sc_blksize;	/* device block size in bytes */
3057332Shibler 	u_int	sc_wpms;	/* average xfer rate in 16 bit wds/sec. */
3157332Shibler 	struct	sdinfo sc_info;	/* disklabel and related info */
3257332Shibler };
3357332Shibler 
3457332Shibler /* sc_flags values */
3557332Shibler #define	SDF_ALIVE	0x01
3657332Shibler #define SDF_OPENING	0x02
3757332Shibler #define SDF_CLOSING	0x04
3857332Shibler #define SDF_WANTED	0x08
3957332Shibler #define SDF_WLABEL	0x10
4057332Shibler #define SDF_RMEDIA	0x20
4157332Shibler #define SDF_ERROR	0x40
4257332Shibler 
4357332Shibler struct sdstats {
4457332Shibler 	long	sdresets;
4557332Shibler 	long	sdtransfers;
4657332Shibler 	long	sdpartials;
4757332Shibler };
4857332Shibler 
4957332Shibler #define	sdunit(x)	(minor(x) >> 3)
5057332Shibler #define sdpart(x)	(minor(x) & 0x7)
5157332Shibler #define	sdpunit(x)	((x) & 7)
5257332Shibler #define sdlabdev(d)	(dev_t)(((int)(d)&~7)|2)	/* sd?c */
5357332Shibler 
5457332Shibler #define	b_cylin		b_resid
5557332Shibler 
5657332Shibler #define	SDRETRY		2
57