1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3 * (C) Copyright 2001
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 */
6
7 #ifndef _CLI_HUSH_H_
8 #define _CLI_HUSH_H_
9
10 #define FLAG_EXIT_FROM_LOOP 1
11 #define FLAG_PARSE_SEMICOLON (1 << 1) /* symbol ';' is special for parser */
12 #define FLAG_REPARSING (1 << 2) /* >=2nd pass */
13 #define FLAG_CONT_ON_NEWLINE (1 << 3) /* continue when we see \n */
14
15 #if CONFIG_IS_ENABLED(HUSH_OLD_PARSER)
16 extern int u_boot_hush_start(void);
17 extern int parse_string_outer(const char *str, int flag);
18 extern int parse_file_outer(void);
19 int set_local_var(const char *s, int flg_export);
20 #else
u_boot_hush_start(void)21 static inline int u_boot_hush_start(void)
22 {
23 return 0;
24 }
25
parse_string_outer(const char * str,int flag)26 static inline int parse_string_outer(const char *str, int flag)
27 {
28 return 1;
29 }
30
parse_file_outer(void)31 static inline int parse_file_outer(void)
32 {
33 return 0;
34 }
35
set_local_var(const char * s,int flg_export)36 static inline int set_local_var(const char *s, int flg_export)
37 {
38 return 0;
39 }
40 #endif
41 #if CONFIG_IS_ENABLED(HUSH_MODERN_PARSER)
42 extern int u_boot_hush_start_modern(void);
43 extern int parse_string_outer_modern(const char *str, int flag);
44 extern void parse_and_run_file(void);
45 int set_local_var_modern(char *s, int flg_export);
46 #else
u_boot_hush_start_modern(void)47 static inline int u_boot_hush_start_modern(void)
48 {
49 return 0;
50 }
51
parse_string_outer_modern(const char * str,int flag)52 static inline int parse_string_outer_modern(const char *str, int flag)
53 {
54 return 1;
55 }
56
parse_and_run_file(void)57 static inline void parse_and_run_file(void)
58 {
59 }
60
set_local_var_modern(char * s,int flg_export)61 static inline int set_local_var_modern(char *s, int flg_export)
62 {
63 return 0;
64 }
65 #endif
66
67 void unset_local_var(const char *name);
68 char *get_local_var(const char *s);
69
70 #if defined(CONFIG_HUSH_INIT_VAR)
71 extern int hush_init_var (void);
72 #endif
73 #endif
74