vsprintf: add ustrtoll function
Add 'ustrtoull' function to convert size from string (ex: 1GiB) to unsigned long long type Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
This commit is contained in:
parent
7b395232da
commit
7df54d316e
@ -24,6 +24,7 @@ int setenv (const char *varname, const char *varvalue);
|
||||
long simple_strtol(const char *cp,char **endp,unsigned int base);
|
||||
int strcmp(const char * cs,const char * ct);
|
||||
unsigned long ustrtoul(const char *cp, char **endp, unsigned int base);
|
||||
unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base);
|
||||
#if defined(CONFIG_CMD_I2C)
|
||||
int i2c_write (uchar, uint, int , uchar* , int);
|
||||
int i2c_read (uchar, uint, int , uchar* , int);
|
||||
|
@ -126,6 +126,29 @@ unsigned long ustrtoul(const char *cp, char **endp, unsigned int base)
|
||||
return result;
|
||||
}
|
||||
|
||||
unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base)
|
||||
{
|
||||
unsigned long long result = simple_strtoull(cp, endp, base);
|
||||
switch (**endp) {
|
||||
case 'G':
|
||||
result *= 1024;
|
||||
/* fall through */
|
||||
case 'M':
|
||||
result *= 1024;
|
||||
/* fall through */
|
||||
case 'K':
|
||||
case 'k':
|
||||
result *= 1024;
|
||||
if ((*endp)[1] == 'i') {
|
||||
if ((*endp)[2] == 'B')
|
||||
(*endp) += 3;
|
||||
else
|
||||
(*endp) += 2;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
unsigned long long simple_strtoull(const char *cp, char **endp,
|
||||
unsigned int base)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user