Add support for long variables in kprintf
This commit is contained in:
parent
2a49da9d5f
commit
ba3c0964a0
|
@ -99,7 +99,7 @@ void console_init(multiboot_info_t *mbi)
|
||||||
console_y = 0;
|
console_y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void convert(int num, int base, char *buf, int bufsize)
|
void convert(uint64_t num, int base, char *buf, int bufsize)
|
||||||
{
|
{
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
buf[idx] = '\0';
|
buf[idx] = '\0';
|
||||||
|
@ -135,7 +135,7 @@ void kprintf(char *format, ...)
|
||||||
va_start(arg, format);
|
va_start(arg, format);
|
||||||
|
|
||||||
char buffer[50];
|
char buffer[50];
|
||||||
int i;
|
long i;
|
||||||
|
|
||||||
for (int idx = 0; format[idx] != '\0'; idx++) {
|
for (int idx = 0; format[idx] != '\0'; idx++) {
|
||||||
while (format[idx] != '%') {
|
while (format[idx] != '%') {
|
||||||
|
@ -150,7 +150,7 @@ void kprintf(char *format, ...)
|
||||||
idx++;
|
idx++;
|
||||||
switch (format[idx]) {
|
switch (format[idx]) {
|
||||||
case 'd':
|
case 'd':
|
||||||
i = va_arg(arg, int);
|
i = va_arg(arg, long);
|
||||||
if (i < 0) {
|
if (i < 0) {
|
||||||
i = -i;
|
i = -i;
|
||||||
console_puts('-');
|
console_puts('-');
|
||||||
|
@ -160,7 +160,7 @@ void kprintf(char *format, ...)
|
||||||
console_write(buffer);
|
console_write(buffer);
|
||||||
break;
|
break;
|
||||||
case 'X':
|
case 'X':
|
||||||
i = va_arg(arg, int);
|
i = va_arg(arg, long);
|
||||||
|
|
||||||
convert(i, 16, buffer, 50);
|
convert(i, 16, buffer, 50);
|
||||||
console_write(buffer);
|
console_write(buffer);
|
||||||
|
|
Loading…
Reference in New Issue