2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2002-11-03 00:07:02 +00:00
|
|
|
/*
|
|
|
|
* (C) Copyright 2001
|
|
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
|
|
*/
|
|
|
|
|
2014-04-11 02:01:24 +00:00
|
|
|
#ifndef _CLI_HUSH_H_
|
|
|
|
#define _CLI_HUSH_H_
|
2002-11-03 00:07:02 +00:00
|
|
|
|
|
|
|
#define FLAG_EXIT_FROM_LOOP 1
|
|
|
|
#define FLAG_PARSE_SEMICOLON (1 << 1) /* symbol ';' is special for parser */
|
|
|
|
#define FLAG_REPARSING (1 << 2) /* >=2nd pass */
|
2014-10-07 19:59:43 +00:00
|
|
|
#define FLAG_CONT_ON_NEWLINE (1 << 3) /* continue when we see \n */
|
2002-11-03 00:07:02 +00:00
|
|
|
|
2023-12-22 21:02:32 +00:00
|
|
|
#if CONFIG_IS_ENABLED(HUSH_OLD_PARSER)
|
2002-11-03 00:07:02 +00:00
|
|
|
extern int u_boot_hush_start(void);
|
2023-12-22 21:02:32 +00:00
|
|
|
extern int parse_string_outer(const char *str, int flag);
|
2002-11-03 00:07:02 +00:00
|
|
|
extern int parse_file_outer(void);
|
2008-10-15 07:40:28 +00:00
|
|
|
int set_local_var(const char *s, int flg_export);
|
2023-12-22 21:02:32 +00:00
|
|
|
#else
|
|
|
|
static inline int u_boot_hush_start(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int parse_string_outer(const char *str, int flag)
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int parse_file_outer(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int set_local_var(const char *s, int flg_export)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#if CONFIG_IS_ENABLED(HUSH_MODERN_PARSER)
|
|
|
|
extern int u_boot_hush_start_modern(void);
|
|
|
|
extern int parse_string_outer_modern(const char *str, int flag);
|
|
|
|
extern void parse_and_run_file(void);
|
|
|
|
int set_local_var_modern(char *s, int flg_export);
|
|
|
|
#else
|
|
|
|
static inline int u_boot_hush_start_modern(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int parse_string_outer_modern(const char *str, int flag)
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void parse_and_run_file(void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int set_local_var_modern(char *s, int flg_export)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2008-10-15 07:40:28 +00:00
|
|
|
void unset_local_var(const char *name);
|
2011-04-08 02:47:42 +00:00
|
|
|
char *get_local_var(const char *s);
|
2008-10-15 07:40:28 +00:00
|
|
|
|
|
|
|
#if defined(CONFIG_HUSH_INIT_VAR)
|
|
|
|
extern int hush_init_var (void);
|
|
|
|
#endif
|
2002-11-03 00:07:02 +00:00
|
|
|
#endif
|