nrelease - fix/improve livecd
[dragonfly.git] / sys / dev / raid / vinum / vinumkw.h
1 /*-
2  * Copyright (c) 1997, 1998
3  *      Nan Yang Computer Services Limited.  All rights reserved.
4  *
5  *  This software is distributed under the so-called ``Berkeley
6  *  License'':
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. All advertising materials mentioning features or use of this software
17  *    must display the following acknowledgement:
18  *      This product includes software developed by Nan Yang Computer
19  *      Services Limited.
20  * 4. Neither the name of the Company nor the names of its contributors
21  *    may be used to endorse or promote products derived from this software
22  *    without specific prior written permission.
23  *
24  * This software is provided ``as is'', and any express or implied
25  * warranties, including, but not limited to, the implied warranties of
26  * merchantability and fitness for a particular purpose are disclaimed.
27  * In no event shall the company or contributors be liable for any
28  * direct, indirect, incidental, special, exemplary, or consequential
29  * damages (including, but not limited to, procurement of substitute
30  * goods or services; loss of use, data, or profits; or business
31  * interruption) however caused and on any theory of liability, whether
32  * in contract, strict liability, or tort (including negligence or
33  * otherwise) arising in any way out of the use of this software, even if
34  * advised of the possibility of such damage.
35  */
36
37 /*
38  * Command keywords that vinum knows.  These include both user-level
39  * and kernel-level stuff
40  */
41
42 /*
43  * Our complete vocabulary.  The names of the commands are
44  * the same as the identifier without the kw_ at the beginning
45  * (i.e. kw_create defines the "create" keyword).  Preprocessor
46  * magic in parser.c does the rest.
47  *
48  * To add a new word: put it in the table below and one of the
49  * lists in vinumparser.c (probably keywords).
50  */
51 enum keyword {
52         kw_create,
53         kw_modify,
54         kw_list,
55         kw_l = kw_list,
56         kw_ld,                  /* list drive */
57         kw_ls,                  /* list subdisk */
58         kw_lp,                  /* list plex */
59         kw_lv,                  /* list volume */
60         kw_set,
61         kw_rm,
62         kw_mv,                  /* move object */
63         kw_move,                /* synonym for mv */
64         kw_start,
65         kw_stop,
66         kw_makedev,             /* make /dev/vinum devices */
67         kw_setdaemon,           /* set daemon flags */
68         kw_getdaemon,           /* set daemon flags */
69         kw_help,
70         kw_drive,
71         kw_partition,
72         kw_sd,
73         kw_subdisk = kw_sd,
74         kw_plex,
75         kw_volume,
76         kw_vol = kw_volume,
77         kw_read,
78         kw_readpol,
79         kw_org,
80         kw_name,
81         kw_concat,
82         kw_striped,
83         kw_raid4,
84         kw_raid5,
85         kw_driveoffset,
86         kw_plexoffset,
87         kw_len,
88         kw_length = kw_len,
89         kw_size = kw_len,
90         kw_state,
91         kw_setupstate,
92         kw_d,                   /* flag names */
93         kw_f,
94         kw_r,
95         kw_s,
96         kw_v,
97         kw_w,
98         kw_round,               /* round robin */
99         kw_prefer,              /* prefer plex */
100         kw_device,
101         kw_init,
102         kw_label,
103         kw_resetconfig,
104         kw_writethrough,
105         kw_writeback,
106         kw_raw,
107         kw_replace,
108         kw_resetstats,
109         kw_attach,
110         kw_detach,
111         kw_rename,
112         kw_printconfig,
113         kw_saveconfig,
114         kw_hotspare,
115         kw_detached,
116 #ifdef VINUMDEBUG
117         kw_debug,               /* go into debugger */
118 #endif
119         kw_stripe,
120         kw_mirror,
121         kw_info,
122         kw_quit,
123         kw_max,
124         kw_setstate,
125         kw_checkparity,
126         kw_rebuildparity,
127         kw_dumpconfig,
128         kw_retryerrors,
129         kw_invalid_keyword = -1
130 };
131
132 struct _keywords {
133         char *name;
134         enum keyword keyword;
135 };
136
137 struct keywordset {
138         int size;
139         struct _keywords *k;
140 };
141
142 extern struct _keywords keywords[];
143 extern struct _keywords flag_keywords[];
144
145 extern struct keywordset keyword_set;
146 extern struct keywordset flag_set;