-#define PerlLIO_access(file, mode) \
- (*PL_LIO->pAccess)(PL_LIO, (file), (mode))
-#define PerlLIO_chmod(file, mode) \
- (*PL_LIO->pChmod)(PL_LIO, (file), (mode))
-#define PerlLIO_chown(file, owner, group) \
- (*PL_LIO->pChown)(PL_LIO, (file), (owner), (group))
-#define PerlLIO_chsize(fd, size) \
- (*PL_LIO->pChsize)(PL_LIO, (fd), (size))
-#define PerlLIO_close(fd) \
- (*PL_LIO->pClose)(PL_LIO, (fd))
-#define PerlLIO_dup(fd) \
- (*PL_LIO->pDup)(PL_LIO, (fd))
-#define PerlLIO_dup2(fd1, fd2) \
- (*PL_LIO->pDup2)(PL_LIO, (fd1), (fd2))
-#define PerlLIO_flock(fd, op) \
- (*PL_LIO->pFlock)(PL_LIO, (fd), (op))
-#define PerlLIO_fstat(fd, buf) \
- (*PL_LIO->pFileStat)(PL_LIO, (fd), (buf))
-#define PerlLIO_ioctl(fd, u, buf) \
- (*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf))
-#define PerlLIO_isatty(fd) \
- (*PL_LIO->pIsatty)(PL_LIO, (fd))
-#define PerlLIO_link(oldname, newname) \
- (*PL_LIO->pLink)(PL_LIO, (oldname), (newname))
-#define PerlLIO_lseek(fd, offset, mode) \
- (*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode))
-#define PerlLIO_lstat(name, buf) \
- (*PL_LIO->pLstat)(PL_LIO, (name), (buf))
-#define PerlLIO_mktemp(file) \
- (*PL_LIO->pMktemp)(PL_LIO, (file))
-#define PerlLIO_open(file, flag) \
- (*PL_LIO->pOpen)(PL_LIO, (file), (flag))
-#define PerlLIO_open3(file, flag, perm) \
- (*PL_LIO->pOpen3)(PL_LIO, (file), (flag), (perm))
-#define PerlLIO_read(fd, buf, count) \
- (*PL_LIO->pRead)(PL_LIO, (fd), (buf), (count))
-#define PerlLIO_rename(oname, newname) \
- (*PL_LIO->pRename)(PL_LIO, (oname), (newname))
-#define PerlLIO_setmode(fd, mode) \
- (*PL_LIO->pSetmode)(PL_LIO, (fd), (mode))
-#define PerlLIO_stat(name, buf) \
- (*PL_LIO->pNameStat)(PL_LIO, (name), (buf))
-#define PerlLIO_tmpnam(str) \
- (*PL_LIO->pTmpnam)(PL_LIO, (str))
-#define PerlLIO_umask(mode) \
- (*PL_LIO->pUmask)(PL_LIO, (mode))
-#define PerlLIO_unlink(file) \
- (*PL_LIO->pUnlink)(PL_LIO, (file))
-#define PerlLIO_utime(file, time) \
- (*PL_LIO->pUtime)(PL_LIO, (file), (time))
-#define PerlLIO_write(fd, buf, count) \
- (*PL_LIO->pWrite)(PL_LIO, (fd), (buf), (count))
-
-#else /* PERL_IMPLICIT_SYS */
-
-#define PerlLIO_access(file, mode) access((file), (mode))
-#define PerlLIO_chmod(file, mode) chmod((file), (mode))
-#define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp))
-#define PerlLIO_chsize(fd, size) chsize((fd), (size))
-#define PerlLIO_close(fd) close((fd))
-#define PerlLIO_dup(fd) dup((fd))
-#define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
-#define PerlLIO_flock(fd, op) FLOCK((fd), (op))
-#define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
-#define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
-#define PerlLIO_isatty(fd) isatty((fd))
-#define PerlLIO_link(oldname, newname) link((oldname), (newname))
-#define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
-#define PerlLIO_stat(name, buf) Stat((name), (buf))
-#ifdef HAS_LSTAT
-# define PerlLIO_lstat(name, buf) lstat((name), (buf))
-#else
-# define PerlLIO_lstat(name, buf) PerlLIO_stat((name), (buf))
-#endif
-#define PerlLIO_mktemp(file) mktemp((file))
-#define PerlLIO_mkstemp(file) mkstemp((file))
-#define PerlLIO_open(file, flag) open((file), (flag))
-#define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
-#define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
-#define PerlLIO_rename(old, new) rename((old), (new))
-#define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
-#define PerlLIO_tmpnam(str) tmpnam((str))
-#define PerlLIO_umask(mode) umask((mode))
-#define PerlLIO_unlink(file) unlink((file))
-#define PerlLIO_utime(file, time) utime((file), (time))
-#define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
-
-#endif /* PERL_IMPLICIT_SYS */
+# define PerlLIO_access(file, mode) \
+ (*PL_LIO->pAccess)(PL_LIO, (file), (mode))
+# define PerlLIO_chmod(file, mode) \
+ (*PL_LIO->pChmod)(PL_LIO, (file), (mode))
+# define PerlLIO_chown(file, owner, group) \
+ (*PL_LIO->pChown)(PL_LIO, (file), (owner), (group))
+# define PerlLIO_chsize(fd, size) \
+ (*PL_LIO->pChsize)(PL_LIO, (fd), (size))
+# define PerlLIO_close(fd) \
+ (*PL_LIO->pClose)(PL_LIO, (fd))
+# define PerlLIO_dup(fd) \
+ (*PL_LIO->pDup)(PL_LIO, (fd))
+# define PerlLIO_dup2(fd1, fd2) \
+ (*PL_LIO->pDup2)(PL_LIO, (fd1), (fd2))
+# define PerlLIO_flock(fd, op) \
+ (*PL_LIO->pFlock)(PL_LIO, (fd), (op))
+# define PerlLIO_fstat(fd, buf) \
+ (*PL_LIO->pFileStat)(PL_LIO, (fd), (buf))
+# define PerlLIO_ioctl(fd, u, buf) \
+ (*PL_LIO->pIOCtl)(PL_LIO, (fd), (u), (buf))
+# define PerlLIO_isatty(fd) \
+ (*PL_LIO->pIsatty)(PL_LIO, (fd))
+# define PerlLIO_link(oldname, newname) \
+ (*PL_LIO->pLink)(PL_LIO, (oldname), (newname))
+# define PerlLIO_symlink(oldname, newname) \
+ (*PL_LIO->pSymLink)(PL_LIO, (oldname), (newname))
+# define PerlLIO_readlink(path, buf, bufsiz) \
+ (*PL_LIO->pReadLink)(PL_LIO, (path), (buf), (bufsiz))
+# define PerlLIO_lseek(fd, offset, mode) \
+ (*PL_LIO->pLseek)(PL_LIO, (fd), (offset), (mode))
+# define PerlLIO_lstat(name, buf) \
+ (*PL_LIO->pLstat)(PL_LIO, (name), (buf))
+# define PerlLIO_mktemp(file) \
+ (*PL_LIO->pMktemp)(PL_LIO, (file))
+# define PerlLIO_open(file, flag) \
+ (*PL_LIO->pOpen)(PL_LIO, (file), (flag))
+# define PerlLIO_open3(file, flag, perm) \
+ (*PL_LIO->pOpen3)(PL_LIO, (file), (flag), (perm))
+# define PerlLIO_read(fd, buf, count) \
+ (*PL_LIO->pRead)(PL_LIO, (fd), (buf), (count))
+# define PerlLIO_rename(oname, newname) \
+ (*PL_LIO->pRename)(PL_LIO, (oname), (newname))
+# define PerlLIO_setmode(fd, mode) \
+ (*PL_LIO->pSetmode)(PL_LIO, (fd), (mode))
+# define PerlLIO_stat(name, buf) \
+ (*PL_LIO->pNameStat)(PL_LIO, (name), (buf))
+# define PerlLIO_tmpnam(str) \
+ (*PL_LIO->pTmpnam)(PL_LIO, (str))
+# define PerlLIO_umask(mode) \
+ (*PL_LIO->pUmask)(PL_LIO, (mode))
+# define PerlLIO_unlink(file) \
+ (*PL_LIO->pUnlink)(PL_LIO, (file))
+# define PerlLIO_utime(file, time) \
+ (*PL_LIO->pUtime)(PL_LIO, (file), (time))
+# define PerlLIO_write(fd, buf, count) \
+ (*PL_LIO->pWrite)(PL_LIO, (fd), (buf), (count))
+
+#else /* ! PERL_IMPLICIT_SYS */
+
+# define PerlLIO_access(file, mode) access((file), (mode))
+# define PerlLIO_chmod(file, mode) chmod((file), (mode))
+# define PerlLIO_chown(file, owner, grp) chown((file), (owner), (grp))
+# if defined(HAS_TRUNCATE)
+# define PerlLIO_chsize(fd, size) ftruncate((fd), (size))
+# elif defined(HAS_CHSIZE)
+# define PerlLIO_chsize(fd, size) chsize((fd), (size))
+# else
+# define PerlLIO_chsize(fd, size) my_chsize((fd), (size))
+# endif
+# define PerlLIO_close(fd) close((fd))
+# define PerlLIO_dup(fd) dup((fd))
+# define PerlLIO_dup2(fd1, fd2) dup2((fd1), (fd2))
+# define PerlLIO_flock(fd, op) FLOCK((fd), (op))
+# define PerlLIO_fstat(fd, buf) Fstat((fd), (buf))
+# define PerlLIO_ioctl(fd, u, buf) ioctl((fd), (u), (buf))
+# define PerlLIO_isatty(fd) isatty((fd))
+# define PerlLIO_link(oldname, newname) link((oldname), (newname))
+# define PerlLIO_symlink(oldname, newname) symlink((oldname), (newname))
+# define PerlLIO_readlink(path, buf, bufsiz) readlink((path), (buf), (bufsiz))
+# define PerlLIO_lseek(fd, offset, mode) lseek((fd), (offset), (mode))
+# define PerlLIO_stat(name, buf) Stat((name), (buf))
+# ifdef HAS_LSTAT
+# define PerlLIO_lstat(name, buf) lstat((name), (buf))
+# else
+# define PerlLIO_lstat(name, buf) PerlLIO_stat((name), (buf))
+# endif
+# define PerlLIO_mktemp(file) mktemp((file))
+# if defined(OEMVS)
+# if (__CHARSET_LIB == 1)
+ int asciiopen(const char* path, int oflag);
+ int asciiopen3(const char* path, int oflag, int perm);
+
+# define PerlLIO_open(file, flag) asciiopen((file), (flag))
+# define PerlLIO_open3(file, flag, perm) asciiopen3((file), (flag), (perm))
+# else
+# define PerlLIO_open(file, flag) open((file), (flag))
+# define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
+# endif
+# else
+# define PerlLIO_open(file, flag) open((file), (flag))
+# define PerlLIO_open3(file, flag, perm) open((file), (flag), (perm))
+# endif
+# define PerlLIO_read(fd, buf, count) read((fd), (buf), (count))
+# define PerlLIO_rename(old, new) rename((old), (new))
+# define PerlLIO_setmode(fd, mode) setmode((fd), (mode))
+# define PerlLIO_tmpnam(str) tmpnam((str))
+# define PerlLIO_umask(mode) umask((mode))
+# define PerlLIO_unlink(file) unlink((file))
+# define PerlLIO_utime(file, time) utime((file), (time))
+# define PerlLIO_write(fd, buf, count) write((fd), (buf), (count))
+
+#endif /* PERL_IMPLICIT_SYS */