rf_dagdegrd.h revision 1.1
11.1Soster/*	$NetBSD: rf_dagdegrd.h,v 1.1 1998/11/13 04:20:27 oster Exp $	*/
21.1Soster/*
31.1Soster * Copyright (c) 1995 Carnegie-Mellon University.
41.1Soster * All rights reserved.
51.1Soster *
61.1Soster * Author: Mark Holland, Daniel Stodolsky, William V. Courtright II
71.1Soster *
81.1Soster * Permission to use, copy, modify and distribute this software and
91.1Soster * its documentation is hereby granted, provided that both the copyright
101.1Soster * notice and this permission notice appear in all copies of the
111.1Soster * software, derivative works or modified versions, and any portions
121.1Soster * thereof, and that both notices appear in supporting documentation.
131.1Soster *
141.1Soster * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
151.1Soster * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
161.1Soster * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
171.1Soster *
181.1Soster * Carnegie Mellon requests users of this software to return to
191.1Soster *
201.1Soster *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
211.1Soster *  School of Computer Science
221.1Soster *  Carnegie Mellon University
231.1Soster *  Pittsburgh PA 15213-3890
241.1Soster *
251.1Soster * any improvements or extensions that they make and grant Carnegie the
261.1Soster * rights to redistribute these changes.
271.1Soster */
281.1Soster
291.1Soster/*
301.1Soster * :
311.1Soster * Log: rf_dagdegrd.h,v
321.1Soster * Revision 1.6  1996/07/31 16:29:06  jimz
331.1Soster * asm/asmap re-fix (EO merge)
341.1Soster *
351.1Soster * Revision 1.5  1996/07/31  15:34:40  jimz
361.1Soster * evenodd changes; bugfixes for double-degraded archs, generalize
371.1Soster * some formerly PQ-only functions
381.1Soster *
391.1Soster * Revision 1.4  1996/07/22  19:52:16  jimz
401.1Soster * switched node params to RF_DagParam_t, a union of
411.1Soster * a 64-bit int and a void *, for better portability
421.1Soster * attempted hpux port, but failed partway through for
431.1Soster * lack of a single C compiler capable of compiling all
441.1Soster * source files
451.1Soster *
461.1Soster * Revision 1.3  1996/05/24  22:17:04  jimz
471.1Soster * continue code + namespace cleanup
481.1Soster * typed a bunch of flags
491.1Soster *
501.1Soster * Revision 1.2  1996/05/23  21:46:35  jimz
511.1Soster * checkpoint in code cleanup (release prep)
521.1Soster * lots of types, function names have been fixed
531.1Soster *
541.1Soster * Revision 1.1  1996/05/03  19:22:06  wvcii
551.1Soster * Initial revision
561.1Soster *
571.1Soster */
581.1Soster
591.1Soster#ifndef _RF__RF_DAGDEGRD_H_
601.1Soster#define _RF__RF_DAGDEGRD_H_
611.1Soster
621.1Soster#include "rf_types.h"
631.1Soster
641.1Soster/* degraded read DAG creation routines */
651.1Sostervoid rf_CreateRaidFiveDegradedReadDAG(RF_Raid_t *raidPtr,
661.1Soster	RF_AccessStripeMap_t *asmap, RF_DagHeader_t *dag_h, void *bp,
671.1Soster	RF_RaidAccessFlags_t flags, RF_AllocListElem_t *allocList);
681.1Sostervoid rf_CreateRaidOneDegradedReadDAG(RF_Raid_t *raidPtr,
691.1Soster	RF_AccessStripeMap_t *asmap, RF_DagHeader_t *dag_h, void *bp,
701.1Soster	RF_RaidAccessFlags_t flags, RF_AllocListElem_t *allocList);
711.1Sostervoid rf_CreateDegradedReadDAG(RF_Raid_t *raidPtr,
721.1Soster	RF_AccessStripeMap_t *asmap, RF_DagHeader_t *dag_h, void *bp,
731.1Soster	RF_RaidAccessFlags_t flags, RF_AllocListElem_t *allocList,
741.1Soster	RF_RedFuncs_t *recFunc);
751.1Sostervoid rf_CreateRaidCDegradedReadDAG(RF_Raid_t *raidPtr,
761.1Soster	RF_AccessStripeMap_t *asmap, RF_DagHeader_t *dag_h, void *bp,
771.1Soster	RF_RaidAccessFlags_t flags, RF_AllocListElem_t *allocList);
781.1Sostervoid rf_DD_GenerateFailedAccessASMs(RF_Raid_t *raidPtr,
791.1Soster	RF_AccessStripeMap_t *asmap, RF_PhysDiskAddr_t **pdap,
801.1Soster	int *nNodep, RF_PhysDiskAddr_t **pqpdap, int *nPQNodep,
811.1Soster	RF_AllocListElem_t *allocList);
821.1Sostervoid rf_DoubleDegRead(RF_Raid_t *raidPtr, RF_AccessStripeMap_t *asmap,
831.1Soster	RF_DagHeader_t *dag_h, void *bp, RF_RaidAccessFlags_t flags,
841.1Soster	RF_AllocListElem_t *allocList, char *redundantReadNodeName,
851.1Soster	char *recoveryNodeName, int (*recovFunc)(RF_DagNode_t *));
861.1Soster
871.1Soster#endif /* !_RF__RF_DAGDEGRD_H_ */
88