Jason Reiss / tinyshell

Fork of tinyshell by Murilo Pontes

Committer:
jasonreiss
Date:
Sat Dec 23 19:25:32 2017 +0000
Revision:
2:c57737fee604
Parent:
0:78b46c0d5246
change newline to \r\n

Who changed what in which revision?

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