1 /* $OpenBSD: rf_kintf.h,v 1.8 2002/12/16 07:01:04 tdeval Exp $ */ 2 /* $NetBSD: rf_kintf.h,v 1.15 2000/10/20 02:24:45 oster Exp $ */ 3 4 /* 5 * rf_kintf.h 6 * 7 * RAIDframe exported kernel interface. 8 */ 9 /* 10 * Copyright (c) 1995 Carnegie-Mellon University. 11 * All rights reserved. 12 * 13 * Author: Jim Zelenka 14 * 15 * Permission to use, copy, modify and distribute this software and 16 * its documentation is hereby granted, provided that both the copyright 17 * notice and this permission notice appear in all copies of the 18 * software, derivative works or modified versions, and any portions 19 * thereof, and that both notices appear in supporting documentation. 20 * 21 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 22 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 23 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 24 * 25 * Carnegie Mellon requests users of this software to return to 26 * 27 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 28 * School of Computer Science 29 * Carnegie Mellon University 30 * Pittsburgh PA 15213-3890 31 * 32 * any improvements or extensions that they make and grant Carnegie the 33 * rights to redistribute these changes. 34 */ 35 36 #ifndef _RF__RF_KINTF_H_ 37 #define _RF__RF_KINTF_H_ 38 39 #include "rf_types.h" 40 41 int rf_GetSpareTableFromDaemon(RF_SparetWait_t *); 42 void raidstart(RF_Raid_t *raidPtr); 43 int rf_DispatchKernelIO(RF_DiskQueue_t *, RF_DiskQueueData_t *); 44 45 int raidwrite_component_label(dev_t, struct vnode *, RF_ComponentLabel_t *); 46 int raidread_component_label(dev_t, struct vnode *, RF_ComponentLabel_t *); 47 48 #define RF_NORMAL_COMPONENT_UPDATE 0 49 #define RF_FINAL_COMPONENT_UPDATE 1 50 void rf_update_component_labels(RF_Raid_t *, int); 51 int raidlookup(char *, struct proc *, struct vnode **); 52 int raidmarkclean(dev_t dev, struct vnode *b_vp, int); 53 int raidmarkdirty(dev_t dev, struct vnode *b_vp, int); 54 void raid_init_component_label(RF_Raid_t *, RF_ComponentLabel_t *); 55 void rf_print_component_label(RF_ComponentLabel_t *); 56 void rf_UnconfigureVnodes( RF_Raid_t * ); 57 void rf_close_component( RF_Raid_t *, struct vnode *, int); 58 void rf_disk_unbusy(RF_RaidAccessDesc_t *); 59 #endif /* _RF__RF_KINTF_H_ */