Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/diff/lib/unlocked-io.h
39530 views
1
/* Prefer faster, non-thread-safe stdio functions if available.
2
3
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
4
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
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
13
GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License along
16
with this program; if not, write to the Free Software Foundation,
17
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
18
19
/* Written by Jim Meyering. */
20
21
#ifndef UNLOCKED_IO_H
22
# define UNLOCKED_IO_H 1
23
24
# ifndef USE_UNLOCKED_IO
25
# define USE_UNLOCKED_IO 1
26
# endif
27
28
# if USE_UNLOCKED_IO
29
30
/* These are wrappers for functions/macros from the GNU C library, and
31
from other C libraries supporting POSIX's optional thread-safe functions.
32
33
The standard I/O functions are thread-safe. These *_unlocked ones are
34
more efficient but not thread-safe. That they're not thread-safe is
35
fine since all of the applications in this package are single threaded.
36
37
Also, some code that is shared with the GNU C library may invoke
38
the *_unlocked functions directly. On hosts that lack those
39
functions, invoke the non-thread-safe versions instead. */
40
41
# include <stdio.h>
42
43
# if HAVE_DECL_CLEARERR_UNLOCKED
44
# undef clearerr
45
# define clearerr(x) clearerr_unlocked (x)
46
# else
47
# define clearerr_unlocked(x) clearerr (x)
48
# endif
49
# if HAVE_DECL_FEOF_UNLOCKED
50
# undef feof
51
# define feof(x) feof_unlocked (x)
52
# else
53
# define feof_unlocked(x) feof (x)
54
# endif
55
# if HAVE_DECL_FERROR_UNLOCKED
56
# undef ferror
57
# define ferror(x) ferror_unlocked (x)
58
# else
59
# define ferror_unlocked(x) ferror (x)
60
# endif
61
# if HAVE_DECL_FFLUSH_UNLOCKED
62
# undef fflush
63
# define fflush(x) fflush_unlocked (x)
64
# else
65
# define fflush_unlocked(x) fflush (x)
66
# endif
67
# if HAVE_DECL_FGETS_UNLOCKED
68
# undef fgets
69
# define fgets(x,y,z) fgets_unlocked (x,y,z)
70
# else
71
# define fgets_unlocked(x,y,z) fgets (x,y,z)
72
# endif
73
# if HAVE_DECL_FPUTC_UNLOCKED
74
# undef fputc
75
# define fputc(x,y) fputc_unlocked (x,y)
76
# else
77
# define fputc_unlocked(x,y) fputc (x,y)
78
# endif
79
# if HAVE_DECL_FPUTS_UNLOCKED
80
# undef fputs
81
# define fputs(x,y) fputs_unlocked (x,y)
82
# else
83
# define fputs_unlocked(x,y) fputs (x,y)
84
# endif
85
# if HAVE_DECL_FREAD_UNLOCKED
86
# undef fread
87
# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
88
# else
89
# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
90
# endif
91
# if HAVE_DECL_FWRITE_UNLOCKED
92
# undef fwrite
93
# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
94
# else
95
# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
96
# endif
97
# if HAVE_DECL_GETC_UNLOCKED
98
# undef getc
99
# define getc(x) getc_unlocked (x)
100
# else
101
# define getc_unlocked(x) getc (x)
102
# endif
103
# if HAVE_DECL_GETCHAR_UNLOCKED
104
# undef getchar
105
# define getchar() getchar_unlocked ()
106
# else
107
# define getchar_unlocked() getchar ()
108
# endif
109
# if HAVE_DECL_PUTC_UNLOCKED
110
# undef putc
111
# define putc(x,y) putc_unlocked (x,y)
112
# else
113
# define putc_unlocked(x,y) putc (x,y)
114
# endif
115
# if HAVE_DECL_PUTCHAR_UNLOCKED
116
# undef putchar
117
# define putchar(x) putchar_unlocked (x)
118
# else
119
# define putchar_unlocked(x) putchar (x)
120
# endif
121
122
# undef flockfile
123
# define flockfile(x) ((void) 0)
124
125
# undef ftrylockfile
126
# define ftrylockfile(x) 0
127
128
# undef funlockfile
129
# define funlockfile(x) ((void) 0)
130
131
# endif /* USE_UNLOCKED_IO */
132
#endif /* UNLOCKED_IO_H */
133
134