X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fmips%2Fau1000%2Fcommon%2Fprom.c;fp=arch%2Fmips%2Fau1000%2Fcommon%2Fprom.c;h=9c171afd9a534f121e1e4c0ff5c0c8165e9951e8;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=b4b010a2fe36d2b8947a680b903666de8b2715c2;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/arch/mips/au1000/common/prom.c b/arch/mips/au1000/common/prom.c index b4b010a2f..9c171afd9 100644 --- a/arch/mips/au1000/common/prom.c +++ b/arch/mips/au1000/common/prom.c @@ -1,9 +1,10 @@ /* * * BRIEF MODULE DESCRIPTION - * PROM library initialisation code, supports YAMON and U-Boot. + * PROM library initialisation code, assuming a version of + * pmon is the boot code. * - * Copyright 2000, 2001, 2006 MontaVista Software Inc. + * Copyright 2000,2001 MontaVista Software Inc. * Author: MontaVista Software, Inc. * ppopov@mvista.com or source@mvista.com * @@ -46,6 +47,12 @@ extern int prom_argc; extern char **prom_argv, **prom_envp; +typedef struct +{ + char *name; +/* char *val; */ +}t_env_var; + char * prom_getcmdline(void) { @@ -78,24 +85,21 @@ char *prom_getenv(char *envname) { /* * Return a pointer to the given environment variable. - * YAMON uses "name", "value" pairs, while U-Boot uses "name=value". + * Environment variables are stored in the form of "memsize=64". */ - char **env = prom_envp; - int i = strlen(envname); - int yamon = (*env && strchr(*env, '=') == NULL); - - while (*env) { - if (yamon) { - if (strcmp(envname, *env++) == 0) - return *env; - } else { - if (strncmp(envname, *env, i) == 0 && (*env)[i] == '=') - return *env + i + 1; + t_env_var *env = (t_env_var *)prom_envp; + int i; + + i = strlen(envname); + + while(env->name) { + if(strncmp(envname, env->name, i) == 0) { + return(env->name + strlen(envname) + 1); } env++; } - return NULL; + return(NULL); } inline unsigned char str2hexnum(unsigned char c)