You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2011/04/20 09:19:20 UTC

svn commit: r1095305 - in /commons/sandbox/runtime/trunk/src/main: java/org/apache/commons/runtime/platform/windows/Win32.java native/include/acr/stddefs.h native/os/unix/arch_defs.h native/os/win32/shmem.c

Author: mturk
Date: Wed Apr 20 07:19:19 2011
New Revision: 1095305

URL: http://svn.apache.org/viewvc?rev=1095305&view=rev
Log:
Add Win32 file mapping API wrappers

Modified:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/platform/windows/Win32.java
    commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h
    commons/sandbox/runtime/trunk/src/main/native/os/unix/arch_defs.h
    commons/sandbox/runtime/trunk/src/main/native/os/win32/shmem.c

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/platform/windows/Win32.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/platform/windows/Win32.java?rev=1095305&r1=1095304&r2=1095305&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/platform/windows/Win32.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/platform/windows/Win32.java Wed Apr 20 07:19:19 2011
@@ -36,38 +36,12 @@ final class Win32
         // No instance.
     }
 
-    /* ACR protection mappings */
-    public static final int         FPROT_USETID            = 0x8000; /**< Set user id */
-    public static final int         FPROT_UREAD             = 0x0400; /**< Read by user */
-    public static final int         FPROT_UWRITE            = 0x0200; /**< Write by user */
-    public static final int         FPROT_UEXECUTE          = 0x0100; /**< Execute by user */
-    public static final int         FPROT_URW               = 0x0600; /**< User Read/Write access */
-    public static final int         FPROT_URWX              = 0x0700; /**< User all access */
-
-    public static final int         FPROT_GSETID            = 0x4000; /**< Set group id */
-    public static final int         FPROT_GREAD             = 0x0040; /**< Read by group */
-    public static final int         FPROT_GWRITE            = 0x0020; /**< Write by group */
-    public static final int         FPROT_GEXECUTE          = 0x0010; /**< Execute by group */
-    public static final int         FPROT_GRW               = 0x0060; /**< Group Read/Write access */
-    public static final int         FPROT_GRWX              = 0x0070; /**< Group all access */
-
-    public static final int         FPROT_WSTICKY           = 0x2000; /**< Sticky bit */
-    public static final int         FPROT_WREAD             = 0x0004; /**< Read by others */
-    public static final int         FPROT_WWRITE            = 0x0002; /**< Write by others */
-    public static final int         FPROT_WEXECUTE          = 0x0001; /**< Execute by others */
-    public static final int         FPROT_WRW               = 0x0006; /**< Read/Write by others */
-    public static final int         FPROT_WRWX              = 0x0007; /**< All access by others */
-
-    public static final int         FPROT_OS_DEFAULT        = 0x0FFF; /**< use OS's default permissions */
-
-
     public static final int         INFINITE                = 0xFFFFFFFF;
     public static final int         WAIT_FAILED             = 0xFFFFFFFF;
     public static final int         WAIT_OBJECT_O           = 0;
     public static final int         WAIT_ABANDONED          = 0x00000080;
     public static final int         WAIT_TIMEOUT            = 0x00000102;
 
-
     /* Standard access rights   */
     public static final int         DELETE                  = 0x00010000;
     public static final int         READ_CONTROL            = 0x00020000;
@@ -149,6 +123,7 @@ final class Win32
     public static final int         PAGE_NOCACHE            = 0x00000200;
     public static final int         PAGE_WRITECOMBINE       = 0x00000400;
 
+    public static final long        INVALID_HANDLE_VALUE    = -1L;
 
     public static native int        CloseHandle(long handle);
     public static native int        LocalFree(long ptr);

Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h?rev=1095305&r1=1095304&r2=1095305&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr/stddefs.h Wed Apr 20 07:19:19 2011
@@ -255,6 +255,8 @@
 
 #define ACR_HBUFF_SIZ           8192
 #define ACR_HBUFF_LEN           (ACR_HBUFF_SIZ - 1)
+#define ACR_MTX_MAGIC           0x23036401
+#define ACR_SHM_MAGIC           0x23036402
 
 #if !defined(INVALID_HANDLE_VALUE)
 #define INVALID_HANDLE_VALUE ((void *)((ptrdiff_t)-1))

Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/arch_defs.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/arch_defs.h?rev=1095305&r1=1095304&r2=1095305&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/arch_defs.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/arch_defs.h Wed Apr 20 07:19:19 2011
@@ -77,8 +77,6 @@ typedef struct stat         struct_stat_
 #define ACR_CRLF            "\n"
 /* Any value will do */
 #define ACR_FTOK_ID         's'
-#define ACR_MTX_MAGIC       0x23036401
-#define ACR_SHM_MAGIC       0x23036402
 
 #if defined(_SOLARIS)
 # define SHELL_PATH         "/usr/xpg4/bin/sh"

Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/shmem.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/shmem.c?rev=1095305&r1=1095304&r2=1095305&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/shmem.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/shmem.c Wed Apr 20 07:19:19 2011
@@ -53,3 +53,20 @@ ACR_JNI_EXPORT(jobject, ShmImpl, init0)(
     return (*env)->NewObject(env, _clazzn.i, J4MID(0000));
 }
 
+ACR_WIN_EXPORT(void, WindowsShm, hdrset0)(JNI_STDARGS, jlong base, jlong size)
+{
+    shmblock_t *hdr = J2P(base, shmblock_t *);
+
+    hdr->magic   = ACR_SHM_MAGIC;
+    hdr->creator = GetCurrentProcessId();
+    hdr->length  = size;
+}
+
+ACR_WIN_EXPORT(jlong, WindowsShm, hdrlen0)(JNI_STDARGS, jlong base)
+{
+    shmblock_t *hdr = J2P(base, shmblock_t *);
+    if (hdr->magic == ACR_SHM_MAGIC)
+        return hdr->length;
+    else
+        return 0;
+}