As suggested by Arthur: the threads and threads::shared
[p5sagit/p5-mst-13.2.git] / iperlsys.h
index d3e8254..7ed5862 100644 (file)
@@ -275,9 +275,16 @@ struct IPerlStdIOInfo
 #define PerlSIO_stdout                 stdout
 #define PerlSIO_stderr                 stderr
 #define PerlSIO_fopen(x,y)             fopen(x,y)
+#ifdef __VOS__
+/* Work around VOS bug posix-979, wrongly setting errno when at end of file. */
+#define PerlSIO_fclose(f)              (((errno==1025)?errno=0:0),fclose(f))
+#define PerlSIO_feof(f)                        (((errno==1025)?errno=0:0),feof(f))
+#define PerlSIO_ferror(f)              (((errno==1025)?errno=0:0),ferror(f))
+#else
 #define PerlSIO_fclose(f)              fclose(f)
 #define PerlSIO_feof(f)                        feof(f)
 #define PerlSIO_ferror(f)              ferror(f)
+#endif
 #define PerlSIO_clearerr(f)            clearerr(f)
 #define PerlSIO_fgetc(f)                       fgetc(f)
 #ifdef FILE_base
@@ -542,11 +549,6 @@ struct IPerlEnvInfo
 #define PerlEnv_putenv(str)            putenv((str))
 #define PerlEnv_getenv(str)            getenv((str))
 #define PerlEnv_getenv_len(str,l)      getenv_len((str), (l))
-#define PerlEnv_clearenv()             clearenv()
-#define PerlEnv_get_childenv()         get_childenv()
-#define PerlEnv_free_childenv(e)       free_childenv((e))
-#define PerlEnv_get_childdir()         get_childdir()
-#define PerlEnv_free_childdir(d)       free_childdir((d))
 #ifdef HAS_ENVGETENV
 #  define PerlEnv_ENVgetenv(str)       ENVgetenv((str))
 #  define PerlEnv_ENVgetenv_len(str,l) ENVgetenv_len((str), (l))
@@ -562,6 +564,17 @@ struct IPerlEnvInfo
 #define PerlEnv_sitelib_path(str)      win32_get_sitelib(str)
 #define PerlEnv_vendorlib_path(str)    win32_get_vendorlib(str)
 #define PerlEnv_get_child_IO(ptr)      win32_get_child_IO(ptr)
+#define PerlEnv_clearenv()             win32_clearenv()
+#define PerlEnv_get_childenv()         win32_get_childenv()
+#define PerlEnv_free_childenv(e)       win32_free_childenv((e))
+#define PerlEnv_get_childdir()         win32_get_childdir()
+#define PerlEnv_free_childdir(d)       win32_free_childdir((d))
+#else
+#define PerlEnv_clearenv()             clearenv()
+#define PerlEnv_get_childenv()         get_childenv()
+#define PerlEnv_free_childenv(e)       free_childenv((e))
+#define PerlEnv_get_childdir()         get_childdir()
+#define PerlEnv_free_childdir(d)       free_childdir((d))
 #endif
 
 #endif /* PERL_IMPLICIT_SYS */
@@ -789,6 +802,25 @@ struct IPerlMemInfo
        (*PL_Mem->pIsLocked)(PL_Mem)
 
 /* Shared memory macros */
+#ifdef NETWARE
+  
+ #define PerlMemShared_malloc(size)                        \
+       (*PL_Mem->pMalloc)(PL_Mem, (size))
+#define PerlMemShared_realloc(buf, size)                   \
+       (*PL_Mem->pRealloc)(PL_Mem, (buf), (size))
+#define PerlMemShared_free(buf)                                    \
+       (*PL_Mem->pFree)(PL_Mem, (buf))
+#define PerlMemShared_calloc(num, size)                            \
+       (*PL_Mem->pCalloc)(PL_Mem, (num), (size))
+#define PerlMemShared_get_lock()                           \
+       (*PL_Mem->pGetLock)(PL_Mem)
+#define PerlMemShared_free_lock()                          \
+       (*PL_Mem->pFreeLock)(PL_Mem)
+#define PerlMemShared_is_locked()                          \
+       (*PL_Mem->pIsLocked)(PL_Mem)
+
+#else
+
 #define PerlMemShared_malloc(size)                         \
        (*PL_MemShared->pMalloc)(PL_MemShared, (size))
 #define PerlMemShared_realloc(buf, size)                   \
@@ -804,6 +836,7 @@ struct IPerlMemInfo
 #define PerlMemShared_is_locked()                          \
        (*PL_MemShared->pIsLocked)(PL_MemShared)
 
+#endif
 
 /* Parse tree memory macros */
 #define PerlMemParse_malloc(size)                          \
@@ -1077,6 +1110,8 @@ struct IPerlProcInfo
        win32_dynaload((f))
 #define PerlProc_GetOSError(s,e)                                       \
        win32_str_os_error((s), (e))
+#undef PerlProc_signal
+#define PerlProc_signal(n, h) win32_signal((n), (h))
 #endif
 #endif /* PERL_IMPLICIT_SYS */