]> git.saurik.com Git - bison.git/blob - lib/unlocked-io.h
Fix copyright and authorship notice to point to Bison, not GCC.
[bison.git] / lib / unlocked-io.h
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 */