提交 fef6d6a7 编写于 作者: S Sergei Shtylyov 提交者: Ralf Baechle

[MIPS] Au1xx0: fix prom_getenv() to handle YAMON style environment

    
Alchemy boards use YAMON which passes the environment variables as the
tuples of strings (the name followed by the value) unlike PMON which
passes "name=<val>" strings.
Signed-off-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 6ebba0e2
/* /*
* *
* BRIEF MODULE DESCRIPTION * BRIEF MODULE DESCRIPTION
* PROM library initialisation code, assuming a version of * PROM library initialisation code, assuming YAMON is the boot loader.
* pmon is the boot code.
* *
* Copyright 2000,2001 MontaVista Software Inc. * Copyright 2000, 2001, 2006 MontaVista Software Inc.
* Author: MontaVista Software, Inc. * Author: MontaVista Software, Inc.
* ppopov@mvista.com or source@mvista.com * ppopov@mvista.com or source@mvista.com
* *
...@@ -49,9 +48,9 @@ extern char **prom_argv, **prom_envp; ...@@ -49,9 +48,9 @@ extern char **prom_argv, **prom_envp;
typedef struct typedef struct
{ {
char *name; char *name;
/* char *val; */ char *val;
}t_env_var; } t_env_var;
char * prom_getcmdline(void) char * prom_getcmdline(void)
...@@ -85,21 +84,16 @@ char *prom_getenv(char *envname) ...@@ -85,21 +84,16 @@ char *prom_getenv(char *envname)
{ {
/* /*
* Return a pointer to the given environment variable. * Return a pointer to the given environment variable.
* Environment variables are stored in the form of "memsize=64".
*/ */
t_env_var *env = (t_env_var *)prom_envp; t_env_var *env = (t_env_var *)prom_envp;
int i;
i = strlen(envname);
while(env->name) { while (env->name) {
if(strncmp(envname, env->name, i) == 0) { if (strcmp(envname, env->name) == 0)
return(env->name + strlen(envname) + 1); return env->val;
}
env++; env++;
} }
return(NULL); return NULL;
} }
inline unsigned char str2hexnum(unsigned char c) inline unsigned char str2hexnum(unsigned char c)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册