1 /* $NetBSD: rf_reconbuffer.h,v 1.1 1998/11/13 04:20:33 oster Exp $ */ 2 /* 3 * Copyright (c) 1995 Carnegie-Mellon University. 4 * All rights reserved. 5 * 6 * Author: Mark Holland 7 * 8 * Permission to use, copy, modify and distribute this software and 9 * its documentation is hereby granted, provided that both the copyright 10 * notice and this permission notice appear in all copies of the 11 * software, derivative works or modified versions, and any portions 12 * thereof, and that both notices appear in supporting documentation. 13 * 14 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 15 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 16 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 17 * 18 * Carnegie Mellon requests users of this software to return to 19 * 20 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 21 * School of Computer Science 22 * Carnegie Mellon University 23 * Pittsburgh PA 15213-3890 24 * 25 * any improvements or extensions that they make and grant Carnegie the 26 * rights to redistribute these changes. 27 */ 28 29 /******************************************************************* 30 * 31 * rf_reconbuffer.h -- header file for reconstruction buffer manager 32 * 33 *******************************************************************/ 34 35 /* : 36 * Log: rf_reconbuffer.h,v 37 * Revision 1.9 1996/07/13 00:00:59 jimz 38 * sanitized generalized reconstruction architecture 39 * cleaned up head sep, rbuf problems 40 * 41 * Revision 1.8 1996/06/07 21:33:04 jimz 42 * begin using consistent types for sector numbers, 43 * stripe numbers, row+col numbers, recon unit numbers 44 * 45 * Revision 1.7 1996/06/05 18:06:02 jimz 46 * Major code cleanup. The Great Renaming is now done. 47 * Better modularity. Better typing. Fixed a bunch of 48 * synchronization bugs. Made a lot of global stuff 49 * per-desc or per-array. Removed dead code. 50 * 51 * Revision 1.6 1996/06/03 23:28:26 jimz 52 * more bugfixes 53 * check in tree to sync for IPDS runs with current bugfixes 54 * there still may be a problem with threads in the script test 55 * getting I/Os stuck- not trivially reproducible (runs ~50 times 56 * in a row without getting stuck) 57 * 58 * Revision 1.5 1996/06/02 17:31:48 jimz 59 * Moved a lot of global stuff into array structure, where it belongs. 60 * Fixed up paritylogging, pss modules in this manner. Some general 61 * code cleanup. Removed lots of dead code, some dead files. 62 * 63 * Revision 1.4 1996/05/23 21:46:35 jimz 64 * checkpoint in code cleanup (release prep) 65 * lots of types, function names have been fixed 66 * 67 * Revision 1.3 1996/05/18 19:51:34 jimz 68 * major code cleanup- fix syntax, make some types consistent, 69 * add prototypes, clean out dead code, et cetera 70 * 71 * Revision 1.2 1995/12/06 15:04:47 root 72 * added copyright info 73 * 74 */ 75 76 #ifndef _RF__RF_RECONBUFFER_H_ 77 #define _RF__RF_RECONBUFFER_H_ 78 79 #include "rf_types.h" 80 #include "rf_reconstruct.h" 81 82 int rf_SubmitReconBuffer(RF_ReconBuffer_t *rbuf, int keep_int, 83 int use_committed); 84 int rf_SubmitReconBufferBasic(RF_ReconBuffer_t *rbuf, int keep_int, 85 int use_committed); 86 int rf_MultiWayReconXor(RF_Raid_t *raidPtr, 87 RF_ReconParityStripeStatus_t *pssPtr); 88 RF_ReconBuffer_t *rf_GetFullReconBuffer(RF_ReconCtrl_t *reconCtrlPtr); 89 int rf_CheckForFullRbuf(RF_Raid_t *raidPtr, RF_ReconCtrl_t *reconCtrl, 90 RF_ReconParityStripeStatus_t *pssPtr, int numDataCol); 91 void rf_ReleaseFloatingReconBuffer(RF_Raid_t *raidPtr, RF_RowCol_t row, 92 RF_ReconBuffer_t *rbuf); 93 void rf_ReleaseBufferWaiters(RF_Raid_t *raidPtr, 94 RF_ReconParityStripeStatus_t *pssPtr); 95 void rf_ReleaseBufferWaiter(RF_ReconCtrl_t *rcPtr, RF_ReconBuffer_t *rbuf); 96 97 #endif /* !_RF__RF_RECONBUFFER_H_ */ 98