summaryrefslogtreecommitdiffstats
path: root/lib/unlocked-io.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unlocked-io.h')
-rw-r--r--lib/unlocked-io.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/lib/unlocked-io.h b/lib/unlocked-io.h
new file mode 100644
index 00000000..a7240fb9
--- /dev/null
+++ b/lib/unlocked-io.h
@@ -0,0 +1,90 @@
1/* Prefer faster, non-thread-safe stdio functions if available.
2
3 Copyright (C) 2001, 2002 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Library General Public License as published
7 by the Free Software Foundation; either version 2, or (at your option)
8 any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18 USA. */
19
20/* Written by Jim Meyering. */
21
22#ifndef UNLOCKED_IO_H
23# define UNLOCKED_IO_H 1
24
25# ifndef USE_UNLOCKED_IO
26# define USE_UNLOCKED_IO 1
27# endif
28
29# if USE_UNLOCKED_IO
30
31/* These are wrappers for functions/macros from GNU libc.
32 The standard I/O functions are thread-safe. These *_unlocked ones are
33 more efficient but not thread-safe. That they're not thread-safe is
34 fine since all of the applications in this package are single threaded. */
35
36# if HAVE_DECL_CLEARERR_UNLOCKED
37# undef clearerr
38# define clearerr(x) clearerr_unlocked (x)
39# endif
40# if HAVE_DECL_FEOF_UNLOCKED
41# undef feof
42# define feof(x) feof_unlocked (x)
43# endif
44# if HAVE_DECL_FERROR_UNLOCKED
45# undef ferror
46# define ferror(x) ferror_unlocked (x)
47# endif
48# if HAVE_DECL_FFLUSH_UNLOCKED
49# undef fflush
50# define fflush(x) fflush_unlocked (x)
51# endif
52# if HAVE_DECL_FGETS_UNLOCKED
53# undef fgets
54# define fgets(x,y,z) fgets_unlocked (x,y,z)
55# endif
56# if HAVE_DECL_FPUTC_UNLOCKED
57# undef fputc
58# define fputc(x,y) fputc_unlocked (x,y)
59# endif
60# if HAVE_DECL_FPUTS_UNLOCKED
61# undef fputs
62# define fputs(x,y) fputs_unlocked (x,y)
63# endif
64# if HAVE_DECL_FREAD_UNLOCKED
65# undef fread
66# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
67# endif
68# if HAVE_DECL_FWRITE_UNLOCKED
69# undef fwrite
70# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
71# endif
72# if HAVE_DECL_GETC_UNLOCKED
73# undef getc
74# define getc(x) getc_unlocked (x)
75# endif
76# if HAVE_DECL_GETCHAR_UNLOCKED
77# undef getchar
78# define getchar() getchar_unlocked ()
79# endif
80# if HAVE_DECL_PUTC_UNLOCKED
81# undef putc
82# define putc(x,y) putc_unlocked (x,y)
83# endif
84# if HAVE_DECL_PUTCHAR_UNLOCKED
85# undef putchar
86# define putchar(x) putchar_unlocked (x)
87# endif
88
89# endif /* USE_UNLOCKED_IO */
90#endif /* UNLOCKED_IO_H */