sdvar.h revision 1.3
1/* $NetBSD: sdvar.h,v 1.3 1998/02/13 08:28:57 enami Exp $ */ 2 3/* 4 * Copyright (c) 1994, 1995, 1997 Charles M. Hannum. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. All advertising materials mentioning features or use of this software 15 * must display the following acknowledgement: 16 * This product includes software developed by Charles M. Hannum. 17 * 4. The name of the author may not be used to endorse or promote products 18 * derived from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 29 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32/* 33 * Originally written by Julian Elischer (julian@dialix.oz.au) 34 * for TRW Financial Systems for use under the MACH(2.5) operating system. 35 * 36 * TRW Financial Systems, in accordance with their agreement with Carnegie 37 * Mellon University, makes this software available to CMU to distribute 38 * or use in any manner that they see fit as long as this message is kept with 39 * the software. For this reason TFS also grants any other persons or 40 * organisations permission to use or modify this software. 41 * 42 * TFS supplies this software to be publicly redistributed 43 * on the understanding that TFS is not responsible for the correct 44 * functioning of this software in any circumstances. 45 * 46 * Ported to run under 386BSD by Julian Elischer (julian@dialix.oz.au) Sept 1992 47 */ 48 49#define SDRETRIES 4 50 51struct sd_ops; 52 53struct sd_softc { 54 struct device sc_dev; 55 struct disk sc_dk; 56 57 int flags; 58#define SDF_LOCKED 0x01 59#define SDF_WANTED 0x02 60#define SDF_WLABEL 0x04 /* label is writable */ 61#define SDF_LABELLING 0x08 /* writing label */ 62#define SDF_ANCIENT 0x10 /* disk is ancient; for minphys */ 63 struct scsipi_link *sc_link; /* contains our targ, lun, etc. */ 64 struct disk_parms { 65 u_long heads; /* number of heads */ 66 u_long cyls; /* number of cylinders */ 67 u_long sectors; /* number of sectors/track */ 68 u_long blksize; /* number of bytes/sector */ 69 u_long disksize; /* total number sectors */ 70 u_long rot_rate; /* rotational rate, in RPM */ 71 } params; 72 struct buf buf_queue; 73 u_int8_t type; 74 const struct sd_ops *sc_ops; /* our bus-dependent ops vector */ 75 76#if NRND > 0 77 rndsource_element_t rnd_source; 78#endif 79}; 80 81struct sd_ops { 82 int (*sdo_get_parms) __P((struct sd_softc *, struct disk_parms *, 83 int)); 84}; 85#define SDGP_RESULT_OK 0 /* paramters obtained */ 86#define SDGP_RESULT_OFFLINE 1 /* no media, or otherwise losing */ 87#define SDGP_RESULT_UNFORMATTED 2 /* unformatted media (max params) */ 88 89void sdattach __P((struct device *, struct sd_softc *, struct scsipi_link *, 90 const struct sd_ops *)); 91