-
Notifications
You must be signed in to change notification settings - Fork 4
/
tinysh.h
68 lines (56 loc) · 2.03 KB
/
tinysh.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
* tinysh.h
*
* Header for minimal portable shell
*
* Copyright (C) 2001 Michel Gutierrez <[email protected]>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
typedef void (*tinysh_fnt_t)(int argc, char **argv);
typedef struct tinysh_cmd_t {
struct tinysh_cmd_t *parent; /* 0 if top level command */
char *name; /* command input name, not 0 */
char *help; /* help string, can be 0 */
char *usage; /* usage string, can be 0 */
tinysh_fnt_t function; /* function to launch on cmd, can be 0 */
void *arg; /* current argument when function called */
struct tinysh_cmd_t *next; /* must be set to 0 at init */
struct tinysh_cmd_t *child; /* must be set to 0 at init */
} tinysh_cmd_t;
#ifdef __cplusplus
extern "C" {
#endif
/*
* function void tinysh_char_out(unsigned char) must be provided by
* the application
*/
void tinysh_char_out(unsigned char c);
/*
* Functions below are provided by the tinysh module
*/
/* new character input */
void tinysh_char_in(unsigned char c);
/* add a new command */
void tinysh_add_command(tinysh_cmd_t *cmd);
/* change tinysh prompt */
void tinysh_set_prompt(char *str);
/* get command argument back */
void *tinysh_get_arg();
/* provide conversion string to scalar (decimal or hexadecimal) */
unsigned long tinysh_atoxi(char *s);
#ifdef __cplusplus
}
#endif