Commit 9ba8ec8e authored by H. Peter Anvin's avatar H. Peter Anvin Committed by Borislav Petkov (AMD)
Browse files
parent 15675706
Loading
Loading
Loading
Loading
+23 −10
Original line number Diff line number Diff line
@@ -164,21 +164,34 @@ void __putstr(const char *s)
	outb(0xff & (pos >> 1), vidport+1);
}

void __puthex(unsigned long value)
static noinline void __putnum(unsigned long value, unsigned int base,
			      int mindig)
{
	char alpha[2] = "0";
	int bits;
	char buf[8*sizeof(value)+1];
	char *p;

	p = buf + sizeof(buf);
	*--p = '\0';

	for (bits = sizeof(value) * 8 - 4; bits >= 0; bits -= 4) {
		unsigned long digit = (value >> bits) & 0xf;
	while (mindig-- > 0 || value) {
		unsigned char digit = value % base;
		digit += (digit >= 10) ? ('a'-10) : '0';
		*--p = digit;

		if (digit < 0xA)
			alpha[0] = '0' + digit;
		else
			alpha[0] = 'a' + (digit - 0xA);
		value /= base;
	}

		__putstr(alpha);
	__putstr(p);
}

void __puthex(unsigned long value)
{
	__putnum(value, 16, sizeof(value)*2);
}

void __putdec(unsigned long value)
{
	__putnum(value, 10, 1);
}

#ifdef CONFIG_X86_NEED_RELOCS
+2 −0
Original line number Diff line number Diff line
@@ -63,8 +63,10 @@ void *malloc(int size);
void free(void *where);
void __putstr(const char *s);
void __puthex(unsigned long value);
void __putdec(unsigned long value);
#define error_putstr(__x)  __putstr(__x)
#define error_puthex(__x)  __puthex(__x)
#define error_putdec(__x)  __putdec(__x)

#ifdef CONFIG_X86_VERBOSE_BOOTUP