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