Skip to content

Commit

Permalink
staging: brcm80211: move driver variable functions to srom.c
Browse files Browse the repository at this point in the history
The driver uses variables which are stored in string format. Using
strings as variable identifiers is disliked by the community. The
driver has been cleaned up and the only module providing these
variables is srom.c. The variable retrieval functions have been
moved to srom.c in preparation of a more likable way to store and
lookup these driver variables.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed Oct 5, 2011
1 parent d0f5527 commit 03c74da
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 44 deletions.
44 changes: 0 additions & 44 deletions drivers/staging/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -8881,47 +8881,3 @@ void brcms_c_set_radio_mpc(struct brcms_c_info *wlc, bool mpc)
wlc->mpc = mpc;
brcms_c_radio_mpc_upd(wlc);
}

/*
* Search the name=value vars for a specific one and return its value.
* Returns NULL if not found.
*/
char *getvar(char *vars, const char *name)
{
char *s;
int len;

if (!name)
return NULL;

len = strlen(name);
if (len == 0)
return NULL;

/* first look in vars[] */
for (s = vars; s && *s;) {
if ((memcmp(s, name, len) == 0) && (s[len] == '='))
return &s[len + 1];

while (*s++)
;
}
/* nothing found */
return NULL;
}

/*
* Search the vars for a specific one and return its value as
* an integer. Returns 0 if not found.
*/
int getintvar(char *vars, const char *name)
{
char *val;
unsigned long res;

val = getvar(vars, name);
if (val && !kstrtoul(val, 0, &res))
return res;

return 0;
}
44 changes: 44 additions & 0 deletions drivers/staging/brcm80211/brcmsmac/srom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1242,3 +1242,47 @@ int srom_var_init(struct si_pub *sih, void __iomem *curmap, char **vars,

return -EINVAL;
}

/*
* Search the name=value vars for a specific one and return its value.
* Returns NULL if not found.
*/
char *getvar(char *vars, const char *name)
{
char *s;
int len;

if (!name)
return NULL;

len = strlen(name);
if (len == 0)
return NULL;

/* first look in vars[] */
for (s = vars; s && *s;) {
if ((memcmp(s, name, len) == 0) && (s[len] == '='))
return &s[len + 1];

while (*s++)
;
}
/* nothing found */
return NULL;
}

/*
* Search the vars for a specific one and return its value as
* an integer. Returns 0 if not found.
*/
int getintvar(char *vars, const char *name)
{
char *val;
unsigned long res;

val = getvar(vars, name);
if (val && !kstrtoul(val, 0, &res))
return res;

return 0;
}

0 comments on commit 03c74da

Please sign in to comment.