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