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) 16extern int u_boot_hush_start(void); 17extern int parse_string_outer(const char *str, int flag); 18extern int parse_file_outer(void); 19int set_local_var(const char *s, int flg_export); 20#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 67void unset_local_var(const char *name); 68char *get_local_var(const char *s); 69 70#if defined(CONFIG_HUSH_INIT_VAR) 71extern int hush_init_var (void); 72#endif 73#endif 74