This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
support POSIX::uname() via win32_uname()
[perl5.git] / iperlsys.h
index 7b220b9..03e3c08 100644 (file)
@@ -114,7 +114,7 @@ public:
     virtual int                Printf(PerlIO*, int &err, const char *,...) = 0;
     virtual int                Vprintf(PerlIO*, int &err, const char *, va_list) = 0;
     virtual long       Tell(PerlIO*, int &err) = 0;
-    virtual int                Seek(PerlIO*, off_t, int, int &err) = 0;
+    virtual int                Seek(PerlIO*, Off_t, int, int &err) = 0;
     virtual void       Rewind(PerlIO*, int &err) = 0;
     virtual PerlIO *   Tmpfile(int &err) = 0;
     virtual int                Getpos(PerlIO*, Fpos_t *, int &err) = 0;
@@ -322,10 +322,10 @@ extern int        PerlIO_sprintf          _((char *, int, const char *,...))
 extern int     PerlIO_vprintf          _((PerlIO *, const char *, va_list));
 #endif
 #ifndef PerlIO_tell
-extern long    PerlIO_tell             _((PerlIO *));
+extern Off_t   PerlIO_tell             _((PerlIO *));
 #endif
 #ifndef PerlIO_seek
-extern int     PerlIO_seek             _((PerlIO *,off_t,int));
+extern int     PerlIO_seek             _((PerlIO *, Off_t, int));
 #endif
 #ifndef PerlIO_rewind
 extern void    PerlIO_rewind           _((PerlIO *));
@@ -450,10 +450,12 @@ public:
     virtual int                Putenv(const char *envstring, int &err) = 0;
     virtual char *     LibPath(char *patchlevel) =0;
     virtual char *     SiteLibPath(char *patchlevel) =0;
+    virtual int                Uname(struct utsname *name, int &err) =0;
 };
 
 #define PerlEnv_putenv(str)            PL_piENV->Putenv((str), ErrorNo())
 #define PerlEnv_getenv(str)            PL_piENV->Getenv((str), ErrorNo())
+#define PerlEnv_uname(name)            PL_piENV->Uname((name), ErrorNo())
 #ifdef WIN32
 #define PerlEnv_lib_path(str)          PL_piENV->LibPath((str))
 #define PerlEnv_sitelib_path(str)      PL_piENV->SiteLibPath((str))
@@ -463,6 +465,7 @@ public:
 
 #define PerlEnv_putenv(str)            putenv((str))
 #define PerlEnv_getenv(str)            getenv((str))
+#define PerlEnv_uname(name)            uname((name))
 
 #endif /* PERL_OBJECT */
 
@@ -927,5 +930,22 @@ public:
 
 #endif /* PERL_OBJECT */
 
+/* Mention
+
+   HAS_READV
+   HAS_RECVMSG
+   HAS_SENDMSG
+   HAS_WRITEV
+   HAS_STRUCT_MSGHDR
+   HAS_STRUCT_CMSGHDR
+
+   here so that Configure picks them up.  Perl core does not
+   use them but somebody might want to extend Socket:: or IO::
+   someday.
+
+   Jarkko Hietaniemi November 1998
+
+   */
+
 #endif /* __Inc__IPerl___ */