1/*
2 * Copyright 2003-2012 Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _STDIO_POST_H_
6#define _STDIO_POST_H_
7
8
9/* "Private"/inline functions of our BeOS compatible stdio implementation */
10
11/* ToDo: this is a work in progress to make our stdio
12 *		BeOS' GNU/libio (almost) binary compatible
13 *		We may not yet be compatible! */
14
15#ifndef _STDIO_H_
16#	error "This file must be included from stdio.h!"
17#endif
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23extern char _single_threaded;
24	/* this boolean value is true (1) if there is only the main thread
25	 * running - as soon as you spawn the first thread, it's set to
26	 * false (0) */
27
28#ifdef __cplusplus
29}
30#endif
31
32#define getc(stream) \
33	(_single_threaded ? getc_unlocked(stream) : getc(stream))
34#define putc(c, stream) \
35	(_single_threaded ? putc_unlocked(c, stream) : putc(c, stream))
36
37#endif	/* _STDIO_POST_H_ */
38