File:  [Qemu by Fabrice Bellard] / qemu / cmd.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:33:58 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1101, qemu1001, qemu1000, qemu0151, qemu0150, qemu0141, qemu0140, HEAD
qemu 0.14.0

    1: /*
    2:  * Copyright (c) 2000-2005 Silicon Graphics, Inc.
    3:  * All Rights Reserved.
    4:  *
    5:  * This program is free software; you can redistribute it and/or
    6:  * modify it under the terms of the GNU General Public License as
    7:  * published by the Free Software Foundation.
    8:  *
    9:  * This program is distributed in the hope that it would be useful,
   10:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   11:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   12:  * GNU General Public License for more details.
   13:  *
   14:  * You should have received a copy of the GNU General Public License
   15:  * along with this program; if not, see <http://www.gnu.org/licenses/>.
   16:  */
   17: #ifndef __COMMAND_H__
   18: #define __COMMAND_H__
   19: 
   20: #define CMD_FLAG_GLOBAL	((int)0x80000000)	/* don't iterate "args" */
   21: 
   22: typedef int (*cfunc_t)(int argc, char **argv);
   23: typedef void (*helpfunc_t)(void);
   24: 
   25: typedef struct cmdinfo {
   26: 	const char	*name;
   27: 	const char	*altname;
   28: 	cfunc_t		cfunc;
   29: 	int		argmin;
   30: 	int		argmax;
   31: 	int		canpush;
   32: 	int		flags;
   33: 	const char	*args;
   34: 	const char	*oneline;
   35: 	helpfunc_t      help;
   36: } cmdinfo_t;
   37: 
   38: extern cmdinfo_t	*cmdtab;
   39: extern int		ncmds;
   40: 
   41: void help_init(void);
   42: void quit_init(void);
   43: 
   44: typedef int (*argsfunc_t)(int index);
   45: typedef int (*checkfunc_t)(const cmdinfo_t *ci);
   46: 
   47: void add_command(const cmdinfo_t *ci);
   48: void add_user_command(char *optarg);
   49: void add_args_command(argsfunc_t af);
   50: void add_check_command(checkfunc_t cf);
   51: 
   52: const cmdinfo_t *find_command(const char *cmd);
   53: 
   54: void command_loop(void);
   55: int command_usage(const cmdinfo_t *ci);
   56: int command(const cmdinfo_t *ci, int argc, char **argv);
   57: 
   58: /* from input.h */
   59: char **breakline(char *input, int *count);
   60: void doneline(char *input, char **vec);
   61: char *fetchline(void);
   62: 
   63: long long cvtnum(char *s);
   64: void cvtstr(double value, char *str, size_t sz);
   65: 
   66: struct timeval tsub(struct timeval t1, struct timeval t2);
   67: double tdiv(double value, struct timeval tv);
   68: 
   69: enum {
   70: 	DEFAULT_TIME		= 0x0,
   71: 	TERSE_FIXED_TIME	= 0x1,
   72: 	VERBOSE_FIXED_TIME	= 0x2
   73: };
   74: 
   75: void timestr(struct timeval *tv, char *str, size_t sz, int flags);
   76: 
   77: extern char *progname;
   78: 
   79: #endif	/* __COMMAND_H__ */

unix.superglobalmegacorp.com