[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / libport.h
1 /* @(#)libport.h 1.44 15/05/09 Copyright 1995-2015 J. Schilling */
2 /*
3 * Prototypes for POSIX standard functions that may be missing on the
4 * local platform and thus are implemented inside libschily.
5 *
6 * Copyright (c) 1995-2015 J. Schilling
7 */
8 /*
9 * The contents of this file are subject to the terms of the
10 * Common Development and Distribution License, Version 1.0 only
11 * (the "License"). You may not use this file except in compliance
12 * with the License.
13 *
14 * See the file CDDL.Schily.txt in this distribution for details.
15 * A copy of the CDDL is also available via the Internet at
16 * http://www.opensource.org/licenses/cddl1.txt
17 *
18 * When distributing Covered Code, include this CDDL HEADER in each
19 * file and include the License file CDDL.Schily.txt from this distribution.
20 */
21
22
23 #ifndef _SCHILY_LIBPORT_H
24 #define _SCHILY_LIBPORT_H
25
26 #ifndef _SCHILY_MCONFIG_H
27 #include <schily/mconfig.h>
28 #endif
29 #ifndef _SCHILY_TYPES_H
30 #include <schily/types.h>
31 #endif
32
33 #ifndef _SCHILY_UNISTD_H
34 #include <schily/unistd.h>
35 #endif
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #if defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
42 # ifndef FOUND_SIZE_T
43 # define FOUND_SIZE_T
44 # endif
45 #endif
46 #if defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
47 # undef FOUND_SIZE_T
48 #endif
49
50 #ifdef OPENSERVER
51 /*
52 * Don't use the usleep() from libc on SCO's OPENSERVER.
53 * It will kill our processes with SIGALRM.
54 */
55 /*
56 * Don't #undef HAVE_USLEEP in this file, SCO has a
57 * usleep() prototype in unistd.h
58 */
59 /* #undef HAVE_USLEEP */
60 #endif
61
62 #ifdef FOUND_SIZE_T
63 /*
64 * We currently cannot define this here because there IRIX has a definition
65 * than violates the standard.
66 */
67 #ifndef HAVE_SNPRINTF
68 /*PRINTFLIKE3*/
69 extern int snprintf __PR((char *, size_t, const char *, ...))
70 __printflike__(3, 4);
71 #endif
72 #endif
73
74 #ifdef EOF /* stdio.h has been included */
75 #ifdef FOUND_SIZE_T
76 #ifndef HAVE_GETDELIM
77 extern ssize_t getdelim __PR((char **, size_t *, int, FILE *));
78 #endif
79 #endif
80 #endif
81
82 #ifndef HAVE_GETHOSTID
83 extern long gethostid __PR((void));
84 #endif
85 #ifndef HAVE_GETPAGESIZE
86 extern int getpagesize __PR((void));
87 #endif
88 #ifndef HAVE_USLEEP
89 extern int usleep __PR((int usec));
90 #endif
91
92 #ifndef HAVE_STRCASECMP
93 extern int strcasecmp __PR((const char *, const char *));
94 #endif
95 #ifdef FOUND_SIZE_T
96 #ifndef HAVE_STRNCASECMP
97 extern int strncasecmp __PR((const char *, const char *,
98 size_t));
99 #endif
100 #endif
101
102 #ifndef HAVE_STRCAT
103 extern char *strcat __PR((char *s1, const char *s2));
104 #endif
105 #ifndef HAVE_STRCHR
106 extern char *strchr __PR((const char *s1, int c));
107 #endif
108 #ifndef HAVE_STRCMP
109 extern int strcmp __PR((const char *s1, const char *s2));
110 #endif
111 #ifndef HAVE_STRCPY
112 extern char *strcpy __PR((char *s1, const char *s2));
113 #endif
114 #if !defined(HAVE_STRDUP) || defined(__SVR4)
115 extern char *strdup __PR((const char *s));
116 #endif
117 #ifdef FOUND_SIZE_T
118 #ifndef HAVE_STRNDUP
119 extern char *strndup __PR((const char *s, size_t len));
120 #endif
121 #ifndef HAVE_STRLEN
122 extern size_t strlen __PR((const char *s));
123 #endif
124 #ifndef HAVE_STRNLEN
125 extern size_t strnlen __PR((const char *s, size_t len));
126 #endif
127 #ifndef HAVE_STRLCAT
128 extern size_t strlcat __PR((char *s1, const char *s2,
129 size_t len));
130 #endif
131 #ifndef HAVE_STRLCPY
132 extern size_t strlcpy __PR((char *s1, const char *s2,
133 size_t len));
134 #endif
135 #ifndef HAVE_STRNCAT
136 extern char *strncat __PR((char *s1, const char *s2,
137 size_t len));
138 #endif
139 #ifndef HAVE_STRNCMP
140 extern int strncmp __PR((const char *s1, const char *s2,
141 size_t len));
142 #endif
143 #ifndef HAVE_STRNCPY
144 extern char *strncpy __PR((char *s1, const char *s2,
145 size_t len));
146 #endif
147 #endif /* FOUND_SIZE_T */
148 #ifndef HAVE_STRRCHR
149 extern char *strrchr __PR((const char *s1, int c));
150 #endif
151
152 #ifndef HAVE_STRSTR
153 extern char *strstr __PR((const char *s1, const char *s2));
154 #endif
155
156 #ifdef _SCHILY_WCHAR_H
157 #ifndef HAVE_WCSCAT
158 extern wchar_t *wcscat __PR((wchar_t *s1, const wchar_t *s2));
159 #endif
160 #ifndef HAVE_WCSCHR
161 extern wchar_t *wcschr __PR((const wchar_t *s1, wchar_t c));
162 #endif
163 #ifndef HAVE_WCSCMP
164 extern int wcscmp __PR((const wchar_t *s1,
165 const wchar_t *s2));
166 #endif
167 #ifndef HAVE_WCSCPY
168 extern wchar_t *wcscpy __PR((wchar_t *s1, const wchar_t *s2));
169 #endif
170 #ifndef HAVE_WCSDUP
171 extern wchar_t *wcsdup __PR((const wchar_t *s));
172 #endif
173 #ifdef FOUND_SIZE_T
174 #ifndef HAVE_WCSNDUP
175 extern wchar_t *wcsndup __PR((const wchar_t *s, size_t len));
176 #endif
177 #ifndef HAVE_WCSLEN
178 extern size_t wcslen __PR((const wchar_t *s));
179 #endif
180 #ifndef HAVE_WCSNLEN
181 extern size_t wcsnlen __PR((const wchar_t *s, size_t len));
182 #endif
183 #ifndef HAVE_WCSLCAT
184 extern size_t wcslcat __PR((wchar_t *s1, const wchar_t *s2,
185 size_t len));
186 #endif
187 #ifndef HAVE_WCSLCPY
188 extern size_t wcslcpy __PR((wchar_t *s1, const wchar_t *s2,
189 size_t len));
190 #endif
191 #ifndef HAVE_WCSNCAT
192 extern wchar_t *wcsncat __PR((wchar_t *s1, const wchar_t *s2,
193 size_t len));
194 #endif
195 #ifndef HAVE_WCSNCMP
196 extern int wcsncmp __PR((const wchar_t *s1,
197 const wchar_t *s2,
198 size_t len));
199 #endif
200 #ifndef HAVE_WCSNCPY
201 extern wchar_t *wcsncpy __PR((wchar_t *s1, const wchar_t *s2,
202 size_t len));
203 #endif
204 #endif /* FOUND_SIZE_T */
205 #ifndef HAVE_WCSRCHR
206 extern wchar_t *wcsrchr __PR((const wchar_t *s1, wchar_t c));
207 #endif
208
209 #ifndef HAVE_WCSSTR
210 extern wchar_t *wcsstr __PR((const wchar_t *s1,
211 const wchar_t *s2));
212 #endif
213 #endif /* _SCHILY_WCHAR_H */
214
215 #ifndef HAVE_RENAME
216 extern int rename __PR((const char *old,
217 const char *new));
218 #endif
219
220 /*
221 * XXX Note: libgen.h / -lgen on Solaris contain eaccess()
222 */
223 #ifndef HAVE_EACCESS
224 extern int eaccess __PR((const char *name, int mode));
225 #endif
226
227 /*
228 * See also libgen.h
229 */
230 #ifndef HAVE_BASENAME
231 extern char *basename __PR((char *name));
232 #endif
233 #ifndef HAVE_DIRNAME
234 extern char *dirname __PR((char *name));
235 #endif
236
237 #ifndef HAVE_TIMEGM
238 #if defined(_SCHILY_TIME_H)
239 extern time_t timegm __PR((struct tm *));
240 #endif
241 #endif
242
243 #ifndef HAVE_GETUID
244 extern uid_t getuid __PR((void));
245 #endif
246 #ifndef HAVE_GETEUID
247 extern uid_t geteuid __PR((void));
248 #endif
249 #ifndef HAVE_SETUID
250 extern int setuid __PR((uid_t uid));
251 #endif
252 #ifndef HAVE_SETEUID
253 extern int seteuid __PR((uid_t uid));
254 #endif
255
256 #ifndef HAVE_GETGID
257 extern gid_t getgid __PR((void));
258 #endif
259 #ifndef HAVE_GETEGID
260 extern gid_t getegid __PR((void));
261 #endif
262 #ifndef HAVE_SETGID
263 extern int setgid __PR((gid_t gid));
264 #endif
265 #ifndef HAVE_SETEGID
266 extern int setegid __PR((gid_t gid));
267 #endif
268
269 #ifndef HAVE_GETPWNAM
270 extern struct passwd *getpwnam __PR((const char *name));
271 #endif
272 #ifndef HAVE_GETPWENT
273 extern struct passwd *getpwent __PR((void));
274 #endif
275 #ifndef HAVE_GETPWUID
276 extern struct passwd *getpwuid __PR((uid_t uid));
277 #endif
278 #ifndef HAVE_SETPWENT
279 extern void setpwent __PR((void));
280 #endif
281 #ifndef HAVE_ENDPWENT
282 extern void endpwent __PR((void));
283 #endif
284
285
286 #ifndef HAVE_GETGRNAM
287 extern struct group *getgrnam __PR((const char *name));
288 #endif
289 #ifndef HAVE_GETGRENT
290 extern struct group *getgrent __PR((void));
291 #endif
292 #ifndef HAVE_GETGRGID
293 extern struct group *getgrgid __PR((gid_t gid));
294 #endif
295 #ifndef HAVE_SETGRENT
296 extern void setgrent __PR((void));
297 #endif
298 #ifndef HAVE_ENDGRENT
299 extern void endgrent __PR((void));
300 #endif
301
302 #ifndef HAVE_FCHDIR
303 extern int fchdir __PR((int fd));
304 #endif
305 #ifndef HAVE_OPENAT
306 extern int openat __PR((int fd, const char *name, int oflag, ...));
307 #endif
308
309
310 #ifndef HAVE_GETTIMEOFDAY
311 #ifdef _SCHILY_TIME_H
312 extern int gettimeofday __PR((struct timeval *__tp, void *__tzp));
313 #endif
314 #endif
315
316 #ifndef HAVE_FACCESSAT
317 extern int faccessat __PR((int fd, const char *name,
318 int amode, int flag));
319 #endif
320 #ifndef HAVE_FCHMODAT
321 extern int fchmodat __PR((int fd, const char *name,
322 mode_t mode, int flag));
323 #endif
324 #ifndef HAVE_LCHMOD
325 extern int lchmod __PR((const char *name, mode_t mode));
326 #endif
327
328 #ifndef HAVE_FCHOWNAT
329 extern int fchownat __PR((int fd, const char *name,
330 uid_t owner, gid_t group, int flag));
331 #endif
332
333 #ifndef HAVE_FDOPENDIR
334 #ifdef _SCHILY_DIRENT_H
335 extern DIR *fdopendir __PR((int fd));
336 #endif
337 #endif
338
339 #ifdef _SCHILY_STAT_H
340 #ifndef HAVE_FSTATAT
341 extern int fstatat __PR((int fd, const char *name,
342 struct stat *sbuf, int flag));
343 #endif
344 #endif /* _SCHILY_STAT_H */
345 #ifdef _SCHILY_TIME_H
346 #ifndef HAVE_FUTIMENS
347 extern int futimens __PR((int fd,
348 const struct timespec __times[2]));
349 #endif
350 #ifndef HAVE_FUTIMESAT
351 extern int futimesat __PR((int fd, const char *name,
352 const struct timeval __times[2]));
353 #endif
354 #ifndef HAVE_LUTIMENS
355 extern int lutimens __PR((const char *name,
356 const struct timespec __times[2]));
357 #endif
358 #endif /* _SCHILY_TIME_H */
359 #ifndef HAVE_LINKAT
360 extern int linkat __PR((int fd1, const char *name1,
361 int fd2, const char *name2, int flag));
362 #endif
363 #ifndef HAVE_MKDIRAT
364 extern int mkdirat __PR((int fd, const char *name, mode_t mode));
365 #endif
366 #ifndef HAVE_MKFIFO
367 extern int mkfifo __PR((const char *name, mode_t mode));
368 #endif
369 #ifndef HAVE_MKFIFOAT
370 extern int mkfifoat __PR((int fd, const char *name, mode_t mode));
371 #endif
372 #ifndef HAVE_MKNODAT
373 extern int mknodat __PR((int fd, const char *name,
374 mode_t mode, dev_t dev));
375 #endif
376 #ifndef HAVE_READLINKAT
377 extern ssize_t readlinkat __PR((int fd, const char *name,
378 char *lbuf, size_t lbufsize));
379 #endif
380 #ifndef HAVE_RENAMEAT
381 extern int renameat __PR((int oldfd, const char *old,
382 int newfd, const char *new));
383 #endif
384 #ifndef HAVE_SYMLINKAT
385 extern int symlinkat __PR((const char *content,
386 int fd, const char *name));
387 #endif
388 #ifndef HAVE_UNLINKAT
389 extern int unlinkat __PR((int fd, const char *name, int flag));
390 #endif
391 #ifdef _SCHILY_TIME_H
392 #ifndef HAVE_UTIMENS
393 extern int utimens __PR((const char *name,
394 const struct timespec __times[2]));
395 #endif
396 #ifndef HAVE_UTIMENSAT
397 extern int utimensat __PR((int fd, const char *name,
398 const struct timespec __times[2],
399 int flag));
400 #endif
401 #endif /* _SCHILY_TIME_H */
402
403 #ifdef __SUNOS4
404 /*
405 * Define prototypes for POSIX standard functions that are missing on SunOS-4.x
406 * to make compilation smooth.
407 */
408 #include <schily/sunos4_proto.h>
409
410 #endif /* __SUNOS4 */
411
412 #ifdef __cplusplus
413 }
414 #endif
415
416 #endif /* _SCHILY_LIBPORT_H */