60b83ef16b739bfdf766996d32f298bbc4d21aab
[akaros.git] / user / parlib / include / stdio.h
1 /* Copyright (c) 2015 Google Inc.
2  * Barret Rhoden <brho@cs.berkeley.edu>
3  * See LICENSE for details.
4  *
5  * Print routines for Akaros user programs. */
6
7 #pragma once
8
9 #ifdef BUILDING_PARLIB
10 # include_next "stdio.h"
11 #else
12 # include <stdio.h>
13 #endif
14 #include <stdarg.h>
15
16 __BEGIN_DECLS
17
18 void ros_debugfmt(void (*putch)(int, void**), void **putdat, const char *fmt,
19                   ...);
20 void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt,
21                    va_list);
22 int     ros_debug(const char *fmt, ...);
23 int     ros_vdebug(const char *fmt, va_list);
24
25 #ifdef PRINTD_DEBUG
26 #define printd(args...) printf(args)
27 #else
28 #define printd(args...) {}
29 #endif
30
31 /* Override glibc's printf; ours will be safe from VC context, and uses glibc's
32  * otherwise. */
33 int akaros_printf(const char *format, ...);
34 #undef printf
35 #define printf(args...) akaros_printf(args)
36
37 __END_DECLS