1 /* $OpenBSD: rf_pqdeg.h,v 1.3 2002/12/16 07:01:04 tdeval Exp $ */ 2 /* $NetBSD: rf_pqdeg.h,v 1.3 1999/02/05 00:06:15 oster Exp $ */ 3 4 /* 5 * Copyright (c) 1995 Carnegie-Mellon University. 6 * All rights reserved. 7 * 8 * Author: Daniel Stodolsky 9 * 10 * Permission to use, copy, modify and distribute this software and 11 * its documentation is hereby granted, provided that both the copyright 12 * notice and this permission notice appear in all copies of the 13 * software, derivative works or modified versions, and any portions 14 * thereof, and that both notices appear in supporting documentation. 15 * 16 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 17 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 18 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 19 * 20 * Carnegie Mellon requests users of this software to return to 21 * 22 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 23 * School of Computer Science 24 * Carnegie Mellon University 25 * Pittsburgh PA 15213-3890 26 * 27 * any improvements or extensions that they make and grant Carnegie the 28 * rights to redistribute these changes. 29 */ 30 31 #ifndef _RF__RF_PQDEG_H_ 32 #define _RF__RF_PQDEG_H_ 33 34 #include "rf_types.h" 35 36 #if RF_UTILITY == 0 37 #include "rf_dag.h" 38 39 /* 40 * Extern decl's of the failure mode PQ functions. 41 * See pddeg.c for nomenclature discussion. 42 */ 43 44 /* Reads, single failure. */ 45 RF_CREATE_DAG_FUNC_DECL(rf_PQ_100_CreateReadDAG); 46 /* Reads, two failures. */ 47 RF_CREATE_DAG_FUNC_DECL(rf_PQ_110_CreateReadDAG); 48 RF_CREATE_DAG_FUNC_DECL(rf_PQ_101_CreateReadDAG); 49 RF_CREATE_DAG_FUNC_DECL(rf_PQ_200_CreateReadDAG); 50 51 /* Writes, single failure. */ 52 RF_CREATE_DAG_FUNC_DECL(rf_PQ_100_CreateWriteDAG); 53 RF_CREATE_DAG_FUNC_DECL(rf_PQ_010_CreateSmallWriteDAG); 54 RF_CREATE_DAG_FUNC_DECL(rf_PQ_010_CreateLargeWriteDAG); 55 RF_CREATE_DAG_FUNC_DECL(rf_PQ_001_CreateSmallWriteDAG); 56 RF_CREATE_DAG_FUNC_DECL(rf_PQ_001_CreateLargeWriteDAG); 57 58 /* Writes, double failures. */ 59 RF_CREATE_DAG_FUNC_DECL(rf_PQ_011_CreateWriteDAG); 60 RF_CREATE_DAG_FUNC_DECL(rf_PQ_110_CreateWriteDAG); 61 RF_CREATE_DAG_FUNC_DECL(rf_PQ_101_CreateWriteDAG); 62 RF_CREATE_DAG_FUNC_DECL(rf_PQ_200_CreateWriteDAG); 63 #endif /* RF_UTILITY == 0 */ 64 65 typedef RF_uint32 RF_ua32_t[32]; 66 typedef RF_uint8 RF_ua1024_t[1024]; 67 68 extern RF_ua32_t rf_rn; 69 extern RF_ua32_t rf_qfor[32]; 70 #ifndef _KERNEL /* 71 * We don't support PQ in the kernel yet, so 72 * don't link in this monster table. 73 */ 74 extern RF_ua1024_t rf_qinv[29 * 29]; 75 #else /* !_KERNEL */ 76 extern RF_ua1024_t rf_qinv[1]; 77 #endif /* !_KERNEL */ 78 79 #endif /* !_RF__RF_PQDEG_H_ */