1 /* $NetBSD: raidframeio.h,v 1.1 2001/10/04 15:43:57 oster Exp $ */ 2 /*- 3 * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to The NetBSD Foundation 7 * by Greg Oster 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This product includes software developed by the NetBSD 20 * Foundation, Inc. and its contributors. 21 * 4. Neither the name of The NetBSD Foundation nor the names of its 22 * contributors may be used to endorse or promote products derived 23 * from this software without specific prior written permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 26 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 27 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 28 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 29 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 * POSSIBILITY OF SUCH DAMAGE. 36 */ 37 38 /* 39 * Copyright (c) 1995 Carnegie-Mellon University. 40 * All rights reserved. 41 * 42 * Author: Mark Holland 43 * 44 * Permission to use, copy, modify and distribute this software and 45 * its documentation is hereby granted, provided that both the copyright 46 * notice and this permission notice appear in all copies of the 47 * software, derivative works or modified versions, and any portions 48 * thereof, and that both notices appear in supporting documentation. 49 * 50 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 51 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 52 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 53 * 54 * Carnegie Mellon requests users of this software to return to 55 * 56 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 57 * School of Computer Science 58 * Carnegie Mellon University 59 * Pittsburgh PA 15213-3890 60 * 61 * any improvements or extensions that they make and grant Carnegie the 62 * rights to redistribute these changes. 63 */ 64 65 /***************************************************** 66 * 67 * raidframeio.h 68 * 69 * IOCTL's used by RAIDframe. 70 * 71 *****************************************************/ 72 73 74 #ifndef _RF_RAIDFRAMEIO_H_ 75 #define _RF_RAIDFRAMEIO_H_ 76 77 #include "raidframevar.h" 78 79 #define RAIDFRAME_CONFIGURE _IOW ('r', 1, void *) /* configure the driver */ 80 #define RAIDFRAME_SHUTDOWN _IO ('r', 2) /* shutdown the driver */ 81 #define RAIDFRAME_TUR _IOW ('r', 3, dev_t) /* debug only: test unit 82 * ready */ 83 #define RAIDFRAME_TEST_ACC _IOWR('r', 4, struct rf_test_acc) /* run a test access */ 84 #define RAIDFRAME_FAIL_DISK _IOW ('r', 5, struct rf_recon_req) /* fail a disk & 85 * optionally start 86 * recon */ 87 #define RAIDFRAME_CHECK_RECON_STATUS _IOWR('r', 6, int) /* get reconstruction % 88 * complete on indicated 89 * row */ 90 #define RAIDFRAME_REWRITEPARITY _IO ('r', 7) /* rewrite (initialize) 91 * all parity */ 92 #define RAIDFRAME_COPYBACK _IO ('r', 8) /* copy reconstructed 93 * data back to replaced 94 * disk */ 95 #define RAIDFRAME_SPARET_WAIT _IOR ('r', 9, RF_SparetWait_t) /* does not return until 96 * kernel needs a spare 97 * table */ 98 #define RAIDFRAME_SEND_SPARET _IOW ('r', 10, void *) /* used to send a spare 99 * table down into the 100 * kernel */ 101 #define RAIDFRAME_ABORT_SPARET_WAIT _IO ('r', 11) /* used to wake up the 102 * sparemap daemon & 103 * tell it to exit */ 104 #define RAIDFRAME_START_ATRACE _IO ('r', 12) /* start tracing 105 * accesses */ 106 #define RAIDFRAME_STOP_ATRACE _IO ('r', 13) /* stop tracing accesses */ 107 #define RAIDFRAME_GET_SIZE _IOR ('r', 14, int) /* get size (# sectors) 108 * in raid device */ 109 #define RAIDFRAME_GET_INFO _IOWR('r', 15, RF_DeviceConfig_t *) /* get configuration */ 110 #define RAIDFRAME_RESET_ACCTOTALS _IO ('r', 16) /* reset AccTotals for 111 * device */ 112 #define RAIDFRAME_GET_ACCTOTALS _IOR ('r', 17, RF_AccTotals_t) /* retrieve AccTotals 113 * for device */ 114 #define RAIDFRAME_KEEP_ACCTOTALS _IOW ('r', 18, int) /* turn AccTotals on or 115 * off for device */ 116 #define RAIDFRAME_GET_COMPONENT_LABEL _IOWR ('r', 19, RF_ComponentLabel_t *) 117 #define RAIDFRAME_SET_COMPONENT_LABEL _IOW ('r', 20, RF_ComponentLabel_t) 118 119 #define RAIDFRAME_INIT_LABELS _IOW ('r', 21, RF_ComponentLabel_t) 120 #define RAIDFRAME_ADD_HOT_SPARE _IOW ('r', 22, RF_SingleComponent_t) 121 #define RAIDFRAME_REMOVE_HOT_SPARE _IOW ('r', 23, RF_SingleComponent_t) 122 #define RAIDFRAME_REBUILD_IN_PLACE _IOW ('r', 24, RF_SingleComponent_t) 123 #define RAIDFRAME_CHECK_PARITY _IOWR ('r', 25, int) 124 #define RAIDFRAME_CHECK_PARITYREWRITE_STATUS _IOWR ('r', 26, int) 125 #define RAIDFRAME_CHECK_COPYBACK_STATUS _IOWR ('r', 27, int) 126 #define RAIDFRAME_SET_AUTOCONFIG _IOWR ('r', 28, int) 127 #define RAIDFRAME_SET_ROOT _IOWR ('r', 29, int) 128 #define RAIDFRAME_DELETE_COMPONENT _IOW ('r', 30, RF_SingleComponent_t) 129 #define RAIDFRAME_INCORPORATE_HOT_SPARE _IOW ('r', 31, RF_SingleComponent_t) 130 /* 'Extended' status versions */ 131 #define RAIDFRAME_CHECK_RECON_STATUS_EXT _IOWR('r', 32, RF_ProgressInfo_t *) 132 #define RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT _IOWR ('r', 33, RF_ProgressInfo_t *) 133 #define RAIDFRAME_CHECK_COPYBACK_STATUS_EXT _IOWR ('r', 34, RF_ProgressInfo_t *) 134 135 #endif /* !_RF_RAIDFRAMEIO_H_ */ 136