1 /* $NetBSD: dkio.h,v 1.6 2002/01/09 04:12:13 thorpej Exp $ */ 2 3 /* 4 * Copyright (c) 1987, 1988, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by the University of 18 * California, Berkeley and its contributors. 19 * 4. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 */ 35 36 #ifndef _SYS_DKIO_H_ 37 #define _SYS_DKIO_H_ 38 39 #include <sys/ioccom.h> 40 41 /* 42 * Disk-specific ioctls. 43 */ 44 /* get and set disklabel; DIOCGPART used internally */ 45 #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* get */ 46 #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* set */ 47 #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* set, update disk */ 48 #define DIOCGPART _IOW('d', 104, struct partinfo) /* get partition */ 49 50 #if defined(__HAVE_OLD_DISKLABEL) && defined(_KERNEL) 51 #define ODIOCGDINFO _IOR('d', 101, struct olddisklabel)/* get */ 52 #define ODIOCSDINFO _IOW('d', 102, struct olddisklabel)/* set */ 53 #define ODIOCWDINFO _IOW('d', 103, struct olddisklabel)/* set, update dk */ 54 #endif 55 56 /* do format operation, read or write */ 57 #define DIOCRFORMAT _IOWR('d', 105, struct format_op) 58 #define DIOCWFORMAT _IOWR('d', 106, struct format_op) 59 60 #define DIOCSSTEP _IOW('d', 107, int) /* set step rate */ 61 #define DIOCSRETRIES _IOW('d', 108, int) /* set # of retries */ 62 #define DIOCKLABEL _IOW('d', 119, int) /* keep/drop label on close? */ 63 #define DIOCWLABEL _IOW('d', 109, int) /* write en/disable label */ 64 65 #define DIOCSBAD _IOW('d', 110, struct dkbad) /* set kernel dkbad */ 66 #define DIOCEJECT _IOW('d', 112, int) /* eject removable disk */ 67 #define ODIOCEJECT _IO('d', 112) /* eject removable disk */ 68 #define DIOCLOCK _IOW('d', 113, int) /* lock/unlock pack */ 69 70 /* get default label, clear label */ 71 #define DIOCGDEFLABEL _IOR('d', 114, struct disklabel) 72 #define DIOCCLRLABEL _IO('d', 115) 73 74 #if defined(__HAVE_OLD_DISKLABEL) && defined(_KERNEL) 75 #define ODIOCGDEFLABEL _IOR('d', 114, struct olddisklabel) 76 #endif 77 78 /* disk cache enable/disable */ 79 #define DIOCGCACHE _IOR('d', 116, int) /* get cache enables */ 80 #define DIOCSCACHE _IOW('d', 117, int) /* set cache enables */ 81 82 #define DKCACHE_READ 0x000001 /* read cache enabled */ 83 #define DKCACHE_WRITE 0x000002 /* write(back) cache enabled */ 84 #define DKCACHE_RCHANGE 0x000100 /* read enable is changeable */ 85 #define DKCACHE_WCHANGE 0x000200 /* write enable is changeable */ 86 #define DKCACHE_SAVE 0x010000 /* cache parameters are savable/save them */ 87 88 /* sync disk cache */ 89 #define DIOCCACHESYNC _IOW('d', 118, int) /* sync cache (force?) */ 90 91 #endif /* _SYS_DKIO_H_ */ 92