harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From telli...@apache.org
Subject svn commit: r382065 [7/10] - in /incubator/harmony/enhanced/classlib/trunk: modules/security/make/ modules/security/make/native/linux/ modules/security/make/native/windows/ native-src/ native-src/linux.IA32/ native-src/linux.IA32/archive/ native-src/li...
Date Wed, 01 Mar 2006 15:43:11 GMT
Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/port/portpriv.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/port/portpriv.h?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/port/portpriv.h (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/port/portpriv.h Wed Mar  1 07:42:53 2006
@@ -0,0 +1,1401 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(portlibraryprivatedefines_h)
+#define portlibraryprivatedefines_h
+
+#include "hycomp.h"
+#include "hyportpg.h"
+#include "hyportptb.h"
+#include "hyport.h"
+#include "hymutex.h"
+
+/* The following defines are used by hyshmem and hyshsem */
+#define HYSH_MAXPATH HyMaxPath
+#define HyVersionMajor 0
+#define HyVersionMinor 1
+#define HYSH_VERSION (HyVersionMajor*100 + HyVersionMinor)
+#define HYSH_MODLEVEL 1
+#define HYSH_ADDRMODE 32
+#define VERSION_STRING_SPEC "C%dD%dA%d"
+#define GET_VERSION_STRING(portLib, versionStr)\
+											 portLib->str_printf(portLib, versionStr, 30, VERSION_STRING_SPEC,\
+											 HYSH_VERSION, HYSH_MODLEVEL, HYSH_ADDRMODE)
+#define HYSH_DIRPERM (01777)
+#define HYSH_BASEFILEPERM (0640)
+/* Maximum id we should try when we do ftok */
+#define HYSH_MAX_PROJ_ID 20
+/*
+ * We are going to fix the "base directory", where all the token files are created.
+ * For Windows it does not need to be in a valid path, however on Unix it should
+ * be somewhere that is public and world writable.
+ * In future we may move it into a static variable of some sort, and changable at startup
+ */
+#if defined(WIN32)
+#define HYSH_BASEDIR "javasharedresources\\"
+#else
+#define HYSH_BASEDIR "/tmp/javasharedresources/"
+#endif
+/*end hyshsem and hyshmem common module */
+typedef struct HyPortControlData
+{
+  UDATA sig_flags;
+  UDATA shmem_group_perm;
+} HyPortControlData;
+#define HYSIZEOF_HyPortControlData 8
+typedef struct HyNLSDataCache
+{
+  char *baseCatalogPaths[4];
+  UDATA nPaths;
+  char *baseCatalogName;
+  char *baseCatalogExtension;
+  char *catalog;
+  char language[4];
+  char region[4];
+  char variant[32];
+  struct HyThreadMonitor *monitor;
+  struct HyNLSHashEntry *hash_buckets[256];
+  struct HyNLSHashEntry *old_hashEntries;
+} HyNLSDataCache;
+#define HYNLS_NUM_HASH_BUCKETS  0x100
+#define HYSIZEOF_HyNLSDataCache 1104
+typedef struct HyNLSHashEntry
+{
+  U_32 module_name;
+  U_32 message_num;
+  struct HyNLSHashEntry *next;
+  char message[8];
+} HyNLSHashEntry;
+#define HYSIZEOF_HyNLSHashEntry 20
+typedef struct HyPortLibraryGlobalData
+{
+  struct HyPortControlData control;
+  struct HyNLSDataCache nls_data;
+  hythread_tls_key_t tls_key;
+  MUTEX tls_mutex;
+  void *buffer_list;
+  struct HyPortPlatformGlobals platformGlobals;
+} HyPortLibraryGlobalData;
+#define HYSIZEOF_HyPortLibraryGlobalData sizeof(HyPortLibraryGlobalData)
+/* HySourceHyCPUControl*/
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hycpu_flush_icache
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *memoryPointer,
+            UDATA byteAmount));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hycpu_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hycpu_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyError*/
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hyerror_last_error_message PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyerror_set_last_error
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 platformCode,
+            I_32 portableCode));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyerror_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyerror_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyerror_set_last_error_with_message
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 portableCode,
+            const char *errorMessage));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyerror_last_error_number PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyErrorHelpers*/
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  errorMessage
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 errorCode));
+/* HySourceHyExit*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyexit_get_exit_code PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyexit_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyexit_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyexit_shutdown_and_exit
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 exitCode));
+/* HySourceHyFile*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_unlink
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_close PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_mkdir
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyfile_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_set_length
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, I_64 newLength));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_findnext
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA findhandle,
+            char *resultbuf));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL hyfile_sync
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyfile_vprintf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, const char *format,
+            va_list args));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyfile_printf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, const char *format,
+            ...));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_unlinkdir
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyfile_open
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path, I_32 flags,
+            I_32 mode));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hyfile_findfirst
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path,
+            char *resultbuf));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_move
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *pathExist,
+            const char *pathNew));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyfile_attr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyfile_findclose
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA findhandle));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyfile_read
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, void *buf,
+            IDATA nbytes));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyfile_write
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, const void *buf,
+            IDATA nbytes));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hyfile_error_message PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_64 VMCALL
+  hyfile_seek
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, I_64 offset,
+            I_32 whence));
+struct HyPortLibrary;
+extern HY_CFUNC I_64 VMCALL
+  hyfile_length
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+struct HyPortLibrary;
+extern HY_CFUNC I_64 VMCALL
+  hyfile_lastmod
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path));
+/* HySourceHyFileText*/
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyfile_write_text
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, const char *buf,
+            IDATA nbytes));
+struct HyPortLibrary;
+extern HY_CFUNC char *VMCALL
+  hyfile_read_text
+PROTOTYPE ((struct HyPortLibrary * portLibrary, IDATA fd, char *buf,
+            IDATA nbytes));
+/* HySourceHyGP*/
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hygp_register_handler
+PROTOTYPE ((struct HyPortLibrary * portLibrary, handler_fn fn,
+            void *aUserData));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hygp_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hygp_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hygp_protect
+PROTOTYPE ((struct HyPortLibrary * portLibrary, protected_fn fn, void *arg));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hygp_info_count
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *info, U_32 category));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hygp_info
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *info, U_32 category,
+            I_32 index, const char **name, void **value));
+/* HySourceHyIPCMutex*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyipcmutex_release
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *name));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyipcmutex_acquire
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *name));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyipcmutex_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyipcmutex_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyMem*/
+extern HY_CFUNC void VMCALL
+  hymem_deallocate_portLibrary PROTOTYPE ((void *memoryPointer));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hymem_allocate_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA byteAmount));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hymem_startup
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA portGlobalSize));
+extern HY_CFUNC void *VMCALL hymem_allocate_portLibrary
+PROTOTYPE ((UDATA byteAmount));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hymem_reallocate_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *memoryPointer,
+            UDATA byteAmount));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hymem_allocate_memory_callSite
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA byteAmount,
+            char *callSite));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hymem_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hymem_free_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *memoryPointer));
+/* HySourceHyMemoryMap*/
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hymmap_unmap_file
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hymmap_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hymmap_capabilities PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hymmap_map_file
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *path,
+            void **handle));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hymmap_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyNLS*/
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hynls_get_language PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hynls_get_variant PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hynls_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hynls_vprintf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA flags, U_32 module_name,
+            U_32 message_num, va_list args));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hynls_set_catalog
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char **paths,
+            const int nPaths, const char *baseName, const char *extension));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hynls_set_locale
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *lang,
+            const char *region, const char *variant));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hynls_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hynls_printf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA flags, U_32 module_name,
+            U_32 message_num, ...));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hynls_lookup_message
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA flags, U_32 module_name,
+            U_32 message_num, const char *default_string));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hynls_get_region PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyNLSHelpers*/
+struct HyPortLibrary;
+extern HY_CFUNC void
+  nls_determine_locale PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyOSDump*/
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hydump_create
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *filename,
+            char *dumpType, void *userData));
+/* HySourceHyPortControl*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_control
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *key, UDATA value));
+/* HySourceHyPortPerThreadBuffer*/
+/* HySourceHyPortTLSHelpers*/
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyport_tls_free PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_tls_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hyport_tls_peek PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void *VMCALL
+  hyport_tls_get PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyport_tls_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHySharedMemory*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyshmem_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyshmem_findnext
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA findhandle,
+            char *resultbuf));
+struct hyshmem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshmem_detach
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshmem_handle ** handle));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyshmem_findclose
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA findhandle));
+struct hyshmem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyshmem_close
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshmem_handle ** handle));
+struct HyPortLibrary;
+struct hyshmem_handle;
+extern HY_CFUNC void *VMCALL
+  hyshmem_attach
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshmem_handle * handle));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hyshmem_findfirst
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *resultbuf));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyshmem_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortShmemStatistic;
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hyshmem_stat
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *name,
+            struct HyPortShmemStatistic * statbuf));
+struct hyshmem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshmem_destroy
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshmem_handle ** handle));
+struct hyshmem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshmem_open
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshmem_handle ** handle, const char *rootname, I_32 size,
+            I_32 perm));
+/* HySourceHySharedSemaphore*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyshsem_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+struct hyshsem_handle;
+extern HY_CFUNC void VMCALL
+  hyshsem_close
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle ** handle));
+struct hyshsem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_post
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle * handle, UDATA semset, UDATA flag));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyshsem_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+struct hyshsem_handle;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_destroy
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle ** handle));
+struct hyshsem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_setVal
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle * handle, UDATA semset, IDATA value));
+struct hyshsem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_open
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle ** handle, const char *semname, int setSize,
+            int permission));
+struct hyshsem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_getVal
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle * handle, UDATA semset));
+struct hyshsem_handle;
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hyshsem_wait
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyshsem_handle * handle, UDATA semset, UDATA flag));
+/* HySourceHySI*/
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hysysinfo_get_executable_name
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *argv0, char **result));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hysysinfo_get_OS_type PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_64 VMCALL
+  hysysinfo_get_physical_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_DLPAR_max_CPUs PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_get_number_CPUs PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hysysinfo_get_CPU_architecture
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_get_processing_capacity
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hysysinfo_get_OS_version PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysysinfo_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_DLPAR_enabled PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hysysinfo_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_get_pid PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_16 VMCALL
+  hysysinfo_get_classpathSeparator
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hysysinfo_get_username
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *buffer, UDATA length));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysysinfo_weak_memory_consistency
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hysysinfo_get_env
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *envVar,
+            char *infoString, UDATA bufSize));
+/* HySourceHySignal*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysig_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hysig_get_options PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysig_can_protect
+PROTOTYPE ((struct HyPortLibrary * portLibrary, U_32 flags));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hysig_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hysig_info_count
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *info, U_32 category));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysig_set_options
+PROTOTYPE ((struct HyPortLibrary * portLibrary, U_32 options));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysig_protect
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysig_protected_fn fn,
+            void *fn_arg, hysig_handler_fn handler, void *handler_arg,
+            U_32 flags, UDATA * result));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hysig_set_async_signal_handler
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysig_handler_fn handler,
+            void *handler_arg, U_32 flags));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hysig_info
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *info, U_32 category,
+            I_32 index, const char **name, void **value));
+/* HySourceHySL*/
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_lookup_name
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor, char *name,
+            UDATA * func, const char *argSignature));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_close_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysl_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_open_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *name,
+            UDATA * descriptor, BOOLEAN decorate));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hysl_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyStr*/
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hystr_vprintf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *buf, U_32 bufLen,
+            const char *format, va_list args));
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hystr_printf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *buf, U_32 bufLen,
+            const char *format, ...));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hystr_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hystr_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyStrFTime*/
+struct HyPortLibrary;
+extern HY_CFUNC U_32 VMCALL
+  hystrftime
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *buf, U_32 bufLen,
+            const char *format));
+/* HySourceHyTime*/
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hytime_usec_clock PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_64 VMCALL
+  hytime_hires_clock PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC U_64 VMCALL
+  hytime_hires_delta
+PROTOTYPE ((struct HyPortLibrary * portLibrary, U_64 startTime, U_64 endTime,
+            UDATA requiredResolution));
+struct HyPortLibrary;
+extern HY_CFUNC U_64 VMCALL
+  hytime_hires_frequency PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hytime_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_64 VMCALL
+  hytime_current_time_millis PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytime_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hytime_msec_clock PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourceHyTTY*/
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytty_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hytty_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytty_err_printf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *format, ...));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hytty_get_chars
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *s, UDATA length));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytty_printf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *format, ...));
+struct HyPortLibrary;
+extern HY_CFUNC IDATA VMCALL
+  hytty_available PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytty_vprintf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *format,
+            va_list args));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hytty_err_vprintf
+PROTOTYPE ((struct HyPortLibrary * portLibrary, const char *format,
+            va_list args));
+/* HySourceHyVMem*/
+struct HyPortLibrary;
+struct HyPortVmemIdentifier;
+extern HY_CFUNC void *VMCALL
+  hyvmem_commit_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *address,
+            UDATA byteAmount, struct HyPortVmemIdentifier * identifier));
+struct HyPortLibrary;
+struct HyPortVmemIdentifier;
+extern HY_CFUNC IDATA VMCALL
+  hyvmem_decommit_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *address,
+            UDATA byteAmount, struct HyPortVmemIdentifier * identifier));
+struct HyPortLibrary;
+struct HyPortVmemIdentifier;
+extern HY_CFUNC void *VMCALL
+  hyvmem_reserve_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *address,
+            UDATA byteAmount, struct HyPortVmemIdentifier * identifier,
+            UDATA mode, UDATA pageSize));
+struct HyPortLibrary;
+extern HY_CFUNC void VMCALL
+  hyvmem_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA *VMCALL
+  hyvmem_supported_page_sizes
+PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+struct HyPortVmemIdentifier;
+extern HY_CFUNC I_32 VMCALL
+  hyvmem_free_memory
+PROTOTYPE ((struct HyPortLibrary * portLibrary, void *address,
+            UDATA byteAmount, struct HyPortVmemIdentifier * identifier));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyvmem_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+/* HySourcePort*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_shutdown_library PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibraryVersion;
+extern HY_CFUNC UDATA VMCALL
+  hyport_getSize PROTOTYPE ((struct HyPortLibraryVersion * version));
+struct HyPortLibraryVersion;
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_getVersion
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct HyPortLibraryVersion * version));
+struct HyPortLibraryVersion;
+extern HY_CFUNC I_32 VMCALL
+  hyport_isCompatible
+PROTOTYPE ((struct HyPortLibraryVersion * expectedVersion));
+struct HyPortLibraryVersion;
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_allocate_library
+PROTOTYPE ((struct HyPortLibraryVersion * version,
+            struct HyPortLibrary ** portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_isFunctionOverridden
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA offset));
+struct HyPortLibraryVersion;
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_init_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct HyPortLibraryVersion * version, UDATA size));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_startup_library PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibraryVersion;
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hyport_create_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct HyPortLibraryVersion * version, UDATA size));
+/* HySourceSockets*/
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_hostent_addrlist
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyhostent_t handle,
+            U_32 index));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *name,
+            hyaddrinfo_t hints, hyaddrinfo_t result));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_int
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, I_32 * optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_shutdown PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_hostent_aliaslist
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyhostent_t handle,
+            char ***aliasList));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_fdset_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo_create_hints
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t * result,
+            I_16 family, I_32 socktype, I_32 protocol, I_32 flags));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_connect_with_timeout
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock,
+            hysockaddr_t addr, U_32 timeout, U_32 step, U_8 ** context));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getpeername
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t handle,
+            hysockaddr_t addrHandle));
+struct HyPortLibrary;
+extern HY_CFUNC const char *VMCALL
+  hysock_error_message PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getnameinfo
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t in_addr,
+            I_32 sockaddr_size, char *name, I_32 name_length, int flags));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_ipv6_mreq
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hyipv6_mreq_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_inetaddr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *addrStr, U_32 * addr));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_bind
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock,
+            hysockaddr_t addr));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_connect
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock,
+            hysockaddr_t addr));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_listen
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock,
+            I_32 backlog));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_bool
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, BOOLEAN * optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_readfrom
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock, U_8 * buf,
+            I_32 nbyte, I_32 flags, hysockaddr_t addrHandle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getopt_bool
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, BOOLEAN * optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_fdset_size
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_ipmreq
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hyipmreq_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_writeto
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock, U_8 * buf,
+            I_32 nbyte, I_32 flags, hysockaddr_t addrHandle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_linger_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hylinger_t handle,
+            I_32 enabled, U_16 timeout));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_select_read
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t hysocketP,
+            I_32 secTime, I_32 uSecTime, BOOLEAN accept));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle,
+            char *addrStr, U_16 port));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_gethostbyaddr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *addr, I_32 length,
+            I_32 type, hyhostent_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_inetntoa
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char **addrStr,
+            U_32 nipAddr));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_linger_enabled
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hylinger_t handle,
+            BOOLEAN * enabled));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_select
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 nfds, hyfdset_t readfds,
+            hyfdset_t writefds, hyfdset_t exceptfds, hytimeval_t timeout));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_startup PROTOTYPE ((struct HyPortLibrary * portLibrary));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_linger_linger
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hylinger_t handle,
+            U_16 * linger));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo_name
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t handle,
+            char *name, int index));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr_address
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr_address6
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle,
+            U_8 * address, U_32 * length, U_32 * scope_id));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_write
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock, U_8 * buf,
+            I_32 nbyte, I_32 flags));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_shutdown_input
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock));
+struct hyNetworkInterfaceArray_struct;
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_free_network_interface_struct
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyNetworkInterfaceArray_struct * array));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_read
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock, U_8 * buf,
+            I_32 nbyte, I_32 flags));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_socket
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t * handle,
+            I_32 family, I_32 socktype, I_32 protocol));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_close
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t * sock));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_gethostname
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *buffer, I_32 length));
+struct HyPortLibrary;
+extern HY_CFUNC U_16 VMCALL
+  hysock_sockaddr_port
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_gethostbyname
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *name,
+            hyhostent_t handle));
+struct HyPortLibrary;
+struct hyNetworkInterfaceArray_struct;
+extern HY_CFUNC I_32 VMCALL
+  hysock_get_network_interfaces
+PROTOTYPE ((struct HyPortLibrary * portLibrary,
+            struct hyNetworkInterfaceArray_struct * array,
+            BOOLEAN preferIPv4Stack));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo_length
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t handle,
+            I_32 * length));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_ipv6_mreq_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyipv6_mreq_t handle,
+            U_8 * ipmcast_addr, U_32 ipv6mr_interface));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_htonl PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 val));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getsockname
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t handle,
+            hysockaddr_t addrHandle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_freeaddrinfo
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC U_16 VMCALL
+  hysock_htons PROTOTYPE ((struct HyPortLibrary * portLibrary, U_16 val));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle,
+            I_16 family, U_32 nipAddr, U_16 nPort));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo_address
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t handle,
+            U_8 * address, int index, U_32 * scope_id));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_socketIsValid
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC U_16 VMCALL
+  hysock_ntohs PROTOTYPE ((struct HyPortLibrary * portLibrary, U_16 val));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_ntohl PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 val));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr_init6
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysockaddr_t handle,
+            U_8 * addr, I_32 addrlength, I_16 family, U_16 nPort,
+            U_32 flowinfo, U_32 scope_id, hysocket_t sock));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getaddrinfo_family
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyaddrinfo_t handle,
+            I_32 * family, int index));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_sockaddr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hysockaddr_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_linger
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hylinger_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getopt_linger
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hylinger_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getopt_sockaddr
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, hysockaddr_t optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setflag
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_32 flag, I_32 * arg));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_shutdown_output
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t sock));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_hostent_hostname
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyhostent_t handle,
+            char **hostName));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_accept
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t serverSock,
+            hysockaddr_t addrHandle, hysocket_t * sockHandle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_sockaddr_family
+PROTOTYPE ((struct HyPortLibrary * portLibrary, I_16 * family,
+            hysockaddr_t handle));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_ipmreq_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hyipmreq_t handle,
+            U_32 nipmcast, U_32 nipinterface));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_timeval_init
+PROTOTYPE ((struct HyPortLibrary * portLibrary, U_32 secTime, U_32 uSecTime,
+            hytimeval_t timeP));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_set_nonblocking
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            BOOLEAN nonblocking));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getopt_int
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, I_32 * optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_setopt_byte
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, U_8 * optval));
+struct HyPortLibrary;
+extern HY_CFUNC I_32 VMCALL
+  hysock_getopt_byte
+PROTOTYPE ((struct HyPortLibrary * portLibrary, hysocket_t socketP,
+            I_32 optlevel, I_32 optname, U_8 * optval));
+/* HySourceStaticSL*/
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_up_open_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *name,
+            UDATA * descriptor, BOOLEAN decorate));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_split_close_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_up_close_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_split_open_shared_library
+PROTOTYPE ((struct HyPortLibrary * portLibrary, char *name,
+            UDATA * descriptor, BOOLEAN decorate));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_split_lookup_name
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor, char *name,
+            UDATA * func, const char *argSignature));
+struct HyPortLibrary;
+extern HY_CFUNC UDATA VMCALL
+  hysl_up_lookup_name
+PROTOTYPE ((struct HyPortLibrary * portLibrary, UDATA descriptor, char *name,
+            UDATA * func, const char *argSignature));
+static HyPortLibrary MasterPortLibraryTable = {
+  {HYPORT_MAJOR_VERSION_NUMBER, HYPORT_MINOR_VERSION_NUMBER, 0, HYPORT_CAPABILITY_MASK},        /* portVersion */
+  NULL,                         /* portGlobals */
+  hyport_shutdown_library,      /* port_shutdown_library */
+  hyport_isFunctionOverridden,  /* port_isFunctionOverridden */
+  hyport_tls_free,              /* port_tls_free */
+  hyerror_startup,              /* error_startup */
+  hyerror_shutdown,             /* error_shutdown */
+  hyerror_last_error_number,    /* error_last_error_number */
+  hyerror_last_error_message,   /* error_last_error_message */
+  hyerror_set_last_error,       /* error_set_last_error */
+  hyerror_set_last_error_with_message,  /* error_set_last_error_with_message */
+  hytime_startup,               /* time_startup */
+  hytime_shutdown,              /* time_shutdown */
+  hytime_msec_clock,            /* time_msec_clock */
+  hytime_usec_clock,            /* time_usec_clock */
+  hytime_current_time_millis,   /* time_current_time_millis */
+  hytime_hires_clock,           /* time_hires_clock */
+  hytime_hires_frequency,       /* time_hires_frequency */
+  hytime_hires_delta,           /* time_hires_delta */
+  hysysinfo_startup,            /* sysinfo_startup */
+  hysysinfo_shutdown,           /* sysinfo_shutdown */
+  hysysinfo_get_pid,            /* sysinfo_get_pid */
+  hysysinfo_get_physical_memory,        /* sysinfo_get_physical_memory */
+  hysysinfo_get_OS_version,     /* sysinfo_get_OS_version */
+  hysysinfo_get_env,            /* sysinfo_get_env */
+  hysysinfo_get_CPU_architecture,       /* sysinfo_get_CPU_architecture */
+  hysysinfo_get_OS_type,        /* sysinfo_get_OS_type */
+  hysysinfo_get_classpathSeparator,     /* sysinfo_get_classpathSeparator */
+  hysysinfo_get_executable_name,        /* sysinfo_get_executable_name */
+  hysysinfo_get_number_CPUs,    /* sysinfo_get_number_CPUs */
+  hysysinfo_get_username,       /* sysinfo_get_username */
+  hyfile_startup,               /* file_startup */
+  hyfile_shutdown,              /* file_shutdown */
+  hyfile_write,                 /* file_write */
+  hyfile_write_text,            /* file_write_text */
+  hyfile_vprintf,               /* file_vprintf */
+  hyfile_printf,                /* file_printf */
+  hyfile_open,                  /* file_open */
+  hyfile_close,                 /* file_close */
+  hyfile_seek,                  /* file_seek */
+  hyfile_read,                  /* file_read */
+  hyfile_unlink,                /* file_unlink */
+  hyfile_attr,                  /* file_attr */
+  hyfile_lastmod,               /* file_lastmod */
+  hyfile_length,                /* file_length */
+  hyfile_set_length,            /* file_set_length */
+  hyfile_sync,                  /* file_sync */
+  hysl_startup,                 /* sl_startup */
+  hysl_shutdown,                /* sl_shutdown */
+#if defined(HYVM_STATIC_LINKAGE)
+  hysl_split_close_shared_library,      /* sl_close_shared_library */
+  hysl_split_open_shared_library,       /* sl_open_shared_library */
+  hysl_split_lookup_name,       /* sl_lookup_name */
+#else
+  hysl_close_shared_library,    /* sl_close_shared_library */
+  hysl_open_shared_library,     /* sl_open_shared_library */
+  hysl_lookup_name,             /* sl_lookup_name */
+#endif /* HYVM_STATIC_LINKAGE */
+hytty_startup,                /* tty_startup */
+  hytty_shutdown,               /* tty_shutdown */
+  hytty_printf,                 /* tty_printf */
+  hytty_vprintf,                /* tty_vprintf */
+  hytty_get_chars,              /* tty_get_chars */
+  hytty_err_printf,             /* tty_err_printf */
+  hytty_err_vprintf,            /* tty_err_vprintf */
+  hytty_available,              /* tty_available */
+  hymem_startup,                /* mem_startup */
+  hymem_shutdown,               /* mem_shutdown */
+  hymem_allocate_memory,        /* mem_allocate_memory */
+  hymem_allocate_memory_callSite,       /* mem_allocate_memory_callSite */
+  hymem_free_memory,            /* mem_free_memory */
+  hymem_reallocate_memory,      /* mem_reallocate_memory */
+  hycpu_startup,                /* cpu_startup */
+  hycpu_shutdown,               /* cpu_shutdown */
+  hycpu_flush_icache,           /* cpu_flush_icache */
+  hyvmem_startup,               /* vmem_startup */
+  hyvmem_shutdown,              /* vmem_shutdown */
+  hyvmem_commit_memory,         /* vmem_commit_memory */
+  hyvmem_decommit_memory,       /* vmem_decommit_memory */
+  hyvmem_free_memory,           /* vmem_free_memory */
+  hyvmem_reserve_memory,        /* vmem_reserve_memory */
+  hyvmem_supported_page_sizes,  /* vmem_supported_page_sizes */
+  hysock_startup,               /* sock_startup */
+  hysock_shutdown,              /* sock_shutdown */
+  hysock_htons,                 /* sock_htons */
+  hysock_write,                 /* sock_write */
+  hysock_sockaddr,              /* sock_sockaddr */
+  hysock_read,                  /* sock_read */
+  hysock_socket,                /* sock_socket */
+  hysock_close,                 /* sock_close */
+  hysock_connect,               /* sock_connect */
+  hysock_inetaddr,              /* sock_inetaddr */
+  hysock_gethostbyname,         /* sock_gethostbyname */
+  hysock_hostent_addrlist,      /* sock_hostent_addrlist */
+  hysock_sockaddr_init,         /* sock_sockaddr_init */
+  hysock_linger_init,           /* sock_linger_init */
+  hysock_setopt_linger,         /* sock_setopt_linger */
+  hygp_startup,                 /* gp_startup */
+  hygp_shutdown,                /* gp_shutdown */
+  hygp_protect,                 /* gp_protect */
+  hygp_register_handler,        /* gp_register_handler */
+  hygp_info,                    /* gp_info */
+  hygp_info_count,              /* gp_info_count */
+  NULL,                         /* gp_handler_function DANGER: only initialized on SEH platforms, and is done in hygp.c */
+  hystr_startup,                /* str_startup */
+  hystr_shutdown,               /* str_shutdown */
+  hystr_printf,                 /* str_printf */
+  hystr_vprintf,                /* str_vprintf */
+  hyexit_startup,               /* exit_startup */
+  hyexit_shutdown,              /* exit_shutdown */
+  hyexit_get_exit_code,         /* exit_get_exit_code */
+  hyexit_shutdown_and_exit,     /* exit_shutdown_and_exit */
+  NULL,                         /* self_handle */
+  hydump_create,                /* dump_create */
+  hynls_startup,                /* nls_startup */
+  hynls_shutdown,               /* nls_shutdown */
+  hynls_set_catalog,            /* nls_set_catalog */
+  hynls_set_locale,             /* nls_set_locale */
+  hynls_get_language,           /* nls_get_language */
+  hynls_get_region,             /* nls_get_region */
+  hynls_get_variant,            /* nls_get_variant */
+  hynls_printf,                 /* nls_printf */
+  hynls_vprintf,                /* nls_vprintf */
+  hynls_lookup_message,         /* nls_lookup_message */
+  hyipcmutex_startup,           /* ipcmutex_startup */
+  hyipcmutex_shutdown,          /* ipcmutex_shutdown */
+  hyipcmutex_acquire,           /* ipcmutex_acquire */
+  hyipcmutex_release,           /* ipcmutex_release */
+  hyport_control,               /* port_control */
+  hysig_startup,                /* sig_startup */
+  hysig_shutdown,               /* sig_shutdown */
+  hysig_protect,                /* sig_protect */
+  hysig_can_protect,            /* sig_can_protect */
+  hysig_set_async_signal_handler,       /* sig_set_async_signal_handler */
+  hysig_info,                   /* sig_info */
+  hysig_info_count,             /* sig_info_count */
+  hysig_set_options,            /* sig_set_options */
+  hysig_get_options,            /* sig_get_options */
+  NULL,                         /* attached_thread */
+  hysysinfo_DLPAR_enabled,      /* sysinfo_DLPAR_enabled */
+  hysysinfo_DLPAR_max_CPUs,     /* sysinfo_DLPAR_max_CPUs */
+  hysysinfo_weak_memory_consistency,    /* sysinfo_weak_memory_consistency */
+  hyfile_read_text,             /* file_read_text */
+  hyfile_mkdir,                 /* file_mkdir */
+  hyfile_move,                  /* file_move */
+  hyfile_unlinkdir,             /* file_unlinkdir */
+  hyfile_findfirst,             /* file_findfirst */
+  hyfile_findnext,              /* file_findnext */
+  hyfile_findclose,             /* file_findclose */
+  hyfile_error_message,         /* file_error_message */
+  hysock_htonl,                 /* sock_htonl */
+  hysock_bind,                  /* sock_bind */
+  hysock_accept,                /* sock_accept */
+  hysock_shutdown_input,        /* sock_shutdown_input */
+  hysock_shutdown_output,       /* sock_shutdown_output */
+  hysock_listen,                /* sock_listen */
+  hysock_ntohl,                 /* sock_ntohl */
+  hysock_ntohs,                 /* sock_ntohs */
+  hysock_getpeername,           /* sock_getpeername */
+  hysock_getsockname,           /* sock_getsockname */
+  hysock_readfrom,              /* sock_readfrom */
+  hysock_select,                /* sock_select */
+  hysock_writeto,               /* sock_writeto */
+  hysock_inetntoa,              /* sock_inetntoa */
+  hysock_gethostbyaddr,         /* sock_gethostbyaddr */
+  hysock_gethostname,           /* sock_gethostname */
+  hysock_hostent_aliaslist,     /* sock_hostent_aliaslist */
+  hysock_hostent_hostname,      /* sock_hostent_hostname */
+  hysock_sockaddr_port,         /* sock_sockaddr_port */
+  hysock_sockaddr_address,      /* sock_sockaddr_address */
+  hysock_fdset_init,            /* sock_fdset_init */
+  hysock_fdset_size,            /* sock_fdset_size */
+  hysock_timeval_init,          /* sock_timeval_init */
+  hysock_getopt_int,            /* sock_getopt_int */
+  hysock_setopt_int,            /* sock_setopt_int */
+  hysock_getopt_bool,           /* sock_getopt_bool */
+  hysock_setopt_bool,           /* sock_setopt_bool */
+  hysock_getopt_byte,           /* sock_getopt_byte */
+  hysock_setopt_byte,           /* sock_setopt_byte */
+  hysock_getopt_linger,         /* sock_getopt_linger */
+  hysock_getopt_sockaddr,       /* sock_getopt_sockaddr */
+  hysock_setopt_sockaddr,       /* sock_setopt_sockaddr */
+  hysock_setopt_ipmreq,         /* sock_setopt_ipmreq */
+  hysock_linger_enabled,        /* sock_linger_enabled */
+  hysock_linger_linger,         /* sock_linger_linger */
+  hysock_ipmreq_init,           /* sock_ipmreq_init */
+  hysock_setflag,               /* sock_setflag */
+  hysock_freeaddrinfo,          /* sock_freeaddrinfo */
+  hysock_getaddrinfo,           /* sock_getaddrinfo */
+  hysock_getaddrinfo_address,   /* sock_getaddrinfo_address */
+  hysock_getaddrinfo_create_hints,      /* sock_getaddrinfo_create_hints */
+  hysock_getaddrinfo_family,    /* sock_getaddrinfo_family */
+  hysock_getaddrinfo_length,    /* sock_getaddrinfo_length */
+  hysock_getaddrinfo_name,      /* sock_getaddrinfo_name */
+  hysock_getnameinfo,           /* sock_getnameinfo */
+  hysock_ipv6_mreq_init,        /* sock_ipv6_mreq_init */
+  hysock_setopt_ipv6_mreq,      /* sock_setopt_ipv6_mreq */
+  hysock_sockaddr_address6,     /* sock_sockaddr_address6 */
+  hysock_sockaddr_family,       /* sock_sockaddr_family */
+  hysock_sockaddr_init6,        /* sock_sockaddr_init6 */
+  hysock_socketIsValid,         /* sock_socketIsValid */
+  hysock_select_read,           /* sock_select_read */
+  hysock_set_nonblocking,       /* sock_set_nonblocking */
+  hysock_error_message,         /* sock_error_message */
+  hysock_get_network_interfaces,        /* sock_get_network_interfaces */
+  hysock_free_network_interface_struct, /* sock_free_network_interface_struct */
+  hysock_connect_with_timeout,  /* sock_connect_with_timeout */
+  hystrftime,                   /* str_ftime */
+  hymmap_startup,               /* mmap_startup */
+  hymmap_shutdown,              /* mmap_shutdown */
+  hymmap_capabilities,          /* mmap_capabilities */
+  hymmap_map_file,              /* mmap_map_file */
+  hymmap_unmap_file,            /* mmap_unmap_file */
+  hyshsem_startup,              /* shsem_startup */
+  hyshsem_shutdown,             /* shsem_shutdown */
+  hyshsem_open,                 /* shsem_open */
+  hyshsem_post,                 /* shsem_post */
+  hyshsem_wait,                 /* shsem_wait */
+  hyshsem_getVal,               /* shsem_getVal */
+  hyshsem_setVal,               /* shsem_setVal */
+  hyshsem_close,                /* shsem_close */
+  hyshsem_destroy,              /* shsem_destroy */
+  hyshmem_startup,              /* shmem_startup */
+  hyshmem_shutdown,             /* shmem_shutdown */
+  hyshmem_open,                 /*shmem_open */
+  hyshmem_attach,               /*shmem_attach */
+  hyshmem_detach,               /*shmem_detach */
+  hyshmem_close,                /*shmem_close */
+  hyshmem_destroy,              /*shmem_destroy */
+  hyshmem_findfirst,            /*shmem_findfirst */
+  hyshmem_findnext,             /* shmem_findnext */
+  hyshmem_findclose,            /* shmem_findclose */
+  hyshmem_stat,                 /* shmem_stat */
+  hysysinfo_get_processing_capacity,    /* sysinfo_get_processing_capacity */
+};
+#endif
+

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/text/BidiWrapper.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/text/BidiWrapper.h?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/text/BidiWrapper.h (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/text/BidiWrapper.h Wed Mar  1 07:42:53 2006
@@ -0,0 +1,130 @@
+/* Copyright 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <jni.h>
+/* Header for class org_apache_harmony_text_BidiWrapper */
+
+#if !defined(_Included_org_apache_harmony_text_BidiWrapper)
+#define _Included_org_apache_harmony_text_BidiWrapper
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_DEFAULT_LTR
+#define org_apache_harmony_text_BidiWrapper_UBIDI_DEFAULT_LTR 254L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_DEFAULT_RTL
+#define org_apache_harmony_text_BidiWrapper_UBIDI_DEFAULT_RTL 255L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_MAX_EXPLICIT_LEVEL
+#define org_apache_harmony_text_BidiWrapper_UBIDI_MAX_EXPLICIT_LEVEL 61L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_LEVEL_OVERRIDE
+#define org_apache_harmony_text_BidiWrapper_UBIDI_LEVEL_OVERRIDE 128L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_KEEP_BASE_COMBINING
+#define org_apache_harmony_text_BidiWrapper_UBIDI_KEEP_BASE_COMBINING 1L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_DO_MIRRORING
+#define org_apache_harmony_text_BidiWrapper_UBIDI_DO_MIRRORING 2L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_INSERT_LRM_FOR_NUMERIC
+#define org_apache_harmony_text_BidiWrapper_UBIDI_INSERT_LRM_FOR_NUMERIC 4L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_REMOVE_BIDI_CONTROLS
+#define org_apache_harmony_text_BidiWrapper_UBIDI_REMOVE_BIDI_CONTROLS 8L
+#undef org_apache_harmony_text_BidiWrapper_UBIDI_OUTPUT_REVERSE
+#define org_apache_harmony_text_BidiWrapper_UBIDI_OUTPUT_REVERSE 16L
+#undef org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_LTR
+#define org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_LTR 0L
+#undef org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_RTL
+#define org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_RTL 1L
+#undef org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_MIXED
+#define org_apache_harmony_text_BidiWrapper_UBiDiDirection_UBIDI_MIXED 2L
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_open
+ * Signature: ()J
+ */
+  JNIEXPORT jlong JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1open
+    (JNIEnv *, jclass);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_close
+ * Signature: (J)V
+ */
+  JNIEXPORT void JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1close
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_setPara
+ * Signature: (J[CIB[B)V
+ */
+  JNIEXPORT void JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1setPara
+    (JNIEnv *, jclass, jlong, jcharArray, jint, jbyte, jbyteArray);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_setLine
+ * Signature: (JII)J
+ */
+  JNIEXPORT jlong JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1setLine
+    (JNIEnv *, jclass, jlong, jint, jint);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_getDirection
+ * Signature: (J)I
+ */
+  JNIEXPORT jint JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1getDirection
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_getLength
+ * Signature: (J)I
+ */
+  JNIEXPORT jint JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1getLength
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_getParaLevel
+ * Signature: (J)B
+ */
+  JNIEXPORT jbyte JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1getParaLevel
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_getLevels
+ * Signature: (J)[B
+ */
+  JNIEXPORT jbyteArray JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1getLevels
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_countRuns
+ * Signature: (J)I
+ */
+  JNIEXPORT jint JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1countRuns
+    (JNIEnv *, jclass, jlong);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_getRun
+ * Signature: (JI)Lorg/apache/harmony/text/BidiRun;
+ */
+  JNIEXPORT jobject JNICALL Java_org_apache_harmony_text_BidiWrapper_ubidi_1getRun
+    (JNIEnv *, jclass, jlong, jint);
+/*
+ * Class:     org_apache_harmony_text_BidiWrapper
+ * Method:    ubidi_reorderVisual
+ * Signature: ([BI)[I
+ */
+  JNIEXPORT jintArray JNICALL
+    Java_org_apache_harmony_text_BidiWrapper_ubidi_1reorderVisual (JNIEnv *, jclass,
+                                                        jbyteArray, jint);
+#if defined(__cplusplus)
+}
+#endif
+#endif

Propchange: incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar  1 07:42:53 2006
@@ -0,0 +1 @@
+*.obj

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.c?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.c (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.c Wed Mar  1 07:42:53 2006
@@ -0,0 +1,283 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file
+ * @ingroup Thread
+ */
+
+/*
+ * This file contains thread routines which are compiled twice -- once for in-process, and
+ * once for out-of-process uses (e.g. debug extensions).
+ * The APIs in this file are only used for inspecting threads -- not for modifying them
+ */
+
+#if defined(HYVM_OUT_OF_PROCESS)
+#include "hydbgext.h"
+#endif
+
+#include "threaddef.h"
+
+#if defined(HYVM_OUT_OF_PROCESS)
+#define READU(field) dbgReadUDATA((UDATA*)&(field))
+#define READP(field) ((void*)dbgReadUDATA((UDATA*)&(field)))
+#undef MUTEX_ENTER
+#define MUTEX_ENTER(a)
+#undef MUTEX_EXIT
+#define MUTEX_EXIT(a)
+#undef GLOBAL_LOCK
+#define GLOBAL_LOCK(a, b)
+#undef GLOBAL_UNLOCK
+#define GLOBAL_UNLOCK(a)
+#else /* defined (HYVM_OUT_OF_PROCESS) */
+#define READU(field) ((UDATA)(field))
+#define READP(field) (field)
+#endif
+
+#define CDEV_CURRENT_FUNCTION _prototypes_private
+static hythread_monitor_pool_t pool_for_monitor
+PROTOTYPE ((hythread_library_t lib, hythread_monitor_t monitor));
+static hythread_library_t get_default_library PROTOTYPE ((void));
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_monitor_walk
+/** 
+ * Walk all active monitors.
+ *
+ * @param[in] monitor If NULL, the first monitor is returned and the monitor pool is locked (thread lib is globally locked)<br> 
+ * If non-NULL, the next monitor is returned.
+ * @return a pointer to a monitor, or NULL if all monitors walked (and thread lib is globally unlocked).
+ * 
+ * @note As this is currently implemented, this must be called to walk ALL monitors. It can't
+ * be used to look for a specific monitor and then quit.
+ * 
+ */
+hythread_monitor_t VMCALL
+hythread_monitor_walk (hythread_monitor_t monitor)
+{
+  hythread_monitor_pool_t pool;
+  hythread_library_t lib = get_default_library ();
+
+  ASSERT (lib);
+  ASSERT (lib->monitor_pool);
+  ASSERT (lib->monitor_pool->entries);
+  ASSERT (MACRO_SELF () != 0);
+
+  if (monitor == NULL)
+    {
+      GLOBAL_LOCK (MACRO_SELF (), CALLER_MONITOR_WALK);
+      pool = READP (lib->monitor_pool);
+      monitor = &pool->entries[0];
+      if (READU (monitor->count) != FREE_TAG)
+        return monitor;
+    }
+  else
+    {
+      pool = pool_for_monitor (lib, monitor);
+      if (pool == NULL)
+        {
+          /* should never happen */
+          GLOBAL_UNLOCK (MACRO_SELF ());
+          return NULL;
+        }
+    }
+
+  do
+    {
+      if (monitor >= &pool->entries[MONITOR_POOL_SIZE - 1])
+        {
+          if ((pool = READP (pool->next)) == NULL)
+            {
+              /* we've walked all monitors */
+              GLOBAL_UNLOCK (MACRO_SELF ());
+              return NULL;
+            }
+          monitor = &pool->entries[0];
+        }
+      else
+        {
+          monitor++;
+        }
+    }
+  while (READU (monitor->count) == FREE_TAG);
+
+  return monitor;
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_tls_get
+/** 
+ * Get a thread's thread local storage (TLS) value.
+ *
+ * @param[in] a thread
+ * @param[in] key key to have TLS value returned (value returned by hythread_tls_alloc)
+ * @return pointer to location of TLS or NULL on failure.
+ *  
+ */
+void *VMCALL
+hythread_tls_get (hythread_t thread, hythread_tls_key_t key)
+{
+  return (void *) READU (thread->tls[key - 1]);
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION pool_for_monitor
+/* 
+ * Return the monitor pool holding a monitor.
+ * 
+ * @param[in] lib threading library (non-NULL)
+ * @param[in] monitor
+ * @return pointer to pool on success, NULL on failure (invalid monitor?)
+ */
+static hythread_monitor_pool_t
+pool_for_monitor (hythread_library_t lib, hythread_monitor_t monitor)
+{
+  hythread_monitor_pool_t pool = READP (lib->monitor_pool);
+
+  /* find out which pool the monitor is from (cache this, maybe?) 
+     (NOTE: technically, this search invokes undefined behaviour (comparing pointers from different
+     malloc's).  But it should work on every platform with a flat memory model. */
+
+  ASSERT (lib);
+  ASSERT (monitor);
+  ASSERT (pool);
+
+  while (monitor < &pool->entries[0]
+         || monitor > &pool->entries[MONITOR_POOL_SIZE - 1])
+    {
+      if ((pool = READP (pool->next)) == NULL)
+        {
+          break;
+        }
+    }
+
+  return pool;
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_get_priority
+/** 
+ * Return a thread's scheduling priority.
+ * 
+ * @param[in] thread (non-NULL)
+ * @return scheduling priority
+ * @see hythread_create, hythread_set_priority
+ *
+ */
+UDATA VMCALL
+hythread_get_priority (hythread_t thread)
+{
+  ASSERT (thread);
+  return READU (thread->priority);
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_get_flags
+/** 
+ * Return a thread's flags.
+ * 
+ * @param[in] thread (non-NULL)
+ * @param[in] blocker if non-NULL, will be set to the monitor on which the thread is blocked (if any)
+ * @return flags
+ * 
+ */
+UDATA VMCALL
+hythread_get_flags (hythread_t thread, hythread_monitor_t * blocker)
+{
+  UDATA flags;
+
+  ASSERT (thread);
+
+  MUTEX_ENTER (thread->mutex);
+
+  if (blocker)
+    {
+      *blocker = READP (thread->monitor);
+    }
+  flags = READU (thread->flags);
+
+  MUTEX_EXIT (thread->mutex);
+
+  return flags;
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_monitor_get_name
+/**
+ * Return a monitor's name.
+ * 
+ * @param[in] monitor (non-NULL)
+ * @return pointer to the monitor's name (may be NULL)
+ * 
+ * @see hythread_monitor_init_with_name
+ * 
+ */
+char *VMCALL
+hythread_monitor_get_name (hythread_monitor_t monitor)
+{
+  ASSERT (monitor);
+  return READP (monitor->name);
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION hythread_monitor_get_tracing
+
+/*
+ * Return a monitor's tracing information.
+ * 
+ * @param[in] monitor (non-NULL)
+ * @return pointer to the monitor's tracing information (may be NULL)
+ * 
+ */
+HyThreadMonitorTracing *VMCALL
+hythread_monitor_get_tracing (hythread_monitor_t monitor)
+{
+  ASSERT (monitor);
+
+  return READP (monitor->tracing);
+}
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION getDefaultLibrary
+
+#undef CDEV_CURRENT_FUNCTION
+
+#define CDEV_CURRENT_FUNCTION get_default_library
+/* 
+ * Return the default threading library.
+ * 
+ * @return pointer to the default threading library
+ * 
+ */
+static hythread_library_t
+get_default_library (void)
+{
+#if defined(HYVM_OUT_OF_PROCESS)
+  return dbgGetThreadLibrary ();
+#else
+  return GLOBAL_DATA (default_library);
+#endif
+
+}
+
+#undef CDEV_CURRENT_FUNCTION

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.h?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.h (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/hythreadinspect.h Wed Mar  1 07:42:53 2006
@@ -0,0 +1,45 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(hythreadinspect_h)
+#define hythreadinspect_h
+
+#if defined(HYVM_OUT_OF_PROCESS)
+/* redefine thread functions */
+#define hythread_monitor_walk dbg_hythread_monitor_walk
+#define hythread_tls_get dbg_hythread_tls_get
+#define hythread_get_priority dbg_hythread_get_priority
+#define hythread_get_flags dbg_hythread_get_flags
+#define hythread_monitor_get_name dbg_hythread_monitor_get_name
+#define hythread_monitor_get_tracing dbg_hythread_monitor_get_tracing
+#define getVMThreadStatus dbgGetVMThreadStatus
+#endif
+
+#endif /* hythreadinspect_h */
+
+/* Note: This section is NOT protected by #ifdefs.
+ * It may be safely included more than once.
+ */
+UDATA VMCALL hythread_get_flags
+PROTOTYPE ((hythread_t thread, hythread_monitor_t * blocker));
+HyThreadMonitorTracing *VMCALL hythread_monitor_get_tracing
+PROTOTYPE ((hythread_monitor_t monitor));
+UDATA VMCALL hythread_get_priority PROTOTYPE ((hythread_t thread));
+void *VMCALL hythread_tls_get
+PROTOTYPE ((hythread_t thread, hythread_tls_key_t key));
+char *VMCALL hythread_monitor_get_name
+PROTOTYPE ((hythread_monitor_t monitor));
+hythread_monitor_t VMCALL hythread_monitor_walk
+PROTOTYPE ((hythread_monitor_t monitor));

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/rwmutex.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/rwmutex.c?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/rwmutex.c (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/rwmutex.c Wed Mar  1 07:42:53 2006
@@ -0,0 +1,252 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+#include "threaddef.h"
+
+#undef  ASSERT
+#define ASSERT(x) /**/
+  typedef struct RWMutex
+{
+  hythread_monitor_t syncMon;
+  IDATA status;
+  hythread_t writer;
+} RWMutex;
+
+#define ASSERT_RWMUTEX(m)\
+    ASSERT((m));\
+    ASSERT((m)->syncMon);
+
+#define RWMUTEX_STATUS_IDLE(m)     ((m)->status == 0)
+#define RWMUTEX_STATUS_READING(m)  ((m)->status > 0)
+#define RWMUTEX_STATUS_WRITING(m)  ((m)->status < 0)
+
+/**
+ * Acquire and initialize a new read/write mutex from the threading library.
+ *
+ * @param[out] handle pointer to a hythread_rwmutex_t to be set to point to the new mutex
+ * @param[in] flags initial flag values for the mutex
+ * @return 0 on success, negative value on failure
+ * 
+ * @see hythread_rwmutex_destroy
+ */
+IDATA VMCALL
+hythread_rwmutex_init (hythread_rwmutex_t * handle, UDATA flags,
+                       const char *name)
+{
+  RWMutex *mutex = (RWMutex *) malloc (sizeof (RWMutex));
+  hythread_monitor_init_with_name (&mutex->syncMon, 0, (char *) name);
+  mutex->status = 0;
+  mutex->writer = 0;
+
+  ASSERT (handle);
+  *handle = mutex;
+
+  return 0;
+}
+
+/**
+ * Destroy a read/write mutex.
+ * 
+ * Destroying a mutex frees the internal resources associated
+ * with it.
+ *
+ * @note A mutex must NOT be destroyed if it is owned 
+ * by any threads for either read or write access.
+ *
+ * @param[in] mutex a mutex to be destroyed
+ * @return  0 on success or negative value on failure
+ * 
+ * @see hythread_rwmutex_init
+ */
+IDATA VMCALL
+hythread_rwmutex_destroy (hythread_rwmutex_t mutex)
+{
+  ASSERT (mutex);
+  ASSERT (mutex->syncMon);
+  ASSERT (0 == mutex->status);
+  ASSERT (0 == mutex->writer);
+  hythread_monitor_destroy (mutex->syncMon);
+  free (mutex);
+  return 0;
+}
+
+/**
+ * Enter a read/write mutex as a reader.
+ * 
+ * A thread may re-enter a mutex it owns multiple times, but
+ * must exit the same number of times as a reader 
+ * using hythread_rwmutex_exit_read.
+ * 
+ * A thread with writer access can enter a monitor
+ * with reader access, but must exit the mutex in the 
+ * opposite order. 
+ * 
+ * e.g. The following is acceptable
+ * hythread_rwmutex_enter_write(mutex);
+ * hythread_rwmutex_enter_read(mutex);
+ * hythread_rwmutex_exit_read(mutex);
+ * hythread_rwmutex_exit_write(mutex);
+ * 
+ * However, a thread with read access MUST NOT
+ * ask for write access on the same mutex. 
+ * 
+ * @param[in] mutex a mutex to be entered for read access
+ * @return 0 on success
+ * 
+ * @see hythread_rwmutex_exit_read
+ */
+IDATA VMCALL
+hythread_rwmutex_enter_read (hythread_rwmutex_t mutex)
+{
+  ASSERT_RWMUTEX (mutex);
+
+  if (mutex->writer == hythread_self ())
+    {
+      hythread_monitor_exit (mutex->syncMon);
+      return 0;
+    }
+
+  hythread_monitor_enter (mutex->syncMon);
+
+  while (mutex->status < 0)
+    {
+      hythread_monitor_wait (mutex->syncMon);
+    }
+  mutex->status++;
+
+  hythread_monitor_exit (mutex->syncMon);
+  return 0;
+
+}
+
+/**
+ * Exit a read/write mutex as a reader.
+ * 
+ * @param[in] mutex a mutex to be exited 
+ * @return 0 on success
+ * 
+ * @see hythread_rwmutex_enter_read
+ * 
+ */
+IDATA VMCALL
+hythread_rwmutex_exit_read (hythread_rwmutex_t mutex)
+{
+  ASSERT_RWMUTEX (mon);
+
+  if (mutex->writer == hythread_self ())
+    {
+      return 0;
+    }
+
+  hythread_monitor_enter (mutex->syncMon);
+
+  mutex->status--;
+  if (0 == mutex->status)
+    {
+      hythread_monitor_notify (mutex->syncMon);
+    }
+
+  hythread_monitor_exit (mutex->syncMon);
+
+  return 0;
+
+}
+
+/**
+ * Enter a read/write mutex as a writer.
+ * 
+ * A thread may re-enter a mutex it owns multiple times, but
+ * must exit the same number of times as a writer 
+ * using hythread_rwmutex_exit_write.
+ * 
+ * A thread with writer access can enter a monitor
+ * with reader access, but must exit the mutex in the 
+ * opposite order. 
+ * 
+ * e.g. The following is acceptable
+ * hythread_rwmutex_enter_write(mutex);
+ * hythread_rwmutex_enter_read(mutex);
+ * hythread_rwmutex_exit_read(mutex);
+ * hythread_rwmutex_exit_write(mutex);
+ * 
+ * However, a thread with read access MUST NOT
+ * ask for write access on the same mutex. 
+ * 
+ * @param[in] mutex a mutex to be entered for read access
+ * @return 0 on success
+ * 
+ * @see hythread_rwmutex_exit_write
+ */
+IDATA VMCALL
+hythread_rwmutex_enter_write (hythread_rwmutex_t mutex)
+{
+
+  hythread_t self = hythread_self ();
+  ASSERT_RWMUTEX (mutex);
+
+  /* recursive? */
+  if (mutex->writer == self)
+    {
+      mutex->status--;
+      return 0;
+    }
+
+  hythread_monitor_enter (mutex->syncMon);
+
+  while (mutex->status != 0)
+    {
+      hythread_monitor_wait (mutex->syncMon);
+    }
+  mutex->status--;
+  mutex->writer = self;
+
+  ASSERT (RWMUTEX_STATUS_WRITING (mutex));
+
+  hythread_monitor_exit (mutex->syncMon);
+
+  return 0;
+
+}
+
+/**
+ * Exit a read/write mutex as a writer.
+ * 
+ * @param[in] mutex a mutex to be exited
+ * @return 0 on success
+ * 
+ * @see hythread_rwmutex_enter_write
+ * 
+ */
+IDATA VMCALL
+hythread_rwmutex_exit_write (hythread_rwmutex_t mutex)
+{
+  ASSERT_RWMUTEX (mon);
+
+  ASSERT (mutex->writer == hythread_self ());
+  ASSERT (RWMUTEX_STATUS_WRITING (mutex));
+  hythread_monitor_enter (mutex->syncMon);
+
+  mutex->status++;
+  if (0 == mutex->status)
+    {
+      mutex->writer = NULL;
+      hythread_monitor_notify_all (mutex->syncMon);
+    }
+
+  hythread_monitor_exit (mutex->syncMon);
+  return 0;
+
+}

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/thread_copyright.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/thread_copyright.c?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/thread_copyright.c (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/thread/thread_copyright.c Wed Mar  1 07:42:53 2006
@@ -0,0 +1,19 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* A copyright string included in each DLL and executable */
+
+const char hyCopyright[] =
+  "(c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable.";

Propchange: incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar  1 07:42:53 2006
@@ -0,0 +1 @@
+*.obj

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi.c?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi.c (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi.c Wed Mar  1 07:42:53 2006
@@ -0,0 +1,49 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "vmi.h"
+
+	/** NOTE NOTE NOTE **
+	 * The functions below must be implemented by the VM vendor.
+	 * This stub implementation is non-functional, provided for the purposes of
+	 * building the dependent natives.
+	 */
+
+/* Non-table functions */
+/**
+ * Extract the VM Interface from a JNI JavaVM
+ *
+ * @param[in] vm  The JavaVM to query
+ *
+ * @return a VMInterface pointer
+ */
+VMInterface* JNICALL 
+VMI_GetVMIFromJavaVM(JavaVM* vm)
+{
+	return NULL;
+}	
+/**
+ * Extract the VM Interface from a JNIEnv
+ *
+ * @param[in] vm  The JNIEnv to query
+ *
+ * @return a VMInterface pointer
+ */
+VMInterface* JNICALL 
+VMI_GetVMIFromJNIEnv(JNIEnv* env)
+{
+	return NULL;
+}	
+

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi_copyright.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi_copyright.c?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi_copyright.c (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/vmi/vmi_copyright.c Wed Mar  1 07:42:53 2006
@@ -0,0 +1,19 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* A copyright string included in each DLL and executable */
+
+const char hyCopyright[] = 
+	"(c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable.";

Propchange: incubator/harmony/enhanced/classlib/trunk/native-src/shared/zip/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar  1 07:42:53 2006
@@ -0,0 +1 @@
+*.obj

Added: incubator/harmony/enhanced/classlib/trunk/native-src/shared/zip/hyzipnls.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/native-src/shared/zip/hyzipnls.h?rev=382065&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/native-src/shared/zip/hyzipnls.h (added)
+++ incubator/harmony/enhanced/classlib/trunk/native-src/shared/zip/hyzipnls.h Wed Mar  1 07:42:53 2006
@@ -0,0 +1,26 @@
+/* Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(hyzipnls_h)
+#define hyzipnls_h
+#include "hyport.h"
+/* 0x5a495053 = ZIPS */
+#define HYNLS_ZIP_UNABLE_TO_OPEN_ZIP_DLL__MODULE 0x5a495053
+#define HYNLS_ZIP_UNABLE_TO_OPEN_ZIP_DLL__ID 0
+#define HYNLS_ZIP_UNABLE_TO_OPEN_ZIP_DLL HYNLS_ZIP_UNABLE_TO_OPEN_ZIP_DLL__MODULE, HYNLS_ZIP_UNABLE_TO_OPEN_ZIP_DLL__ID
+#define HYNLS_ZIP_MISSING_EXPORT__MODULE 0x5a495053
+#define HYNLS_ZIP_MISSING_EXPORT__ID 1
+#define HYNLS_ZIP_MISSING_EXPORT HYNLS_ZIP_MISSING_EXPORT__MODULE, HYNLS_ZIP_MISSING_EXPORT__ID
+#endif



Mime
View raw message