1 /*	$OpenBSD: rf_dagflags.h,v 1.3 2002/12/16 07:01:03 tdeval Exp $	*/
2 /*	$NetBSD: rf_dagflags.h,v 1.3 1999/02/05 00:06:08 oster Exp $	*/
3 
4 /*
5  * Copyright (c) 1995 Carnegie-Mellon University.
6  * All rights reserved.
7  *
8  * Author: Mark Holland
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 /*****************************************************************************
32  *
33  * dagflags.h -- Flags that can be given to DoAccess.
34  * I pulled these out of dag.h because routines that call DoAccess may need
35  * these flags, but certainly do not need the declarations related to the DAG
36  * data structures.
37  *
38  *****************************************************************************/
39 
40 
41 #ifndef	_RF__RF_DAGFLAGS_H_
42 #define	_RF__RF_DAGFLAGS_H_
43 
44 /*
45  * Bitmasks for the "flags" parameter (RF_RaidAccessFlags_t) used
46  * by DoAccess, SelectAlgorithm, and the DAG creation routines.
47  *
48  * If USE_DAG or USE_ASM is specified, neither the DAG nor the ASM
49  * will be modified, which means that you can't SUPRESS if you
50  * specify USE_DAG.
51  */
52 
53 #define	RF_DAG_FLAGS_NONE		    0	/* No flags */
54 #define	RF_DAG_SUPPRESS_LOCKS		(1<<0)	/*
55 						 * Supress all stripe locks in
56 						 * the DAG.
57 						 */
58 #define	RF_DAG_RETURN_ASM		(1<<1)	/*
59 						 * Create an ASM and return it
60 						 * instead of freeing it.
61 						 */
62 #define	RF_DAG_RETURN_DAG		(1<<2)	/*
63 						 * Create a DAG and return it
64 						 * instead of freeing it.
65 						 */
66 #define	RF_DAG_NONBLOCKING_IO		(1<<3)	/*
67 						 * Cause DoAccess to be
68 						 * non-blocking.
69 						 */
70 #define	RF_DAG_ACCESS_COMPLETE		(1<<4)	/*
71 						 * The access is complete.
72 						 */
73 #define	RF_DAG_DISPATCH_RETURNED	(1<<5)	/*
74 						 * Used to handle the case
75 						 * where the dag invokes no
76 						 * I/O.
77 						 */
78 #define	RF_DAG_TEST_ACCESS		(1<<6)	/*
79 						 * This access came through
80 						 * rf_ioctl instead of
81 						 * rf_strategy.
82 						 */
83 
84 #endif	/* !_RF__RF_DAGFLAGS_H_ */
85