[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / libport.h
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/libport.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/libport.h
new file mode 100644 (file)
index 0000000..38bac7f
--- /dev/null
@@ -0,0 +1,416 @@
+/* @(#)libport.h       1.44 15/05/09 Copyright 1995-2015 J. Schilling */
+/*
+ *     Prototypes for POSIX standard functions that may be missing on the
+ *     local platform and thus are implemented inside libschily.
+ *
+ *     Copyright (c) 1995-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+
+#ifndef _SCHILY_LIBPORT_H
+#define        _SCHILY_LIBPORT_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+#ifndef _SCHILY_UNISTD_H
+#include <schily/unistd.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
+#      ifndef  FOUND_SIZE_T
+#      define  FOUND_SIZE_T
+#      endif
+#endif
+#if    defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
+#      undef   FOUND_SIZE_T
+#endif
+
+#ifdef OPENSERVER
+/*
+ * Don't use the usleep() from libc on SCO's OPENSERVER.
+ * It will kill our processes with SIGALRM.
+ */
+/*
+ * Don't #undef HAVE_USLEEP in this file, SCO has a
+ * usleep() prototype in unistd.h
+ */
+/* #undef      HAVE_USLEEP */
+#endif
+
+#ifdef FOUND_SIZE_T
+/*
+ * We currently cannot define this here because there IRIX has a definition
+ * than violates the standard.
+ */
+#ifndef        HAVE_SNPRINTF
+/*PRINTFLIKE3*/
+extern int     snprintf __PR((char *, size_t, const char *, ...))
+                                       __printflike__(3, 4);
+#endif
+#endif
+
+#ifdef EOF             /* stdio.h has been included */
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_GETDELIM
+extern ssize_t getdelim        __PR((char **, size_t *, int, FILE *));
+#endif
+#endif
+#endif
+
+#ifndef        HAVE_GETHOSTID
+extern long            gethostid       __PR((void));
+#endif
+#ifndef        HAVE_GETPAGESIZE
+extern int             getpagesize     __PR((void));
+#endif
+#ifndef        HAVE_USLEEP
+extern int             usleep          __PR((int usec));
+#endif
+
+#ifndef        HAVE_STRCASECMP
+extern int             strcasecmp      __PR((const char *, const char *));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_STRNCASECMP
+extern         int             strncasecmp     __PR((const char *, const char *,
+                                               size_t));
+#endif
+#endif
+
+#ifndef        HAVE_STRCAT
+extern char            *strcat         __PR((char *s1, const char *s2));
+#endif
+#ifndef        HAVE_STRCHR
+extern char            *strchr         __PR((const char *s1, int c));
+#endif
+#ifndef        HAVE_STRCMP
+extern int             strcmp          __PR((const char *s1, const char *s2));
+#endif
+#ifndef        HAVE_STRCPY
+extern char            *strcpy         __PR((char *s1, const char *s2));
+#endif
+#if    !defined(HAVE_STRDUP) || defined(__SVR4)
+extern char            *strdup         __PR((const char *s));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_STRNDUP
+extern char            *strndup        __PR((const char *s, size_t len));
+#endif
+#ifndef        HAVE_STRLEN
+extern size_t          strlen          __PR((const char *s));
+#endif
+#ifndef        HAVE_STRNLEN
+extern size_t          strnlen         __PR((const char *s, size_t len));
+#endif
+#ifndef        HAVE_STRLCAT
+extern size_t          strlcat         __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRLCPY
+extern size_t          strlcpy         __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCAT
+extern char            *strncat        __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCMP
+extern int             strncmp         __PR((const char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCPY
+extern char            *strncpy        __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#endif /* FOUND_SIZE_T */
+#ifndef        HAVE_STRRCHR
+extern char            *strrchr        __PR((const char *s1, int c));
+#endif
+
+#ifndef        HAVE_STRSTR
+extern char            *strstr         __PR((const char *s1, const char *s2));
+#endif
+
+#ifdef _SCHILY_WCHAR_H
+#ifndef        HAVE_WCSCAT
+extern wchar_t         *wcscat         __PR((wchar_t *s1, const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSCHR
+extern wchar_t         *wcschr         __PR((const wchar_t *s1, wchar_t c));
+#endif
+#ifndef        HAVE_WCSCMP
+extern int             wcscmp          __PR((const wchar_t *s1,
+                                                       const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSCPY
+extern wchar_t         *wcscpy         __PR((wchar_t *s1, const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSDUP
+extern wchar_t         *wcsdup         __PR((const wchar_t *s));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_WCSNDUP
+extern wchar_t         *wcsndup        __PR((const wchar_t *s, size_t len));
+#endif
+#ifndef        HAVE_WCSLEN
+extern size_t          wcslen          __PR((const wchar_t *s));
+#endif
+#ifndef        HAVE_WCSNLEN
+extern size_t          wcsnlen         __PR((const wchar_t *s, size_t len));
+#endif
+#ifndef        HAVE_WCSLCAT
+extern size_t          wcslcat         __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSLCPY
+extern size_t          wcslcpy         __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCAT
+extern wchar_t         *wcsncat        __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCMP
+extern int             wcsncmp         __PR((const wchar_t *s1,
+                                                       const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCPY
+extern wchar_t         *wcsncpy        __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#endif /* FOUND_SIZE_T */
+#ifndef        HAVE_WCSRCHR
+extern wchar_t         *wcsrchr        __PR((const wchar_t *s1, wchar_t c));
+#endif
+
+#ifndef        HAVE_WCSSTR
+extern wchar_t         *wcsstr         __PR((const wchar_t *s1,
+                                                       const wchar_t *s2));
+#endif
+#endif /* _SCHILY_WCHAR_H */
+
+#ifndef        HAVE_RENAME
+extern int             rename          __PR((const char *old,
+                                                       const char *new));
+#endif
+
+/*
+ * XXX Note: libgen.h / -lgen on Solaris contain eaccess()
+ */
+#ifndef        HAVE_EACCESS
+extern int             eaccess         __PR((const char *name, int mode));
+#endif
+
+/*
+ * See also libgen.h
+ */
+#ifndef        HAVE_BASENAME
+extern char            *basename       __PR((char *name));
+#endif
+#ifndef        HAVE_DIRNAME
+extern char            *dirname        __PR((char *name));
+#endif
+
+#ifndef        HAVE_TIMEGM
+#if    defined(_SCHILY_TIME_H)
+extern time_t          timegm          __PR((struct tm *));
+#endif
+#endif
+
+#ifndef        HAVE_GETUID
+extern uid_t   getuid  __PR((void));
+#endif
+#ifndef        HAVE_GETEUID
+extern uid_t   geteuid __PR((void));
+#endif
+#ifndef        HAVE_SETUID
+extern int     setuid  __PR((uid_t uid));
+#endif
+#ifndef        HAVE_SETEUID
+extern int     seteuid __PR((uid_t uid));
+#endif
+
+#ifndef        HAVE_GETGID
+extern gid_t   getgid  __PR((void));
+#endif
+#ifndef        HAVE_GETEGID
+extern gid_t   getegid __PR((void));
+#endif
+#ifndef        HAVE_SETGID
+extern int     setgid  __PR((gid_t gid));
+#endif
+#ifndef        HAVE_SETEGID
+extern int     setegid __PR((gid_t gid));
+#endif
+
+#ifndef        HAVE_GETPWNAM
+extern struct passwd *getpwnam __PR((const char *name));
+#endif
+#ifndef        HAVE_GETPWENT
+extern struct passwd *getpwent __PR((void));
+#endif
+#ifndef        HAVE_GETPWUID
+extern struct passwd *getpwuid __PR((uid_t uid));
+#endif
+#ifndef        HAVE_SETPWENT
+extern void            setpwent __PR((void));
+#endif
+#ifndef        HAVE_ENDPWENT
+extern void            endpwent __PR((void));
+#endif
+
+
+#ifndef        HAVE_GETGRNAM
+extern struct group    *getgrnam __PR((const char *name));
+#endif
+#ifndef        HAVE_GETGRENT
+extern struct group    *getgrent __PR((void));
+#endif
+#ifndef        HAVE_GETGRGID
+extern struct group    *getgrgid __PR((gid_t gid));
+#endif
+#ifndef        HAVE_SETGRENT
+extern void            setgrent __PR((void));
+#endif
+#ifndef        HAVE_ENDGRENT
+extern void            endgrent __PR((void));
+#endif
+
+#ifndef        HAVE_FCHDIR
+extern int             fchdir __PR((int fd));
+#endif
+#ifndef        HAVE_OPENAT
+extern int             openat __PR((int fd, const char *name, int oflag, ...));
+#endif
+
+
+#ifndef        HAVE_GETTIMEOFDAY
+#ifdef _SCHILY_TIME_H
+extern int             gettimeofday __PR((struct timeval *__tp, void *__tzp));
+#endif
+#endif
+
+#ifndef        HAVE_FACCESSAT
+extern int             faccessat __PR((int fd, const char *name,
+                                       int amode, int flag));
+#endif
+#ifndef        HAVE_FCHMODAT
+extern int             fchmodat __PR((int fd, const char *name,
+                                       mode_t mode, int flag));
+#endif
+#ifndef        HAVE_LCHMOD
+extern int             lchmod __PR((const char *name, mode_t mode));
+#endif
+
+#ifndef        HAVE_FCHOWNAT
+extern int             fchownat __PR((int fd, const char *name,
+                                       uid_t owner, gid_t group, int flag));
+#endif
+
+#ifndef        HAVE_FDOPENDIR
+#ifdef _SCHILY_DIRENT_H
+extern DIR             *fdopendir __PR((int fd));
+#endif
+#endif
+
+#ifdef _SCHILY_STAT_H
+#ifndef        HAVE_FSTATAT
+extern int             fstatat __PR((int fd, const char *name,
+                                       struct stat *sbuf, int flag));
+#endif
+#endif /* _SCHILY_STAT_H */
+#ifdef _SCHILY_TIME_H
+#ifndef        HAVE_FUTIMENS
+extern int             futimens __PR((int fd,
+                                       const struct timespec __times[2]));
+#endif
+#ifndef        HAVE_FUTIMESAT
+extern int             futimesat __PR((int fd, const char *name,
+                                       const struct timeval __times[2]));
+#endif
+#ifndef        HAVE_LUTIMENS
+extern int             lutimens __PR((const char *name,
+                                       const struct timespec __times[2]));
+#endif
+#endif /* _SCHILY_TIME_H */
+#ifndef        HAVE_LINKAT
+extern int             linkat __PR((int fd1, const char *name1,
+                                       int fd2, const char *name2, int flag));
+#endif
+#ifndef        HAVE_MKDIRAT
+extern int             mkdirat __PR((int fd, const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKFIFO
+extern int             mkfifo __PR((const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKFIFOAT
+extern int             mkfifoat __PR((int fd, const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKNODAT
+extern int             mknodat __PR((int fd, const char *name,
+                                       mode_t mode, dev_t dev));
+#endif
+#ifndef        HAVE_READLINKAT
+extern ssize_t         readlinkat __PR((int fd, const char *name,
+                                       char *lbuf, size_t lbufsize));
+#endif
+#ifndef        HAVE_RENAMEAT
+extern int             renameat __PR((int oldfd, const char *old,
+                                       int newfd, const char *new));
+#endif
+#ifndef        HAVE_SYMLINKAT
+extern int             symlinkat __PR((const char *content,
+                                       int fd, const char *name));
+#endif
+#ifndef        HAVE_UNLINKAT
+extern int             unlinkat __PR((int fd, const char *name, int flag));
+#endif
+#ifdef _SCHILY_TIME_H
+#ifndef        HAVE_UTIMENS
+extern int             utimens __PR((const char *name,
+                                       const struct timespec __times[2]));
+#endif
+#ifndef        HAVE_UTIMENSAT
+extern int             utimensat __PR((int fd, const char *name,
+                                       const struct timespec __times[2],
+                                       int flag));
+#endif
+#endif /* _SCHILY_TIME_H */
+
+#ifdef __SUNOS4
+/*
+ * Define prototypes for POSIX standard functions that are missing on SunOS-4.x
+ * to make compilation smooth.
+ */
+#include <schily/sunos4_proto.h>
+
+#endif /* __SUNOS4 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_LIBPORT_H */