1 // See LICENSE for license details.
8 static inline void _kputs(const char *s
)
11 for (; (c
= *s
) != '\0'; s
++)
15 void kputs(const char *s
)
22 void kprintf(const char *fmt
, ...)
25 bool is_format
, is_long
, is_char
;
32 while ((c
= *fmt
++) != '\0') {
45 n
= va_arg(vl
, unsigned long);
46 i
= (sizeof(unsigned long) << 3) - 4;
48 n
= va_arg(vl
, unsigned int);
49 i
= is_char
? 4 : (sizeof(unsigned int) << 3) - 4;
51 for (; i
>= 0; i
-= 4) {
54 kputc(d
< 10 ? '0' + d
: 'a' + d
- 10);
59 _kputs(va_arg(vl
, const char *));
62 kputc(va_arg(vl
, int));
68 } else if (c
== '%') {