81a9b0938625a223c2c97b1f9024d2d23e6dff6b
[akaros.git] / kern / include / stdio.h
1 #ifndef ROS_INC_STDIO_H
2 #define ROS_INC_STDIO_H
3
4 #include <ros/common.h>
5 #include <stdarg.h>
6
7 #ifndef NULL
8 #define NULL    ((void *) 0)
9 #endif /* !NULL */
10
11 #ifdef DEBUG
12 #define printd(args...) cprintf(args)
13 #else
14 #define printd(args...) {}
15 #endif
16
17 #define printk(args...) cprintf(args)
18 #define I_AM_HERE printk("Core %d is in %s() at %s:%d\n", core_id(), \
19                          __FUNCTION__, __FILE__, __LINE__);
20
21 // lib/stdio.c
22 void    cputchar(int c);
23 void    cputbuf(const char*COUNT(len) buf, int len);
24 int     getchar(void);
25 int     iscons(int fd);
26
27 // lib/printfmt.c
28 #ifdef __DEPUTY__
29 void    printfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *NTS fmt, ...);
30 void    vprintfmt(void (*putch)(int, TV(t)), TV(t) putdat, const char *NTS fmt, va_list);
31 #else
32 void    printfmt(void (*putch)(int, void**), void **putdat, const char *NTS fmt, ...);
33 void    vprintfmt(void (*putch)(int, void**), void **putdat, const char *NTS fmt, va_list);
34 #endif
35
36 // lib/printf.c
37 int     ( cprintf)(const char * NTS fmt, ...);
38 int     vcprintf(const char * NTS fmt, va_list);
39
40 // lib/sprintf.c
41 int     snprintf(char *COUNT(size) str, int size, const char *NTS fmt, ...);
42 int     vsnprintf(char *COUNT(size) str, int size, const char *NTS fmt, va_list);
43
44 // lib/fprintf.c
45 int     printf(const char *NTS fmt, ...);
46 int     fprintf(int fd, const char *NTS fmt, ...);
47 int     vfprintf(int fd, const char *NTS fmt, va_list);
48
49 // lib/readline.c
50 char *NTS readline(const char *NTS prompt);
51
52 #endif /* !ROS_INC_STDIO_H */