source: mainline/uspace/app/bdsh/cmds/cmds.h@ 49b2dc3

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

Merge with shell @ 3241 for bdsh

  • 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 (int*)1
23#define CMD_SUCCESS 0
24#define CMD_VOID (void *)NULL
25
26/* Types for module command entry and help */
27typedef int * (* mod_entry_t)(char **);
28typedef void * (* mod_help_t)(unsigned int);
29
30/* Built-in commands need to be able to modify cliuser_t */
31typedef int * (* builtin_entry_t)(char **, cliuser_t *);
32typedef void * (* builtin_help_t)(unsigned int);
33
34/* Module structure */
35typedef struct {
36 char *name; /* Name of the command */
37 char *desc; /* Description of the command */
38 mod_entry_t entry; /* Command (exec) entry function */
39 mod_help_t help; /* Command (help) entry function */
40 int restricted; /* Restricts to interactive/non-interactive only */
41} module_t;
42
43/* Builtin structure, same as modules except different types of entry points */
44typedef struct {
45 char *name;
46 char *desc;
47 builtin_entry_t entry;
48 builtin_help_t help;
49 int restricted;
50} builtin_t;
51
52/* Declared in cmds/modules/modules.h and cmds/builtins/builtins.h
53 * respectively */
54extern module_t modules[];
55extern builtin_t builtins[];
56
57/* Prototypes for module launchers */
58extern int module_is_restricted(int);
59extern int is_module(const char *);
60extern int is_module_alias(const char *);
61extern char * alias_for_module(const char *);
62extern int help_module(int, unsigned int);
63extern int run_module(int, char *[]);
64
65/* Prototypes for builtin launchers */
66extern int builtin_is_restricted(int);
67extern int is_builtin(const char *);
68extern int is_builtin_alias(const char *);
69extern char * alias_for_builtin(const char *);
70extern int help_builtin(int, unsigned int);
71extern int run_builtin(int, char *[], cliuser_t *);
72
73#endif
Note: See TracBrowser for help on using the repository browser.