Import of diffutils 2.8.1
[dragonfly.git] / contrib / diffutils-2.8.1 / 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 */