* kern/misc.c (grub_ltoa): New function.
(grub_vsprintf): Use it to format 'long' integers.
This commit is contained in:
parent
b1ac86445e
commit
ed3d2bc23d
2 changed files with 34 additions and 4 deletions
|
@ -33,6 +33,9 @@
|
||||||
* boot/sparc64/ieee1275/boot.S: Likewise.
|
* boot/sparc64/ieee1275/boot.S: Likewise.
|
||||||
* boot/sparc64/ieee1275/diskboot.S: Likewise.
|
* boot/sparc64/ieee1275/diskboot.S: Likewise.
|
||||||
|
|
||||||
|
* kern/misc.c (grub_ltoa): New function.
|
||||||
|
(grub_vsprintf): Use it to format 'long' integers.
|
||||||
|
|
||||||
2009-04-10 David S. Miller <davem@davemloft.net>
|
2009-04-10 David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
* disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
|
* disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
|
||||||
|
|
33
kern/misc.c
33
kern/misc.c
|
@ -590,6 +590,31 @@ grub_itoa (char *str, int c, unsigned n)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
grub_ltoa (char *str, int c, unsigned long n)
|
||||||
|
{
|
||||||
|
unsigned long base = (c == 'x') ? 16 : 10;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
if ((long) n < 0 && c == 'd')
|
||||||
|
{
|
||||||
|
n = (unsigned) (-((long) n));
|
||||||
|
*str++ = '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
p = str;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
unsigned long d = n % base;
|
||||||
|
*p++ = (d > 9) ? d + 'a' - 10 : d + '0';
|
||||||
|
}
|
||||||
|
while (n /= base);
|
||||||
|
*p = 0;
|
||||||
|
|
||||||
|
grub_reverse (str);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
/* Divide N by D, return the quotient, and store the remainder in *R. */
|
/* Divide N by D, return the quotient, and store the remainder in *R. */
|
||||||
grub_uint64_t
|
grub_uint64_t
|
||||||
grub_divmod64 (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r)
|
grub_divmod64 (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r)
|
||||||
|
@ -790,11 +815,13 @@ grub_vsprintf (char *str, const char *fmt, va_list args)
|
||||||
ll = va_arg (args, long long);
|
ll = va_arg (args, long long);
|
||||||
grub_lltoa (tmp, c, ll);
|
grub_lltoa (tmp, c, ll);
|
||||||
}
|
}
|
||||||
|
else if (longfmt)
|
||||||
|
{
|
||||||
|
long l = va_arg (args, long);
|
||||||
|
grub_ltoa (tmp, c, l);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (longfmt)
|
|
||||||
n = va_arg (args, long);
|
|
||||||
else
|
|
||||||
n = va_arg (args, int);
|
n = va_arg (args, int);
|
||||||
grub_itoa (tmp, c, n);
|
grub_itoa (tmp, c, n);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue