aboutsummaryrefslogblamecommitdiff
path: root/sys/dev/vinum/vinumkw.h
blob: 3a49f3096df23c082c89002537a6f2ea24b70dc8 (plain) (tree)


































                                                                           
                                                            

   



                      



                                                                    
 

                                                          

                                                               



                                                              
   












                                                                              



                                                                                         
















                       
                     






                                                                            
         













                                                                             
                  

                
                 


                                                                                  
            
           

















                                        
/*-
 * Copyright (c) 1997, 1998
 *	Nan Yang Computer Services Limited.  All rights reserved.
 *
 *  This software is distributed under the so-called ``Berkeley
 *  License'':
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by Nan Yang Computer
 *      Services Limited.
 * 4. Neither the name of the Company nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *  
 * This software is provided ``as is'', and any express or implied
 * warranties, including, but not limited to, the implied warranties of
 * merchantability and fitness for a particular purpose are disclaimed.
 * In no event shall the company or contributors be liable for any
 * direct, indirect, incidental, special, exemplary, or consequential
 * damages (including, but not limited to, procurement of substitute
 * goods or services; loss of use, data, or profits; or business
 * interruption) however caused and on any theory of liability, whether
 * in contract, strict liability, or tort (including negligence or
 * otherwise) arising in any way out of the use of this software, even if
 * advised of the possibility of such damage.
 *
 * $Id: vinumkw.h,v 1.12 1999/03/02 02:22:56 grog Exp grog $
 */

#ifdef KERNEL
#include "opt_vinum.h"
#endif

/*
 * Command keywords that vinum knows.  These include both user-level
 * and kernel-level stuff 
 */

/*
 * Our complete vocabulary.  The names of the commands are
 * the same as the identifier without the kw_ at the beginning
 * (i.e. kw_create defines the "create" keyword).  Preprocessor
 * magic in parser.c does the rest.
 *
 * To add a new word: put it in the table below and one of the
 * lists in vinumparser.c (probably keywords).
 */
enum keyword {
    kw_create,
    kw_modify,
    kw_list,
    kw_l = kw_list,
    kw_ld,						    /* list drive */
    kw_ls,						    /* list subdisk */
    kw_lp,						    /* list plex */
    kw_lv,						    /* list volume */
    kw_set,
    kw_rm,
    kw_start,
    kw_stop,
    kw_makedev,						    /* make /dev/vinum devices */
    kw_setdaemon,					    /* set daemon flags */
    kw_getdaemon,					    /* set daemon flags */
    kw_help,
    kw_drive,
    kw_sd,
    kw_subdisk = kw_sd,
    kw_plex,
    kw_volume,
    kw_vol = kw_volume,
    kw_read,
    kw_readpol,
    kw_org,
    kw_name,
    kw_concat,
    kw_striped,
    kw_raid5,
    kw_driveoffset,
    kw_plexoffset,
    kw_len,
    kw_length = kw_len,
    kw_size = kw_len,
    kw_state,
    kw_setupstate,
    kw_d,						    /* flag names */
    kw_f,
    kw_r,
    kw_s,
    kw_v,
    kw_w,
    kw_round,						    /* round robin */
    kw_prefer,						    /* prefer plex */
    kw_device,
    kw_init,
    kw_label,
    kw_resetconfig,
    kw_writethrough,
    kw_writeback,
    kw_raw,
    kw_resetstats,
    kw_attach,
    kw_detach,
    kw_rename,
    kw_printconfig,
    kw_saveconfig,
    kw_replace,
    kw_detached,
#ifdef VINUMDEBUG
    kw_debug,						    /* go into debugger */
#endif
    kw_info,
    kw_quit,
    kw_max,
    kw_invalid_keyword = -1
};

struct _keywords {
    char *name;
    enum keyword keyword;
};

struct keywordset {
    int size;
    struct _keywords *k;
};

extern struct _keywords keywords[];
extern struct _keywords flag_keywords[];

extern struct keywordset keyword_set;
extern struct keywordset flag_set;