1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2010-03-22 Bernard first version 9*10465441SEvalZero */ 10*10465441SEvalZero #ifndef __FINSH_VAR_H__ 11*10465441SEvalZero #define __FINSH_VAR_H__ 12*10465441SEvalZero 13*10465441SEvalZero #include <finsh.h> 14*10465441SEvalZero 15*10465441SEvalZero /* 16*10465441SEvalZero * The variable in finsh is put in data segment as a global variable. 17*10465441SEvalZero * The 'finsh_var' structure presents the structure of variable in data segment. 18*10465441SEvalZero */ 19*10465441SEvalZero struct finsh_var 20*10465441SEvalZero { 21*10465441SEvalZero char name[FINSH_NAME_MAX + 1]; /* the name of variable */ 22*10465441SEvalZero 23*10465441SEvalZero uint8_t type; /* the type of variable */ 24*10465441SEvalZero 25*10465441SEvalZero /* variable value */ 26*10465441SEvalZero union { 27*10465441SEvalZero char char_value; 28*10465441SEvalZero short short_value; 29*10465441SEvalZero int int_value; 30*10465441SEvalZero long long_value; 31*10465441SEvalZero void* ptr; 32*10465441SEvalZero }value; 33*10465441SEvalZero }; 34*10465441SEvalZero extern struct finsh_var global_variable[]; 35*10465441SEvalZero 36*10465441SEvalZero int finsh_var_init(void); 37*10465441SEvalZero int finsh_var_insert(const char* name, int type); 38*10465441SEvalZero int finsh_var_delete(const char* name); 39*10465441SEvalZero struct finsh_var* finsh_var_lookup(const char* name); 40*10465441SEvalZero 41*10465441SEvalZero #endif 42