Clean up ros_vdebug* interfaces
[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 akaros_vprintfmt(void (*putch)(int, void**), void **putdat,
19                       const char *fmt, va_list);
20 int akaros_vprintf(const char *fmt, va_list);
21
22 #ifdef PRINTD_DEBUG
23 #define printd(args...) printf(args)
24 #else
25 #define printd(args...) {}
26 #endif
27
28 /* Override glibc's printf; ours will be safe from VC context, and uses glibc's
29  * otherwise. */
30 int akaros_printf(const char *format, ...);
31 #undef printf
32 #define printf(args...) akaros_printf(args)
33
34 __END_DECLS