[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / unistd.h
1 /* @(#)unistd.h 1.27 14/06/19 Copyright 1996-2014 J. Schilling */
2 /*
3 * Definitions for unix system interface
4 *
5 * Copyright (c) 1996-2014 J. Schilling
6 */
7 /*
8 * The contents of this file are subject to the terms of the
9 * Common Development and Distribution License, Version 1.0 only
10 * (the "License"). You may not use this file except in compliance
11 * with the License.
12 *
13 * See the file CDDL.Schily.txt in this distribution for details.
14 * A copy of the CDDL is also available via the Internet at
15 * http://www.opensource.org/licenses/cddl1.txt
16 *
17 * When distributing Covered Code, include this CDDL HEADER in each
18 * file and include the License file CDDL.Schily.txt from this distribution.
19 */
20
21 #ifndef _SCHILY_UNISTD_H
22 #define _SCHILY_UNISTD_H
23
24 #ifndef _SCHILY_MCONFIG_H
25 #include <schily/mconfig.h>
26 #endif
27
28 /*
29 * unistd.h grants things like off_t to be typedef'd.
30 */
31 #ifndef _SCHILY_TYPES_H
32 #include <schily/types.h>
33 #endif
34
35 /*
36 * inttypes.h grants things like Intptr_t to be typedef'd.
37 */
38 #ifndef _SCHILY_INTTYPES_H
39 #include <schily/inttypes.h>
40 #endif
41
42 #ifdef HAVE_UNISTD_H
43
44 #ifndef _INCL_UNISTD_H
45 #include <unistd.h>
46 #define _INCL_UNISTD_H
47 #endif
48
49 #ifndef _SC_PAGESIZE
50 #ifdef _SC_PAGE_SIZE /* HP/UX & OSF */
51 #define _SC_PAGESIZE _SC_PAGE_SIZE
52 #endif
53 #endif
54
55 #else /* !HAVE_UNISTD_H */
56 #ifndef _SCHILY_STDLIB_H
57 #include <schily/stdlib.h> /* MSVC: no unistd.h environ is in stdlib.h */
58 #endif
59 #endif /* !HAVE_UNISTD_H */
60
61 /*
62 * MSVC has getcwd()/chdir()/mkdir()/rmdir() in direct.h
63 */
64 #if defined(_MSC_VER) && defined(HAVE_DIRECT_H)
65 #ifndef _INCL_DIRECT_H
66 #include <direct.h>
67 #define _INCL_DIRECT_H
68 #endif
69 #endif
70
71 /*
72 * MSVC has size_t in stddef.h
73 */
74 #ifdef HAVE_STDDEF_H
75 #ifndef _INCL_STDDEF_H
76 #include <stddef.h>
77 #define _INCL_STDDEF_H
78 #endif
79 #endif
80
81 #ifndef STDIN_FILENO
82 # ifdef JOS
83 # ifndef _SCHILY_JOS_IO_H
84 # include <schily/jos_io.h>
85 # endif
86 # else
87 # define STDIN_FILENO 0
88 # define STDOUT_FILENO 1
89 # define STDERR_FILENO 2
90 # endif
91 #endif
92
93 #ifndef R_OK
94 /* Symbolic constants for the "access" routine: */
95 #define R_OK 4 /* Test for Read permission */
96 #define W_OK 2 /* Test for Write permission */
97 #define X_OK 1 /* Test for eXecute permission */
98 #define F_OK 0 /* Test for existence of File */
99 #endif
100 #ifndef E_OK
101 #ifdef HAVE_ACCESS_E_OK
102 #ifdef EFF_ONLY_OK
103 #define E_OK EFF_ONLY_OK /* Irix */
104 #else
105 #ifdef EUID_OK
106 #define E_OK EUID_OK /* UNICOS (0400) */
107 #else
108 #define E_OK 010 /* Test effective uids */
109 #endif /* EUID_OK */
110 #endif /* EFF_ONLY_OK */
111 #else
112 #define E_OK 0
113 #endif /* HAVE_ACCESS_E_OK */
114 #endif /* !E_OK */
115
116 /* Symbolic constants for the "lseek" routine: */
117 #ifndef SEEK_SET
118 #define SEEK_SET 0 /* Set file pointer to "offset" */
119 #endif
120 #ifndef SEEK_CUR
121 #define SEEK_CUR 1 /* Set file pointer to current plus "offset" */
122 #endif
123 #ifndef SEEK_END
124 #define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
125 #endif
126
127 #ifndef HAVE_ENVIRON_DEF
128 extern char **environ;
129 #endif
130
131 #ifdef __cplusplus
132 extern "C" {
133 #endif
134
135 #if !defined(HAVE_UNISTD_H) || !defined(_POSIX_VERSION)
136 /*
137 * Maybe we need a lot more definitions here...
138 * It is not clear whether we should have prototyped definitions.
139 */
140 #if !defined(_MSC_VER) && !defined(__MINGW32__)
141 /*
142 * MS C comes with broken prototypes in wrong header files (in our case, the
143 * wrong prototype is in io.h). Avoid to redefine the broken MS stuff with
144 * correct prototypes.
145 */
146 extern int access __PR((const char *, int));
147 extern int close __PR((int));
148 extern int dup __PR((int));
149 extern int dup2 __PR((int, int));
150 extern int link __PR((const char *, const char *));
151 extern int read __PR((int, void *, size_t));
152 extern int unlink __PR((const char *));
153 extern int write __PR((int, const void *, size_t));
154 #endif
155 #if !defined(_MSC_VER) && !defined(__MINGW32__)
156 /*
157 * MS C comes with broken prototypes in wrong header files (in our case, the
158 * wrong prototype is in stdlib.h). Avoid to redefine the broken MS stuff with
159 * correct prototypes.
160 */
161 extern void _exit __PR((int));
162 #endif
163 #endif
164
165 #if !defined(HAVE_PIPE) && defined(HAVE__PIPE) && defined(HAVE_IO_H)
166 #ifndef _SCHILY_LIMITS_H
167 #include <schily/limits.h> /* for PIPE_BUF */
168 #endif
169 #ifndef _SCHILY_FCNTL_H
170 #include <schily/fcntl.h> /* for O_BINARY */
171 #endif
172 #ifndef _SCHILY_IO_H
173 #include <schily/io.h> /* for _pipe() */
174 #endif
175
176 #define pipe(pp) _pipe(pp, PIPE_BUF, O_BINARY)
177 #endif
178
179 #ifdef __cplusplus
180 }
181 #endif
182
183 #endif /* _SCHILY_UNISTD_H */