Home | History | Annotate | Line # | Download | only in raidframe
rf_archs.h revision 1.1
      1 /*	$NetBSD: rf_archs.h,v 1.1 1998/11/13 04:20:26 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 (at) 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 /* rf_archs.h -- defines for which architectures you want to
     30  * include is some particular build of raidframe.  Unfortunately,
     31  * it's difficult to exclude declustering, P+Q, and distributed
     32  * sparing because the code is intermixed with RAID5 code.  This
     33  * should be fixed.
     34  *
     35  * this is really intended only for use in the kernel, where I
     36  * am worried about the size of the object module.  At user level and
     37  * in the simulator, I don't really care that much, so all the
     38  * architectures can be compiled together.  Note that by itself, turning
     39  * off these defines does not affect the size of the executable; you
     40  * have to edit the makefile for that.
     41  *
     42  * comment out any line below to eliminate that architecture.
     43  * the list below includes all the modules that can be compiled
     44  * out.
     45  *
     46  * :
     47  * Log: rf_archs.h,v
     48  * Revision 1.32  1996/08/20 23:05:40  jimz
     49  * define RF_KEEP_DISKSTATS to 1
     50  *
     51  * Revision 1.31  1996/07/31  15:34:04  jimz
     52  * include evenodd
     53  *
     54  * Revision 1.30  1996/07/27  23:36:08  jimz
     55  * Solaris port of simulator
     56  *
     57  * Revision 1.29  1996/07/26  20:11:46  jimz
     58  * only define RF_DEMO for CMU_PDL
     59  *
     60  * Revision 1.28  1996/07/26  20:10:57  jimz
     61  * define RF_CMU_PDL only if it isn't already defined
     62  *
     63  * Revision 1.27  1996/07/18  22:57:14  jimz
     64  * port simulator to AIX
     65  *
     66  * Revision 1.26  1996/06/17  14:38:33  jimz
     67  * properly #if out RF_DEMO code
     68  * fix bug in MakeConfig that was causing weird behavior
     69  * in configuration routines (config was not zeroed at start)
     70  * clean up genplot handling of stacks
     71  *
     72  * Revision 1.25  1996/06/14  21:24:59  jimz
     73  * turn on RF_CMU_PDL by default
     74  *
     75  * Revision 1.24  1996/06/13  20:41:57  jimz
     76  * add RF_INCLUDE_QUEUE_RANDOM (0)
     77  *
     78  * Revision 1.23  1996/06/11  18:12:36  jimz
     79  * get rid of JOIN operations
     80  * use ThreadGroup stuff instead
     81  * fix some allocation/deallocation and sync bugs
     82  *
     83  * Revision 1.22  1996/06/10  22:24:55  wvcii
     84  * added symbols for enabling forward or backward error
     85  * recovery experiments
     86  *
     87  * Revision 1.21  1996/06/05  18:06:02  jimz
     88  * Major code cleanup. The Great Renaming is now done.
     89  * Better modularity. Better typing. Fixed a bunch of
     90  * synchronization bugs. Made a lot of global stuff
     91  * per-desc or per-array. Removed dead code.
     92  *
     93  * Revision 1.20  1996/05/30  11:29:41  jimz
     94  * Numerous bug fixes. Stripe lock release code disagreed with the taking code
     95  * about when stripes should be locked (I made it consistent: no parity, no lock)
     96  * There was a lot of extra serialization of I/Os which I've removed- a lot of
     97  * it was to calculate values for the cache code, which is no longer with us.
     98  * More types, function, macro cleanup. Added code to properly quiesce the array
     99  * on shutdown. Made a lot of stuff array-specific which was (bogusly) general
    100  * before. Fixed memory allocation, freeing bugs.
    101  *
    102  * Revision 1.19  1996/05/27  18:56:37  jimz
    103  * more code cleanup
    104  * better typing
    105  * compiles in all 3 environments
    106  *
    107  * Revision 1.18  1996/05/23  21:46:35  jimz
    108  * checkpoint in code cleanup (release prep)
    109  * lots of types, function names have been fixed
    110  *
    111  * Revision 1.17  1996/05/23  00:33:23  jimz
    112  * code cleanup: move all debug decls to rf_options.c, all extern
    113  * debug decls to rf_options.h, all debug vars preceded by rf_
    114  *
    115  * Revision 1.16  1996/05/18  19:51:34  jimz
    116  * major code cleanup- fix syntax, make some types consistent,
    117  * add prototypes, clean out dead code, et cetera
    118  *
    119  * Revision 1.15  1996/05/15  22:32:59  jimz
    120  * remove cache and vs stuff
    121  *
    122  * Revision 1.14  1995/11/30  16:27:34  wvcii
    123  * added copyright info
    124  *
    125  * Revision 1.13  1995/11/28  21:23:44  amiri
    126  * added the interleaved declustering architecture
    127  * ('I'), with distributed sparing.
    128  *
    129  * Revision 1.12  1995/11/17  16:59:45  amiri
    130  * don't INCLUDE_CHAINDECLUSTER in the kernel
    131  * source.
    132  *
    133  * Revision 1.11  1995/11/16  16:15:21  amiri
    134  * don't include RAID5 with rotated sparing (INCLUDE_RAID5_RS) in kernel
    135  *
    136  * Revision 1.10  1995/10/12  17:40:47  jimz
    137  * define INCLUDE_LS
    138  *
    139  * Revision 1.9  1995/10/11  06:56:47  jimz
    140  * define INCLUDE_VS (sanity check for compilation)
    141  *
    142  * Revision 1.8  1995/10/05  18:56:24  jimz
    143  * don't INCLUDE_VS
    144  *
    145  * Revision 1.7  1995/10/04  03:51:20  wvcii
    146  * added raid 1
    147  *
    148  * Revision 1.6  1995/09/07  09:59:29  wvcii
    149  * unstable archs conditionally defined for !KERNEL makes
    150  *
    151  *
    152  */
    153 
    154 #ifndef _RF__RF_ARCHS_H_
    155 #define _RF__RF_ARCHS_H_
    156 
    157 /*
    158  * Turn off if you do not have CMU PDL support compiled
    159  * into your kernel.
    160  */
    161 #ifndef RF_CMU_PDL
    162 #define RF_CMU_PDL 0
    163 #endif /* !RF_CMU_PDL */
    164 
    165 /*
    166  * Khalil's performance-displaying demo stuff.
    167  * Relies on CMU meter tools.
    168  */
    169 #ifndef KERNEL
    170 #if RF_CMU_PDL > 0
    171 #define RF_DEMO 1
    172 #endif /* RF_CMU_PDL > 0 */
    173 #endif /* !KERNEL */
    174 
    175 #define RF_INCLUDE_EVENODD       1
    176 
    177 #define RF_INCLUDE_RAID5_RS      1
    178 #define RF_INCLUDE_PARITYLOGGING 1
    179 
    180 #define RF_INCLUDE_CHAINDECLUSTER 1
    181 #define RF_INCLUDE_INTERDECLUSTER 1
    182 
    183 #define RF_INCLUDE_RAID0   1
    184 #define RF_INCLUDE_RAID1   1
    185 #define RF_INCLUDE_RAID4   1
    186 #define RF_INCLUDE_RAID5   1
    187 #define RF_INCLUDE_RAID6   0
    188 #define RF_INCLUDE_DECL_PQ 0
    189 
    190 #define RF_MEMORY_REDZONES 0
    191 #define RF_RECON_STATS     1
    192 
    193 #define RF_INCLUDE_QUEUE_RANDOM 0
    194 
    195 #define RF_KEEP_DISKSTATS 1
    196 
    197 /* These two symbols enable nonstandard forms of error recovery.
    198  * These modes are only valid for performance measurements and
    199  * data corruption will occur if an error occurs when either
    200  * forward or backward error recovery are enabled.  In general
    201  * both of the following two definitions should be commented
    202  * out--this forces RAIDframe to use roll-away error recovery
    203  * which does guarantee proper error recovery without data corruption
    204  */
    205 /* #define RF_FORWARD 1 */
    206 /* #define RF_BACKWARD 1 */
    207 
    208 #include "rf_options.h"
    209 
    210 #endif /* !_RF__RF_ARCHS_H_ */
    211