Statistics
| Branch: | Revision:

root / cmd.h @ e3aff4f6

History | View | Annotate | Download (2.2 kB)

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, write the Free Software Foundation,
16
 * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
 */
18
#ifndef __COMMAND_H__
19
#define __COMMAND_H__
20

    
21
#define CMD_FLAG_GLOBAL        ((int)0x80000000)        /* don't iterate "args" */
22

    
23
typedef int (*cfunc_t)(int argc, char **argv);
24
typedef void (*helpfunc_t)(void);
25

    
26
typedef struct cmdinfo {
27
        const char        *name;
28
        const char        *altname;
29
        cfunc_t                cfunc;
30
        int                argmin;
31
        int                argmax;
32
        int                canpush;
33
        int                flags;
34
        const char        *args;
35
        const char        *oneline;
36
        helpfunc_t      help;
37
} cmdinfo_t;
38

    
39
extern cmdinfo_t        *cmdtab;
40
extern int                ncmds;
41

    
42
extern void                help_init(void);
43
extern void                quit_init(void);
44

    
45
typedef int (*argsfunc_t)(int index);
46
typedef int (*checkfunc_t)(const cmdinfo_t *ci);
47

    
48
extern void                add_command(const cmdinfo_t *ci);
49
extern void                add_user_command(char *optarg);
50
extern void                add_args_command(argsfunc_t af);
51
extern void                add_check_command(checkfunc_t cf);
52

    
53
extern const cmdinfo_t        *find_command(const char *cmd);
54

    
55
extern void                command_loop(void);
56
extern int                command_usage(const cmdinfo_t *ci);
57
extern int                command(const cmdinfo_t *ci, int argc, char **argv);
58

    
59
/* from input.h */
60
extern char        **breakline(char *input, int *count);
61
extern void        doneline(char *input, char **vec);
62
extern char        *fetchline(void);
63

    
64
extern long long cvtnum(char *s);
65
extern void        cvtstr(double value, char *str, size_t sz);
66

    
67
extern struct timeval tsub(struct timeval t1, struct timeval t2);
68
extern double        tdiv(double value, struct timeval tv);
69

    
70
enum {
71
        DEFAULT_TIME                = 0x0,
72
        TERSE_FIXED_TIME        = 0x1,
73
        VERBOSE_FIXED_TIME        = 0x2
74
};
75

    
76
extern void        timestr(struct timeval *tv, char *str, size_t sz, int flags);
77

    
78
#endif        /* __COMMAND_H__ */