summaryrefslogtreecommitdiffstats
path: root/gl/fcntl.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/fcntl.in.h')
-rw-r--r--gl/fcntl.in.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/gl/fcntl.in.h b/gl/fcntl.in.h
new file mode 100644
index 00000000..fd7520e8
--- /dev/null
+++ b/gl/fcntl.in.h
@@ -0,0 +1,144 @@
1/* Like <fcntl.h>, but with non-working flags defined to 0.
2
3 Copyright (C) 2006-2008 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 3 of the License, or
8 (at your option) 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
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18/* written by Paul Eggert */
19
20#if __GNUC__ >= 3
21@PRAGMA_SYSTEM_HEADER@
22#endif
23
24#if defined __need_system_fcntl_h
25/* Special invocation convention. */
26
27#include <sys/types.h>
28#include <sys/stat.h>
29#include <unistd.h>
30#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
31
32#else
33/* Normal invocation convention. */
34
35#ifndef _GL_FCNTL_H
36
37#include <sys/types.h>
38#include <sys/stat.h>
39#include <unistd.h>
40/* The include_next requires a split double-inclusion guard. */
41#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
42
43#ifndef _GL_FCNTL_H
44#define _GL_FCNTL_H
45
46
47/* Declare overridden functions. */
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52
53#if @GNULIB_OPEN@
54# if @REPLACE_OPEN@
55# undef open
56# define open rpl_open
57extern int open (const char *filename, int flags, ...);
58# endif
59#endif
60
61#ifdef FCHDIR_REPLACEMENT
62/* gnulib internal function. */
63extern void _gl_register_fd (int fd, const char *filename);
64#endif
65
66#ifdef __cplusplus
67}
68#endif
69
70
71/* Fix up the O_* macros. */
72
73#if !defined O_DIRECT && defined O_DIRECTIO
74/* Tru64 spells it `O_DIRECTIO'. */
75# define O_DIRECT O_DIRECTIO
76#endif
77
78#ifndef O_DIRECT
79# define O_DIRECT 0
80#endif
81
82#ifndef O_DIRECTORY
83# define O_DIRECTORY 0
84#endif
85
86#ifndef O_DSYNC
87# define O_DSYNC 0
88#endif
89
90#ifndef O_NDELAY
91# define O_NDELAY 0
92#endif
93
94#ifndef O_NOATIME
95# define O_NOATIME 0
96#endif
97
98#ifndef O_NONBLOCK
99# define O_NONBLOCK O_NDELAY
100#endif
101
102#ifndef O_NOCTTY
103# define O_NOCTTY 0
104#endif
105
106#ifndef O_NOFOLLOW
107# define O_NOFOLLOW 0
108#endif
109
110#ifndef O_NOLINKS
111# define O_NOLINKS 0
112#endif
113
114#ifndef O_RSYNC
115# define O_RSYNC 0
116#endif
117
118#ifndef O_SYNC
119# define O_SYNC 0
120#endif
121
122/* For systems that distinguish between text and binary I/O.
123 O_BINARY is usually declared in fcntl.h */
124#if !defined O_BINARY && defined _O_BINARY
125 /* For MSC-compatible compilers. */
126# define O_BINARY _O_BINARY
127# define O_TEXT _O_TEXT
128#endif
129
130#if defined __BEOS__ || defined __HAIKU__
131 /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */
132# undef O_BINARY
133# undef O_TEXT
134#endif
135
136#ifndef O_BINARY
137# define O_BINARY 0
138# define O_TEXT 0
139#endif
140
141
142#endif /* _GL_FCNTL_H */
143#endif /* _GL_FCNTL_H */
144#endif