Permissions on IDTs.
[akaros.git] / kern / printf.c
1 // Simple implementation of cprintf console output for the kernel,
2 // based on printfmt() and the kernel console's cputchar().
3
4 #include <inc/types.h>
5 #include <inc/stdio.h>
6 #include <inc/stdarg.h>
7
8
9 static void
10 putch(int ch, int *cnt)
11 {
12         cputchar(ch);
13         *cnt = *cnt + 1;
14 }
15
16 int
17 vcprintf(const char *fmt, va_list ap)
18 {
19         int cnt = 0;
20
21         vprintfmt(putch, &cnt, fmt, ap);
22         return cnt;
23 }
24
25 int
26 cprintf(const char *fmt, ...)
27 {
28         va_list ap;
29         int cnt;
30
31         va_start(ap, fmt);
32         cnt = vcprintf(fmt, ap);
33         va_end(ap);
34
35         return cnt;
36 }
37