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