summaryrefslogtreecommitdiff
path: root/Unix/i686-elf/include/sys/stdio.h
diff options
context:
space:
mode:
Diffstat (limited to 'Unix/i686-elf/include/sys/stdio.h')
-rw-r--r--Unix/i686-elf/include/sys/stdio.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/Unix/i686-elf/include/sys/stdio.h b/Unix/i686-elf/include/sys/stdio.h
new file mode 100644
index 0000000..fa9cd5d
--- /dev/null
+++ b/Unix/i686-elf/include/sys/stdio.h
@@ -0,0 +1,27 @@
+#ifndef _NEWLIB_STDIO_H
+#define _NEWLIB_STDIO_H
+
+#include <sys/lock.h>
+#include <sys/reent.h>
+
+/* Internal locking macros, used to protect stdio functions. In the
+ general case, expand to nothing. Use __SSTR flag in FILE _flags to
+ detect if FILE is private to sprintf/sscanf class of functions; if
+ set then do nothing as lock is not initialised. */
+#if !defined(_flockfile)
+#ifndef __SINGLE_THREAD__
+# define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))
+#else
+# define _flockfile(fp)
+#endif
+#endif
+
+#if !defined(_funlockfile)
+#ifndef __SINGLE_THREAD__
+# define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))
+#else
+# define _funlockfile(fp)
+#endif
+#endif
+
+#endif /* _NEWLIB_STDIO_H */