| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * (C) Copyright 2001 |
| * Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
| */ |
| |
| #ifndef _CLI_HUSH_H_ |
| #define _CLI_HUSH_H_ |
| |
| #define FLAG_EXIT_FROM_LOOP 1 |
| #define FLAG_PARSE_SEMICOLON (1 << 1) /* symbol ';' is special for parser */ |
| #define FLAG_REPARSING (1 << 2) /* >=2nd pass */ |
| #define FLAG_CONT_ON_NEWLINE (1 << 3) /* continue when we see \n */ |
| |
| #if CONFIG_IS_ENABLED(HUSH_OLD_PARSER) |
| extern int u_boot_hush_start(void); |
| extern int parse_string_outer(const char *str, int flag); |
| extern int parse_file_outer(void); |
| int set_local_var(const char *s, int flg_export); |
| #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 |
| |
| void unset_local_var(const char *name); |
| char *get_local_var(const char *s); |
| |
| #if defined(CONFIG_HUSH_INIT_VAR) |
| extern int hush_init_var (void); |
| #endif |
| #endif |