Add a printx lock
[akaros.git] / kern / include / stdio.h
1 #pragma once
2
3 #include <ros/common.h>
4 #include <stdarg.h>
5 #include <kdebug.h>
6
7 #ifndef NULL
8 #define NULL    ((void *) 0)
9 #endif /* !NULL */
10
11 //#define DEBUG
12 #ifdef DEBUG
13 #define printd(args...) cprintf(args)
14 #else
15 #define printd(args...) {}
16 #endif
17
18 #define printk(args...) cprintf(args)
19 #define I_AM_HERE printk("Core %d is in %s() at %s:%d\n", core_id(), \
20                          __FUNCTION__, __FILE__, __LINE__);
21
22 // lib/stdio.c
23 void    cputchar(int c);
24 void    cputbuf(const char *buf, int len);
25 int     getchar(void);
26 int     iscons(int fd);
27
28 // lib/printfmt.c
29 void    printfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
30 void    vprintfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list);
31
32 // lib/printf.c
33 int     ( cprintf)(const char *fmt, ...);
34 int     vcprintf(const char *fmt, va_list);
35
36 // lib/sprintf.c
37 int     snprintf(char *str, int size, const char *fmt, ...);
38 int     vsnprintf(char *str, int size, const char *fmt, va_list);
39
40 // lib/fprintf.c
41 int     printf(const char *fmt, ...);
42 int     fprintf(int fd, const char *fmt, ...);
43 int     vfprintf(int fd, const char *fmt, va_list);
44
45 // lib/readline.c
46 int readline(char *buf, size_t buf_l, const char *prompt, ...);
47
48 char *seprintf(char *buf, char *end, const char *fmt, ...);
49
50 // kern/src/net/eipconv.c
51 void printemac(void (*putch)(int, void**), void **putdat, uint8_t *mac);
52 void printip(void (*putch)(int, void**), void **putdat, uint8_t *ip);
53 void printipmask(void (*putch)(int, void**), void **putdat, uint8_t *ip);
54 void printipv4(void (*putch)(int, void**), void **putdat, uint8_t *ip);
55
56 /* #K */
57 void trace_printk(const char *fmt, ...);
58
59 /* vsprintf.c (linux) */
60 int vsscanf(const char *buf, const char *fmt, va_list args);
61 int sscanf(const char *buf, const char *fmt, ...);