finsh_var.c.svn-base

来自「RT-Thread是发展中的下一代微内核嵌入式实时操作系统」· SVN-BASE 代码 · 共 93 行

SVN-BASE
93
字号
#include <finsh.h>#include "finsh_var.h"struct finsh_var global_variable[FINSH_VARIABLE_MAX];int finsh_var_init(){	memset(global_variable, 0, sizeof(global_variable));	return 0;}int finsh_var_insert(const char* name, int type){	int i, empty;	empty = -1;	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)	{		/* there is a same name variable exist. */		if (strncmp(global_variable[i].name, name, FINSH_NAME_MAX) == 0)			return -1;		if (global_variable[i].type == finsh_type_unknown && empty == -1)		{			empty = i;		}	}	/* there is no empty entry */	if (empty == -1) return -1;	/* insert entry */	strncpy(global_variable[empty].name, name, FINSH_NAME_MAX);	global_variable[empty].type = type;	/* return the offset */	return empty;}int finsh_var_delete(const char* name){	int i;	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)	{		if (strncpy(global_variable[i].name, name, FINSH_NAME_MAX) == 0)			break;	}	/* can't find variable */	if (i == FINSH_VARIABLE_MAX) return -1;	memset(&global_variable[i], 0, sizeof(struct finsh_var));	return 0;}struct finsh_var* finsh_var_lookup(const char* name){	int i;	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)	{		if (strncmp(global_variable[i].name, name, FINSH_NAME_MAX) == 0)			break;	}	/* can't find variable */	if (i == FINSH_VARIABLE_MAX) return NULL;	return &global_variable[i];}struct finsh_sysvar* finsh_sysvar_lookup(const char* name){	int i;	i = 0;	while (global_sysvar_table[i].name != NULL)	{		if (strncmp(global_sysvar_table[i].name, name, strlen(name)) == 0) break;		/* move to next variable */		i++;	}	/* can't find variable */	if (global_sysvar_table[i].name == NULL) return NULL;	return &global_sysvar_table[i];}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?