Merge branch 'master' of ssh://git.dorsal.polymtl.ca/home/git/ust
[ust.git] / ustctl / cli.h
1 /* Copyright (C) 2011 Ericsson AB, Nils Carlson <nils.carlson@ericsson.com>
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 #ifndef _CLI_H
18 #define _CLI_H
19
20 struct cli_cmd {
21 const char *name;
22 const char *description;
23 const char *help_text;
24 int (*function)(int, char **);
25 int desired_args;
26 int desired_args_op;
27 } __attribute__((aligned(8)));
28
29 #define __cli_cmds __attribute__((section("__cli_cmds"), aligned(8), used))
30
31 struct cli_cmd *find_cli_cmd(const char *command);
32
33 enum cli_list_opts {
34 CLI_SIMPLE_LIST,
35 CLI_DESCRIPTIVE_LIST,
36 CLI_EXTENDED_LIST,
37 };
38
39 void list_cli_cmds(int option);
40
41 int cli_print_help(const char *command);
42
43 enum cli_arg_ops {
44 CLI_EQ,
45 CLI_GE,
46 };
47
48 void cli_dispatch_cmd(struct cli_cmd *cmd, int argc, char *argv[]);
49
50 #endif /* _CLI_H */
This page took 0.02977 seconds and 4 git commands to generate.