Merge commit 'crater/master'
[dragonfly.git] / sys / dev / raid / vinum / vinumkw.h
blob928095b30d2cdc9348dbb9335ca61ab4557d5a88
1 /*-
2 * Copyright (c) 1997, 1998
3 * Nan Yang Computer Services Limited. All rights reserved.
5 * This software is distributed under the so-called ``Berkeley
6 * License'':
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.
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.
38 * Command keywords that vinum knows. These include both user-level
39 * and kernel-level stuff
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.
48 * To add a new word: put it in the table below and one of the
49 * lists in vinumparser.c (probably keywords).
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
132 struct _keywords {
133 char *name;
134 enum keyword keyword;
137 struct keywordset {
138 int size;
139 struct _keywords *k;
142 extern struct _keywords keywords[];
143 extern struct _keywords flag_keywords[];
145 extern struct keywordset keyword_set;
146 extern struct keywordset flag_set;