source: mainline/uspace/app/bdsh/cmds/cmds.h@ cbe405c

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since cbe405c was 809813d, checked in by Tim Post <echo@…>, 17 years ago

Simplify entry types (and return values) for commands

  • Property mode set to 100644
File size: 2.1 KB
Line 
1#ifndef CMDS_H
2#define CMDS_H
3
4#include "config.h"
5#include "scli.h"
6
7/* Temporary to store strings */
8#define EXT_HELP "extended"
9#define SHORT_HELP "short"
10#define TEST_ANNOUNCE "Hello, this is :"
11
12/* Simple levels of help displays */
13#define HELP_SHORT 0
14#define HELP_LONG 1
15
16/* Acceptable buffer sizes (for strn functions) */
17/* TODO: Move me, other files duplicate these needlessly */
18#define BUFF_LARGE 1024
19#define BUFF_SMALL 255
20
21/* Return macros for int type entry points */
22#define CMD_FAILURE 1
23#define CMD_SUCCESS 0
24
25/* Types for module command entry and help */
26typedef int (* mod_entry_t)(char **);
27typedef void (* mod_help_t)(unsigned int);
28
29/* Built-in commands need to be able to modify cliuser_t */
30typedef int (* builtin_entry_t)(char **, cliuser_t *);
31typedef void (* builtin_help_t)(unsigned int);
32
33/* Module structure */
34typedef struct {
35 char *name; /* Name of the command */
36 char *desc; /* Description of the command */
37 mod_entry_t entry; /* Command (exec) entry function */
38 mod_help_t help; /* Command (help) entry function */
39 int restricted; /* Restricts to interactive/non-interactive only */
40} module_t;
41
42/* Builtin structure, same as modules except different types of entry points */
43typedef struct {
44 char *name;
45 char *desc;
46 builtin_entry_t entry;
47 builtin_help_t help;
48 int restricted;
49} builtin_t;
50
51/* Declared in cmds/modules/modules.h and cmds/builtins/builtins.h
52 * respectively */
53extern module_t modules[];
54extern builtin_t builtins[];
55
56/* Prototypes for module launchers */
57extern int module_is_restricted(int);
58extern int is_module(const char *);
59extern int is_module_alias(const char *);
60extern char * alias_for_module(const char *);
61extern int help_module(int, unsigned int);
62extern int run_module(int, char *[]);
63
64/* Prototypes for builtin launchers */
65extern int builtin_is_restricted(int);
66extern int is_builtin(const char *);
67extern int is_builtin_alias(const char *);
68extern char * alias_for_builtin(const char *);
69extern int help_builtin(int, unsigned int);
70extern int run_builtin(int, char *[], cliuser_t *);
71
72#endif
Note: See TracBrowser for help on using the repository browser.