]> git.saurik.com Git - bison.git/blame_incremental - lib/unlocked-io.h
* lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
[bison.git] / lib / unlocked-io.h
... / ...
CommitLineData
1#ifndef UNLOCKED_IO_H
2# define UNLOCKED_IO_H 1
3
4# ifndef USE_UNLOCKED_IO
5# define USE_UNLOCKED_IO 1
6# endif
7
8# if USE_UNLOCKED_IO
9
10/* These are wrappers for functions/macros from GNU libc.
11 The standard I/O functions are thread-safe. These *_unlocked ones are
12 more efficient but not thread-safe. That they're not thread-safe is
13 fine since all of the applications in this package are single threaded. */
14
15# if HAVE_DECL_CLEARERR_UNLOCKED
16# undef clearerr
17# define clearerr(x) clearerr_unlocked (x)
18# endif
19# if HAVE_DECL_FEOF_UNLOCKED
20# undef feof
21# define feof(x) feof_unlocked (x)
22# endif
23# if HAVE_DECL_FERROR_UNLOCKED
24# undef ferror
25# define ferror(x) ferror_unlocked (x)
26# endif
27# if HAVE_DECL_FFLUSH_UNLOCKED
28# undef fflush
29# define fflush(x) fflush_unlocked (x)
30# endif
31# if HAVE_DECL_FGETS_UNLOCKED
32# undef fgets
33# define fgets(x,y,z) fgets_unlocked (x,y,z)
34# endif
35# if HAVE_DECL_FPUTC_UNLOCKED
36# undef fputc
37# define fputc(x,y) fputc_unlocked (x,y)
38# endif
39# if HAVE_DECL_FPUTS_UNLOCKED
40# undef fputs
41# define fputs(x,y) fputs_unlocked (x,y)
42# endif
43# if HAVE_DECL_FREAD_UNLOCKED
44# undef fread
45# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
46# endif
47# if HAVE_DECL_FWRITE_UNLOCKED
48# undef fwrite
49# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
50# endif
51# if HAVE_DECL_GETC_UNLOCKED
52# undef getc
53# define getc(x) getc_unlocked (x)
54# endif
55# if HAVE_DECL_GETCHAR_UNLOCKED
56# undef getchar
57# define getchar() getchar_unlocked ()
58# endif
59# if HAVE_DECL_PUTC_UNLOCKED
60# undef putc
61# define putc(x,y) putc_unlocked (x,y)
62# endif
63# if HAVE_DECL_PUTCHAR_UNLOCKED
64# undef putchar
65# define putchar(x) putchar_unlocked (x)
66# endif
67
68# endif /* USE_UNLOCKED_IO */
69#endif /* UNLOCKED_IO_H */