kbd: use a better get_key method
[thunix.git] / kernel / printk.c
blobad4059a479d3a6267eedde19115a83f3898c68e4
1 /**
2 * thunix/kernel/printk.c
4 * Just one printf-like function that's printk
6 */
7 #include <stdarg.h>
8 #include <stddef.h>
9 #include <console.h>
12 extern int vsprintf (char *buf, const char *fmt, va_list args);
14 int printk(const char *fmt, ...)
16 char buf[1024];
17 va_list args;
18 int i;
20 va_start(args,fmt);
21 i = vsprintf(buf, fmt, args);
22 va_end(args);
24 con_write(buf, i);
27 __asm__("push %%fs\n\t"
28 "push %%ds\n\t"
29 "pop %%fs\n\t"
30 "push %0 \n\t"
31 "push $buf\n\t"
32 "call con_write\n\t"
33 "addl $4, %%esp\n\t"
34 "pop %0\n\t"
35 "pop %%fs"
36 ::"r"(i));
38 return i;
41 int sprintk(char *buf, const char *fmt, ...)
43 va_list args;
44 int i;
46 va_start(args,fmt);
47 i = vsprintf(buf, fmt, args);
48 va_end(args);
50 return i;