blob: 007b8d6372faf19e2f783689b722c2f2319af99b [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
wdenk5b1d7132002-11-03 00:07:02 +00002/*
3 * (C) Copyright 2001
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
wdenk5b1d7132002-11-03 00:07:02 +00005 */
6
Simon Glasseca86fa2014-04-10 20:01:24 -06007#ifndef _CLI_HUSH_H_
8#define _CLI_HUSH_H_
wdenk5b1d7132002-11-03 00:07:02 +00009
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 */
Simon Glass87b63982014-10-07 13:59:43 -060013#define FLAG_CONT_ON_NEWLINE (1 << 3) /* continue when we see \n */
wdenk5b1d7132002-11-03 00:07:02 +000014
Francis Laniel9a068372023-12-22 22:02:32 +010015#if CONFIG_IS_ENABLED(HUSH_OLD_PARSER)
wdenk5b1d7132002-11-03 00:07:02 +000016extern int u_boot_hush_start(void);
Francis Laniel9a068372023-12-22 22:02:32 +010017extern int parse_string_outer(const char *str, int flag);
wdenk5b1d7132002-11-03 00:07:02 +000018extern int parse_file_outer(void);
Heiko Schocher81473f62008-10-15 09:40:28 +020019int set_local_var(const char *s, int flg_export);
Francis Laniel9a068372023-12-22 22:02:32 +010020#else
21static inline int u_boot_hush_start(void)
22{
23 return 0;
24}
25
26static inline int parse_string_outer(const char *str, int flag)
27{
28 return 1;
29}
30
31static inline int parse_file_outer(void)
32{
33 return 0;
34}
35
36static 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)
42extern int u_boot_hush_start_modern(void);
43extern int parse_string_outer_modern(const char *str, int flag);
44extern void parse_and_run_file(void);
45int set_local_var_modern(char *s, int flg_export);
46#else
47static inline int u_boot_hush_start_modern(void)
48{
49 return 0;
50}
51
52static inline int parse_string_outer_modern(const char *str, int flag)
53{
54 return 1;
55}
56
57static inline void parse_and_run_file(void)
58{
59}
60
61static inline int set_local_var_modern(char *s, int flg_export)
62{
63 return 0;
64}
65#endif
66
Heiko Schocher81473f62008-10-15 09:40:28 +020067void unset_local_var(const char *name);
Holger Brunckeae3b062011-04-08 02:47:42 +000068char *get_local_var(const char *s);
Heiko Schocher81473f62008-10-15 09:40:28 +020069
70#if defined(CONFIG_HUSH_INIT_VAR)
71extern int hush_init_var (void);
72#endif
wdenk5b1d7132002-11-03 00:07:02 +000073#endif