82 lines
3.6 KiB
C
82 lines
3.6 KiB
C
/* $NetBSD: hpdefs.h,v 1.1 1995/02/13 00:44:00 ragge Exp $ */
|
|
/*
|
|
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. All advertising materials mentioning features or use of this software
|
|
* must display the following acknowledgement:
|
|
* This product includes software developed at Ludd, University of Lule}.
|
|
* 4. The name of the author may not be used to endorse or promote products
|
|
* derived from this software without specific prior written permission
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/* All bugs are subject to removal without further notice */
|
|
|
|
|
|
|
|
/* hpdefs.h - 940325/ragge */
|
|
|
|
#define HPCS1_DVA 0x800 /* Drive avail, in dual-port config */
|
|
#define HPDS_VV 0x40 /* Volume valid, not changed */
|
|
#define HPDS_DRY 0x80 /* Drive ready to accept commands */
|
|
#define HPDS_DPR 0x100 /* Drive present */
|
|
#define HPDS_PGM 0x200 /* Programmable in dual-port config */
|
|
#define HPDS_WRL 0x800 /* Write locked media */
|
|
#define HPDS_MOL 0x1000 /* Medium on-line */
|
|
#define HPDT_DRQ 0x800 /* Dual-port disk */
|
|
|
|
/*
|
|
* Drive status, per drive
|
|
*/
|
|
struct hp_info {
|
|
daddr_t hp_dsize; /* size in sectors */
|
|
/* u_long hp_type; /* drive type */
|
|
u_long hp_mediaid; /* media id */
|
|
int hp_state; /* open/closed state */
|
|
struct hp_geom { /* geometry information */
|
|
u_short rg_nsectors; /* sectors/track */
|
|
u_short rg_ngroups; /* track groups */
|
|
u_short rg_ngpc; /* groups/cylinder */
|
|
u_short rg_ntracks; /* ngroups*ngpc */
|
|
u_short rg_ncyl; /* ra_dsize/ntracks/nsectors */
|
|
#ifdef notyet
|
|
u_short rg_rctsize; /* size of rct */
|
|
u_short rg_rbns; /* replacement blocks per track */
|
|
u_short rg_nrct; /* number of rct copies */
|
|
#endif
|
|
} hp_geom;
|
|
int hp_wlabel; /* label sector is currently writable */
|
|
u_long hp_openpart; /* partitions open */
|
|
u_long hp_bopenpart; /* block partitions open */
|
|
u_long hp_copenpart; /* character partitions open */
|
|
};
|
|
|
|
/*
|
|
* Device to unit number and partition and back
|
|
*/
|
|
#define UNITSHIFT 3
|
|
#define UNITMASK 7
|
|
#define hpunit(dev) (minor(dev) >> UNITSHIFT)
|
|
#define hppart(dev) (minor(dev) & UNITMASK)
|
|
#define hpminor(u, p) (((u) << UNITSHIFT) | (p))
|
|
|