#ifndef __vmsish_h_included
#define __vmsish_h_included
#include <descrip.h> /* for dirent struct definitions */
#include <libdef.h> /* status codes for various places */
#include <rmsdef.h> /* at which errno and vaxc$errno are */
#include <ssdef.h> /* explicitly set in the perl source code */
#include <stsdef.h> /* bitmasks for exit status testing */
#ifdef __DECC
# pragma message disable (ADDRCONSTEXT,NEEDCONSTEXT)
#endif
#ifdef __DECCXX
# pragma message informational (INTSIGNCHANGE,CASTQUALTYP,ASSCOMMEA,NOCTOBUTCONREFM,MISSINGRETURN)
#endif
#ifdef _toupper
# undef _toupper
#endif
#define _toupper(c) (((c) < 'a' || (c) > 'z') ? (c) : (c) & ~040)
#ifdef _tolower
# undef _tolower
#endif
#define _tolower(c) (((c) < 'A' || (c) > 'Z') ? (c) : (c) | 040)
#include <processes.h> /* for vfork() */
#include <unixio.h>
#include <unixlib.h>
#include <file.h> /* it's not <sys/file.h>, so don't use I_SYS_FILE */
#if (defined(__DECC) && defined(__DECC_VER) && __DECC_VER > 20000000) || defined(__DECCXX)
# include <unistd.h> /* DECC has this; gcc doesn't */
#endif
#ifdef NO_PERL_TYPEDEFS /* a2p; we don't want Perl's special routines */
# define DONT_MASK_RTL_CALLS
#endif
#include <namdef.h>
#ifndef VMS_MAXRSS
#ifdef NAML$C_MAXRSS
#define VMS_MAXRSS (NAML$C_MAXRSS+1)
#ifndef VMS_LONGNAME_SUPPORT
#define VMS_LONGNAME_SUPPORT 1
#endif /* VMS_LONGNAME_SUPPORT */
#endif /* NAML$C_MAXRSS */
#endif /* VMS_MAXRSS */
#ifndef VMS_MAXRSS
#define VMS_MAXRSS (NAM$C_MAXRSS + 1)
#endif
#ifndef MAXPATHLEN
#define MAXPATHLEN (VMS_MAXRSS - 1)
#endif
#define HAS_GETENV_SV
#define HAS_GETENV_LEN
#ifndef PERL_FOR_X2P
#ifndef DONT_MASK_RTL_CALLS
# ifdef getenv
# undef getenv
# endif
# define getenv(v) Perl_my_getenv(aTHX_ v,TRUE)
#endif
#ifdef getenv_len
# undef getenv_len
#endif
#define getenv_len(v,l) Perl_my_getenv_len(aTHX_ v,l,TRUE)
#define waitpid my_waitpid
#if !defined(MULTIPLICITY)
#define opendir Perl_opendir
#define rename Perl_rename
#define seekdir Perl_seekdir
#define readdir Perl_readdir
#define readdir_r Perl_readdir_r
#else
#define opendir(a) Perl_opendir(aTHX_ a)
#define rename(a,b) Perl_rename(aTHX_ a,b)
#define seekdir(a,b) Perl_seekdir(aTHX_ a,b)
#define readdir(a) Perl_readdir(aTHX_ a)
#define readdir_r(a,b,c) Perl_readdir_r(aTHX_ a,b,c)
#endif
#define closedir(a) Perl_closedir(a)
#define telldir(a) Perl_telldir(a)
#define vmsreaddirversions(a,b) Perl_vmsreaddirversions(a,b)
#define cando_by_name(a,b,c) Perl_cando_by_name(aTHX_ a,b,c)
#define do_rmdir(a) Perl_do_rmdir(aTHX_ a)
#define fileify_dirspec(a,b) Perl_fileify_dirspec(aTHX_ a,b)
#define fileify_dirspec(a,b) Perl_fileify_dirspec(aTHX_ a,b)
#define fileify_dirspec_ts(a,b) Perl_fileify_dirspec_ts(aTHX_ a,b)
#define fileify_dirspec_ts(a,b) Perl_fileify_dirspec_ts(aTHX_ a,b)
#define fileify_dirspec_utf8(a,b,c) Perl_fileify_dirspec(aTHX_ a,b,utf8)
#define fileify_dirspec_utf8_ts(a,b,c) Perl_fileify_dirspec_ts(aTHX_ a,b,utf8)
#define flex_fstat(a,b) Perl_flex_fstat(aTHX_ a,b)
#define flex_lstat(a,b) Perl_flex_lstat(aTHX_ a,b)
#define flex_stat(a,b) Perl_flex_stat(aTHX_ a,b)
#define init_os_extras Perl_init_os_extras
#define kill_file(a) Perl_kill_file(aTHX_ a)
#define my_chdir(a) Perl_my_chdir(aTHX_ a)
#define my_chmod(a,b) Perl_my_chmod(aTHX_ a,b)
#define my_crypt(a,b) Perl_my_crypt(aTHX_ a,b)
#define my_endpwent() Perl_my_endpwent(aTHX)
#define my_fclose(a) Perl_my_fclose(a)
#define my_fdopen(a,b) Perl_my_fdopen(a,b)
#define my_flush(a) Perl_my_flush(aTHX_ a)
#define my_fwrite(a,b,c,d) Perl_my_fwrite(a,b,c,d)
#define my_fgetname(a,b) Perl_my_fgetname(a,b)
#define my_gconvert(a,b,c,d) Perl_my_gconvert(a,b,c,d)
#define my_getenv(a,b) Perl_my_getenv(aTHX_ a,b)
#define my_getenv_len(a,b,c) Perl_my_getenv_len(aTHX_ a,b,c)
#define my_getpwent() Perl_my_getpwent(aTHX)
#define my_getpwnam(a) Perl_my_getpwnam(aTHX_ a)
#define my_getpwuid(a) Perl_my_getpwuid(aTHX_ a)
#define my_gmtime(a) Perl_my_gmtime(aTHX_ a)
#define my_localtime(a) Perl_my_localtime(aTHX_ a)
#define my_mkdir(a,b) Perl_my_mkdir(aTHX_ a,b)
#ifdef HAS_SYMLINK
# define my_symlink(a,b) Perl_my_symlink(aTHX_ a,b)
#endif
#define my_time(a) Perl_my_time(aTHX_ a)
#define my_tmpfile Perl_my_tmpfile
#define my_trnlnm(a,b,c) Perl_my_trnlnm(aTHX_ a,b,c)
#define my_utime(a,b) Perl_my_utime(aTHX_ a,b)
#define my_vfork Perl_my_vfork
#define my_waitpid(a,b,c) Perl_my_waitpid(aTHX_ a,b,c)
#define pathify_dirspec(a,b) Perl_pathify_dirspec(aTHX a,b)
#define pathify_dirspec_ts(a,b) Perl_pathify_dirspec_ts(aTHX a,b)
#define pathify_dirspec_utf8(a,b,c) Perl_pathify_dirspec_utf8(aTHX a,b,c)
#define pathify_dirspec_utf8_ts(a,b,c) Perl_pathify_dirspec_utf8_ts(aTHX a,b,c)
#define prime_env_iter Perl_prime_env_iter
#define rmscopy(a,b,c) Perl_rmscopy(aTHX_ a,b,c)
#define rmsexpand(a,b,c,d) Perl_rmsexpand_utf8(aTHX_ a,b,c,d,NULL,NULL)
#define rmsexpand_ts(a,b,c,d) Perl_rmsexpand_utf8_ts(aTHX_ a,b,c,d,NULL,NULL)
#define rmsexpand_utf8(a,b,c,d,e,f) Perl_rmsexpand_utf8(aTHX_ a,b,c,d,e,f)
#define rmsexpand_utf8_ts(a,b,c,d,e,f) Perl_rmsexpand_utf8_ts(aTHX_ a,b,c,d,e,f)
#define tounixpath(a,b) Perl_tounixpath_utf8(aTHX_ a,b,NULL)
#define tounixpath_ts(a,b) Perl_tounixpath_utf8_ts(aTHX_ a,b,NULL)
#define tounixpath_utf8(a,b,c) Perl_tounixpath_utf8(aTHX_ a,b,c)
#define tounixpath_utf8_ts(a,b,c) Perl_tounixpath_utf8_ts(aTHX_ a,b,c)
#define tounixspec(a,b) Perl_tounixspec_utf8(aTHX_ a,b,NULL)
#define tounixspec_ts(a,b) Perl_tounixspec_utf8_ts(aTHX_ a,b,NULL)
#define tounixspec_utf8(a,b,c) Perl_tounixspec_utf8(aTHX_ a,b,c)
#define tounixspec_utf8_ts(a,b,c) Perl_tounixspec_utf8_ts(aTHX_ a,b,c)
#define tovmspath(a,b) Perl_tovmspath_utf8(aTHX_ a,b,NULL)
#define tovmspath_ts(a,b) Perl_tovmspath_utf8_ts(aTHX_ a,b,NULL)
#define tovmspath_utf8(a,b,c) Perl_tovmspath_utf8(aTHX_ a,b,c)
#define tovmspath_utf8_ts(a,b,c) Perl_tovmspath_utf8_ts(aTHX_ a,b,c)
#define tovmsspec(a,b) Perl_tovmsspec_utf8(aTHX_ a,b,NULL)
#define tovmsspec_ts(a,b) Perl_tovmsspec_utf8_ts(aTHX_ a,b)
#define tovmsspec_utf8(a,b,c) Perl_tovmsspec_utf8(aTHX_ a,b,c)
#define tovmsspec_utf8_ts(a,b,c) Perl_tovmsspec_utf8_ts(aTHX_ a,b,c)
#define trim_unixpath(a,b,c) Perl_trim_unixpath(aTHX_ a,b,c)
#define vms_do_aexec(a,b,c) Perl_vms_do_aexec(aTHX_ a,b,c)
#define vms_do_exec(a) Perl_vms_do_exec(aTHX_ a)
#define vms_case_tolerant(a) Perl_vms_case_tolerant(a)
#define vms_image_init(a,b) Perl_vms_image_init(a,b)
#define vms_realname(a,b,c) Perl_vms_realname(aTHX_ a,b,c)
#define vms_realpath(a,b,c) Perl_vms_realpath(aTHX_ a,b,c)
#define vmssetenv(a,b,c) Perl_vmssetenv(aTHX_ a,b,c)
#define vmstrnenv(a,b,c,d,e) Perl_vmstrnenv(a,b,c,d,e)
#define vmssetuserlnm(a,b) Perl_vmssetuserlnm(a,b)
#define unlink(a) kill_file(a)
#define fork my_vfork
#ifndef DONT_MASK_RTL_CALLS /* #defined in vms.c so we see real vfork */
# ifdef vfork
# undef vfork
# endif
# define vfork my_vfork
#endif
#ifndef DONT_MASK_RTL_CALLS
# define tmpfile Perl_my_tmpfile
#endif
#endif
#define BIG_TIME
#undef ACME_MESS /**/
#define ALTERNATE_SHEBANG "$"
#if (defined(__DECC) || defined(__DECCXX)) && !defined(__ALPHA)
# define set_errno(v) (cma$tis_errno_set_value(v))
void
cma$tis_errno_set_value(
int
__value);
# define set_vaxc_errno(v) (vaxc$errno = (v))
#else
# define set_errno(v) (errno = (v))
# define set_vaxc_errno(v) (vaxc$errno = (v))
#endif
#define COMPLEX_STATUS 1 /* We track both "POSIX" and VMS values */
#define HINT_M_VMSISH_STATUS 0x40000000 /* system, $? return VMS status */
#define HINT_M_VMSISH_TIME 0x80000000 /* times are local, not UTC */
#ifdef MULTIPLICITY
# define TEST_VMSISH(h) (my_perl && PL_curcop && (PL_curcop->cop_hints & (h)))
#else
# define TEST_VMSISH(h) (PL_curcop && (PL_curcop->cop_hints & (h)))
#endif
#define VMSISH_STATUS TEST_VMSISH(HINT_M_VMSISH_STATUS)
#define VMSISH_TIME TEST_VMSISH(HINT_M_VMSISH_TIME)
#define HAVE_INTERP_INTERN
struct
interp_intern {
int
hushed;
int
posix_exit;
double
inv_rand_max;
};
#define VMSISH_HUSHED (PL_sys_intern.hushed)
#define MY_INV_RAND_MAX (PL_sys_intern.inv_rand_max)
#define MY_POSIX_EXIT (PL_sys_intern.posix_exit)
#define PERL__TRNENV_SECURE 0x01
#define PERL__TRNENV_JOIN_SEARCHLIST 0x02
#define _ckvmssts(call) STMT_START { unsigned long int __ckvms_sts; \
if
(!((__ckvms_sts=(call))&1)) { \
set_errno(EVMSERR); set_vaxc_errno(__ckvms_sts); \
Perl_croak(aTHX_
"Fatal VMS error (status=%d) at %s, line %d"
, \
__ckvms_sts,__FILE__,__LINE__); } } STMT_END
#define _ckvmssts_noperl(call) STMT_START { unsigned long int __ckvms_sts; \
if
(!((__ckvms_sts=(call))&1)) { \
set_errno(EVMSERR); set_vaxc_errno(__ckvms_sts); \
(
void
)
fprintf
(stderr,
"Fatal VMS error (status=%d) at %s, line %d"
, \
__ckvms_sts,__FILE__,__LINE__); (
void
)lib$
signal
(__ckvms_sts); } } STMT_END
#ifdef VMS_DO_SOCKETS
#define PERL_SOCK_SYSREAD_IS_RECV
#define PERL_SOCK_SYSWRITE_IS_SEND
#endif
#define BIT_BUCKET "/dev/null"
#define PERL_SYS_INIT_BODY(c,v) MALLOC_CHECK_TAINT2(*c,*v) vms_image_init((c),(v)); PERLIO_INIT; MALLOC_INIT
#define PERL_SYS_TERM_BODY() HINTS_REFCNT_TERM; OP_REFCNT_TERM; \
PERLIO_TERM; MALLOC_TERM; LOCALE_TERM; \
ENV_TERM;
#define dXSUB_SYS dNOOP
#define HAS_KILL
#define HAS_WAIT
#ifndef PERL_CORE
# define PERL_FS_VER_FMT "%d_%d_%d"
#endif
#define PERL_FS_VERSION STRINGIFY(PERL_REVISION) "_" \
STRINGIFY(PERL_VERSION)
"_"
\
STRINGIFY(PERL_SUBVERSION)
#ifdef PERL_INC_VERSION_LIST
# undef PERL_INC_VERSION_LIST
#endif
#ifndef VMS
#define VMS /**/
#endif
#define HAS_IOCTL /**/
#define HAS_UTIME /**/
#define HAS_GROUP /**/
#define HAS_PASSWD /**/
#define HAS_KILL
#define HAS_WAIT
#undef USEMYBINMODE
#define Stat_t struct mystat
#undef USE_STAT_RDEV /**/
#define fwrite1 my_fwrite
#ifndef DONT_MASK_RTL_CALLS
# define fwrite my_fwrite /* for PerlSIO_fwrite */
# define fdopen my_fdopen
# define fclose my_fclose
# define fgetname(a, b) my_fgetname(a, b)
#ifdef HAS_SYMLINK
# define symlink my_symlink
#endif
#endif
#define Fflush(fp) my_flush(fp)
#ifndef DONT_MASK_RTL_CALLS
#define rmdir(name) do_rmdir(name)
#endif
# include <signal.h>
#define ABORT() abort()
#ifdef I_UTIME
#include <utime.h>
#else
struct
utimbuf {
time_t
actime;
time_t
modtime;
};
#endif
#ifndef DONT_MASK_RTL_CALLS
#define utime my_utime
#endif
#define tbuffer_t struct tms
#define gmtime(t) my_gmtime(t)
#define localtime(t) my_localtime(t)
#define time(t) my_time(t)
#ifndef DONT_MASK_RTL_CALLS
# define sigaction(a,b,c) Perl_my_sigaction(aTHX_ a,b,c)
#endif
#ifdef KILL_BY_SIGPRC
# define kill Perl_my_kill
#endif
# define killpg Perl_my_killpg
#define sys_nerr EVMSERR /* EVMSERR is as high as we can go. */
#define DYNAMIC_ENV_FETCH 1
#define ENVgetenv(v) my_getenv(v,FALSE)
#define ENVgetenv_len(v,l) my_getenv_len(v,l,FALSE)
#define crypt(a,b) Perl_my_crypt(aTHX_ a,b)
#define Mkdir(dir,mode) Perl_my_mkdir(aTHX_ (dir),(mode))
#define Chdir(dir) my_chdir((dir))
#ifndef DONT_MASK_RTL_CALLS
#define chmod(file_spec, mode) my_chmod((file_spec), (mode))
#endif
#define Stat(name,bufptr) flex_stat(name,bufptr)
#define Fstat(fd,bufptr) Perl_flex_fstat(aTHX_ fd,bufptr)
#ifndef DONT_MASK_RTL_CALLS
#define lstat(name, bufptr) flex_lstat(name, bufptr)
#endif
#define PERL_VMSDIR_M_VERSIONS 0x02 /* Want VMS versions */
#define PERL_VMSDIR_M_UNIXSPECS 0x04 /* Want UNIX specifications */
struct
dirent {
char
d_name[256];
int
d_namlen;
int
vms_verscount;
int
vms_versions[20];
};
typedef
struct
_dirdesc {
long
context;
int
flags;
unsigned
long
int
count;
char
*pattern;
struct
dirent entry;
struct
dsc$descriptor_s pat;
void
*mutex;
} DIR;
#define rewinddir(dirp) seekdir((dirp), 0)
struct
passwd {
char
*pw_name;
char
*pw_passwd;
Uid_t pw_uid;
Gid_t pw_gid;
char
*pw_comment;
char
*pw_gecos;
char
*pw_dir;
char
*pw_shell;
};
#define pw_unixdir pw_comment /* Default device/directory (Unix-style) */
#define getpwnam my_getpwnam
#define getpwuid my_getpwuid
#define getpwent my_getpwent
#define endpwent my_endpwent
#define setpwent my_endpwent
#include <stat.h>
#if defined(__DECC) || defined(__DECCXX)
# pragma __member_alignment __save
# pragma member_alignment
#endif
typedef
unsigned mydev_t;
#if !defined(_USE_STD_STAT) && !defined(_LARGEFILE)
typedef
unsigned myino_t;
#else
typedef
__ino64_t myino_t;
#endif
struct
mystat
{
struct
stat crtl_stat;
myino_t st_ino;
#if !defined(_USE_STD_STAT) && !defined(_LARGEFILE)
unsigned rvn;
#endif
mydev_t st_dev;
char
st_devnam[256];
};
#define st_mode crtl_stat.st_mode
#define st_nlink crtl_stat.st_nlink
#define st_uid crtl_stat.st_uid
#define st_gid crtl_stat.st_gid
#define st_rdev crtl_stat.st_rdev
#define st_size crtl_stat.st_size
#define st_atime crtl_stat.st_atime
#define st_mtime crtl_stat.st_mtime
#define st_ctime crtl_stat.st_ctime
#define st_fab_rfm crtl_stat.st_fab_rfm
#define st_fab_rat crtl_stat.st_fab_rat
#define st_fab_fsz crtl_stat.st_fab_fsz
#define st_fab_mrs crtl_stat.st_fab_mrs
#if defined(_USE_STD_STAT) || defined(_LARGEFILE)
#define VMS_INO_T_COMPARE(__a, __b) (__a != __b)
#define VMS_INO_T_COPY(__a, __b) __a = __b
#else
#define VMS_INO_T_COMPARE(__a, __b) memcmp(&__a, &__b, 6)
#define VMS_INO_T_COPY(__a, __b) memcpy(&__a, &__b, 6)
#endif
#if defined(__DECC) || defined(__DECCXX)
# pragma __member_alignment __restore
#endif
#ifndef DONT_MASK_RTL_CALLS /* defined for vms.c so we can see RTL calls */
# ifdef stat
# undef stat
# endif
# define stat mystat
# define dev_t mydev_t
# define ino_t myino_t
#endif
#define S_IDUSR (S_IWUSR | S_IXUSR)
#define S_IDGRP (S_IWGRP | S_IXGRP)
#define S_IDOTH (S_IWOTH | S_IXOTH)
#ifndef PERL_FOR_X2P
#ifdef __cplusplus
extern
"C"
{
#endif
void
prime_env_iter (
void
);
void
init_os_extras (
void
);
int
Perl_vms_status_to_unix(
int
vms_status,
int
child_flag);
int
Perl_unix_status_to_vms(
int
unix_status);
int
Perl_vmstrnenv (
const
char
*,
char
*, unsigned
long
int
,
struct
dsc$descriptor_s **, unsigned
long
int
);
char
* Perl_vms_realpath (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_my_getenv (pTHX_
const
char
*,
bool
);
int
Perl_my_trnlnm (pTHX_
const
char
*,
char
*, unsigned
long
int
);
char
* Perl_tounixspec (pTHX_
const
char
*,
char
*);
char
* Perl_tounixspec_ts (pTHX_
const
char
*,
char
*);
char
* Perl_tounixspec_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tounixspec_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tovmsspec (pTHX_
const
char
*,
char
*);
char
* Perl_tovmsspec_ts (pTHX_
const
char
*,
char
*);
char
* Perl_tovmsspec_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tovmsspec_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tounixpath (pTHX_
const
char
*,
char
*);
char
* Perl_tounixpath_ts (pTHX_
const
char
*,
char
*);
char
* Perl_tounixpath_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tounixpath_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tovmspath (pTHX_
const
char
*,
char
*);
char
* Perl_tovmspath_ts (pTHX_
const
char
*,
char
*);
char
* Perl_tovmspath_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_tovmspath_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
int
Perl_do_rmdir (pTHX_
const
char
*);
char
* Perl_fileify_dirspec (pTHX_
const
char
*,
char
*);
char
* Perl_fileify_dirspec_ts (pTHX_
const
char
*,
char
*);
char
* Perl_fileify_dirspec_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_fileify_dirspec_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_pathify_dirspec (pTHX_
const
char
*,
char
*);
char
* Perl_pathify_dirspec_ts (pTHX_
const
char
*,
char
*);
char
* Perl_pathify_dirspec_utf8 (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_pathify_dirspec_utf8_ts (pTHX_
const
char
*,
char
*,
int
*);
char
* Perl_rmsexpand (pTHX_
const
char
*,
char
*,
const
char
*, unsigned);
char
* Perl_rmsexpand_ts (pTHX_
const
char
*,
char
*,
const
char
*, unsigned);
char
* Perl_rmsexpand_utf8 (pTHX_
const
char
*,
char
*,
const
char
*, unsigned,
int
*,
int
*);
char
* Perl_rmsexpand_utf8_ts (pTHX_
const
char
*,
char
*,
const
char
*, unsigned,
int
*,
int
*);
int
Perl_trim_unixpath (pTHX_
char
*,
const
char
*,
int
);
DIR * Perl_opendir (pTHX_
const
char
*);
int
Perl_rename (pTHX_
const
char
*,
const
char
*);
int
Perl_rmscopy (pTHX_
const
char
*,
const
char
*,
int
);
int
Perl_my_mkdir (pTHX_
const
char
*, Mode_t);
bool
Perl_vms_do_aexec (pTHX_ SV *, SV **, SV **);
int
Perl_vms_case_tolerant(
void
);
char
* Perl_my_getenv_len (pTHX_
const
char
*, unsigned
long
*,
bool
);
int
Perl_vmssetenv (pTHX_
const
char
*,
const
char
*,
struct
dsc$descriptor_s **);
void
Perl_vmssetuserlnm(
const
char
*name,
const
char
*eqv);
char
* Perl_my_crypt (pTHX_
const
char
*,
const
char
*);
Pid_t Perl_my_waitpid (pTHX_ Pid_t,
int
*,
int
);
char
* my_gconvert (
double
,
int
,
int
,
char
*);
int
Perl_kill_file (pTHX_
const
char
*);
int
Perl_my_chdir (pTHX_
const
char
*);
int
Perl_my_chmod(pTHX_
const
char
*, mode_t);
FILE
* Perl_my_tmpfile (
void
);
int
Perl_my_sigaction (pTHX_
int
,
const
struct
sigaction*,
struct
sigaction*);
#ifdef KILL_BY_SIGPRC
unsigned
int
Perl_sig_to_vmscondition (
int
);
int
Perl_my_kill (
int
,
int
);
int
Perl_my_killpg (
int
,
int
);
void
Perl_csighandler_init (
void
);
#endif
int
Perl_my_utime (pTHX_
const
char
*,
const
struct
utimbuf *);
void
Perl_vms_image_init (
int
*,
char
***);
struct
dirent * Perl_readdir (pTHX_ DIR *);
int
Perl_readdir_r(pTHX_ DIR *,
struct
dirent *,
struct
dirent **);
long
Perl_telldir (DIR *);
void
Perl_seekdir (pTHX_ DIR *,
long
);
void
Perl_closedir (DIR *);
void
vmsreaddirversions (DIR *,
int
);
struct
tm
* Perl_my_gmtime (pTHX_
const
time_t
*);
struct
tm
* Perl_my_localtime (pTHX_
const
time_t
*);
time_t
Perl_my_time (pTHX_
time_t
*);
I32 Perl_cando_by_name (pTHX_ I32,
bool
,
const
char
*);
int
Perl_flex_fstat (pTHX_
int
, Stat_t *);
int
Perl_flex_lstat (pTHX_
const
char
*, Stat_t *);
int
Perl_flex_stat (pTHX_
const
char
*, Stat_t *);
int
my_vfork (
void
);
bool
Perl_vms_do_exec (pTHX_
const
char
*);
FILE
* my_fdopen (
int
,
const
char
*);
int
my_fclose (
FILE
*);
int
my_fwrite (
const
void
*,
size_t
,
size_t
,
FILE
*);
char
* Perl_my_fgetname (
FILE
*fp,
char
*buf);
#ifdef HAS_SYMLINK
int
Perl_my_symlink(pTHX_
const
char
*path1,
const
char
*path2);
#endif
int
Perl_my_flush (pTHX_
FILE
*);
struct
passwd * Perl_my_getpwnam (pTHX_
const
char
*name);
struct
passwd * Perl_my_getpwuid (pTHX_ Uid_t uid);
void
Perl_my_endpwent (pTHX);
#ifdef __DECCXX
double
exp2(
double
__x);
double
fdim(
double
__x,
double
__y);
double
fma(
double
__x,
double
__y,
double
__z);
double
fmax(
double
__x,
double
__y);
double
fmin(
double
__x,
double
__y);
double
nexttoward(
double
__x,
long
double
__y);
double
remainder(
double
__x,
double
__y);
double
remquo(
double
__x,
double
__y,
int
*__quo);
double
tgamma(
double
__x);
float
exp2f(
float
__x);
float
fdimf(
float
__x,
float
__y);
float
fmaf(
float
__x,
float
__y,
float
__z);
float
fmaxf(
float
__x,
float
__y);
float
fminf(
float
__x,
float
__y);
float
nexttowardf(
float
__x,
long
double
__y);
float
remainderf(
float
__x,
float
__y);
float
remquof(
float
__x,
float
__y,
int
*__quo);
float
tgammaf(
float
__x);
long
double
exp2l(
long
double
__x);
long
double
fdiml(
long
double
__x,
long
double
__y);
long
double
fmal(
long
double
__x,
long
double
__y,
long
double
__z);
long
double
fmaxl(
long
double
__x,
long
double
__y);
long
double
fminl(
long
double
__x,
long
double
__y);
long
double
nexttowardl(
long
double
__x,
long
double
__y);
long
double
remainderl(
long
double
__x,
long
double
__y);
long
double
remquol(
long
double
__x,
long
double
__y,
int
*__quo);
long
double
tgammal(
long
double
__x);
int
ilogb(
double
__x);
int
ilogbf(
float
__x);
int
ilogbl(
long
double
__x);
long
int
lrint(
double
__x);
long
int
lrintf(
float
__x);
long
int
lrintl(
long
double
__x);
long
int
lround(
double
__x);
long
int
lroundf(
float
__x);
long
int
lroundl(
long
double
__x);
#endif
#ifdef __cplusplus
}
#endif
#endif
#ifndef VMS_DO_SOCKETS
#undef HAS_HTONS
#undef HAS_NTOHS
#undef HAS_HTONL
#undef HAS_NTOHL
#endif
#if defined(fileno) && defined(__DECC_VER) && __DECC_VER < 50300000
# undef fileno
#endif
#define NO_ENVIRON_ARRAY
#define PERL_RMSEXPAND_M_VMS 0x02 /* Force output to VMS format */
#define PERL_RMSEXPAND_M_LONG 0x04 /* Expand to long name format */
#define PERL_RMSEXPAND_M_VMS_IN 0x08 /* Assume input is VMS already */
#define PERL_RMSEXPAND_M_SYMLINK 0x20 /* Use symbolic link, not target */
#ifdef USE_LONG_DOUBLE
# define NAN_COMPARE_BROKEN 1
#endif
#endif /* __vmsish_h_included */