harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ge...@apache.org
Subject svn commit: r350181 [145/198] - in /incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core: ./ depends/ depends/files/ depends/jars/ depends/libs/ depends/libs/linux.IA32/ depends/libs/win.IA32/ depends/oss/ depends/oss/linux.IA32/ depends/oss/win....
Date Thu, 01 Dec 2005 06:04:00 GMT
Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/jvmti.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/jvmti.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/jvmti.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/jvmti.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,828 @@
+/* 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(jvmti_h)
+#define jvmti_h
+#include "jni.h"
+/* 
+ *-----------------------------------------------------------------------------
+ * JVMTI constants
+ *-----------------------------------------------------------------------------
+ */
+#define JVMTI_VERSION_1_0 0x30010000
+#define JVMTI_VERSION_1 (JVMTI_VERSION_1_0)
+#define JVMTI_VERSION (JVMTI_VERSION_1_0 + 37)	/* Spec version is 1.0.37 */
+#define JVMTI_CLASS_STATUS_VERIFIED		0x00000001
+#define JVMTI_CLASS_STATUS_PREPARED		0x00000002
+#define JVMTI_CLASS_STATUS_INITIALIZED		0x00000004
+#define JVMTI_CLASS_STATUS_ERROR		0x00000008
+#define JVMTI_CLASS_STATUS_ARRAY		0x00000010
+#define JVMTI_CLASS_STATUS_PRIMITIVE		0x00000020
+#define JVMTI_THREAD_MIN_PRIORITY		1
+#define JVMTI_THREAD_NORM_PRIORITY		5
+#define JVMTI_THREAD_MAX_PRIORITY		10
+#define JVMTI_THREAD_STATE_ALIVE			0x00000001
+#define JVMTI_THREAD_STATE_TERMINATED			0x00000002
+#define JVMTI_THREAD_STATE_RUNNABLE			0x00000004
+#define JVMTI_THREAD_STATE_WAITING_INDEFINITELY		0x00000010
+#define JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT		0x00000020
+#define JVMTI_THREAD_STATE_SLEEPING			0x00000040
+#define JVMTI_THREAD_STATE_WAITING			0x00000080
+#define JVMTI_THREAD_STATE_IN_OBJECT_WAIT		0x00000100
+#define JVMTI_THREAD_STATE_PARKED			0x00000200
+#define JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER	0x00000400
+#define JVMTI_THREAD_STATE_SUSPENDED			0x00100000
+#define JVMTI_THREAD_STATE_INTERRUPTED			0x00200000
+#define JVMTI_THREAD_STATE_IN_NATIVE			0x00400000
+#define JVMTI_THREAD_STATE_VENDOR_1			0x10000000
+#define JVMTI_THREAD_STATE_VENDOR_2			0x20000000
+#define JVMTI_THREAD_STATE_VENDOR_3			0x40000000
+#define JVMTI_JAVA_LANG_THREAD_STATE_MASK		\
+	  JVMTI_THREAD_STATE_TERMINATED			\
+	| JVMTI_THREAD_STATE_ALIVE			\
+	| JVMTI_THREAD_STATE_RUNNABLE			\
+	| JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER	\
+	| JVMTI_THREAD_STATE_WAITING			\
+	| JVMTI_THREAD_STATE_WAITING_INDEFINITELY	\
+	| JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT
+#define JVMTI_JAVA_LANG_THREAD_STATE_NEW		0
+#define JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED		\
+	  JVMTI_THREAD_STATE_TERMINATED
+#define JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE		\
+	  JVMTI_THREAD_STATE_ALIVE			\
+	| JVMTI_THREAD_STATE_RUNNABLE
+#define JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED		\
+	  JVMTI_THREAD_STATE_ALIVE			\
+	| JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER
+#define JVMTI_JAVA_LANG_THREAD_STATE_WAITING		\
+	  JVMTI_THREAD_STATE_ALIVE			\
+	| JVMTI_THREAD_STATE_WAITING			\
+	| JVMTI_THREAD_STATE_WAITING_INDEFINITELY
+#define JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING	\
+	  JVMTI_THREAD_STATE_ALIVE			\
+	| JVMTI_THREAD_STATE_WAITING			\
+	| JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT
+#define JVMTI_VERSION_INTERFACE_JNI		0x00000000
+#define JVMTI_VERSION_INTERFACE_JVMTI		0x30000000
+#define JVMTI_VERSION_MASK_INTERFACE_TYPE	0x70000000
+#define JVMTI_VERSION_MASK_MAJOR		0x0FFF0000
+#define JVMTI_VERSION_MASK_MINOR		0x0000FF00
+#define JVMTI_VERSION_MASK_MICRO		0x000000FF
+#define JVMTI_VERSION_SHIFT_MAJOR		16
+#define JVMTI_VERSION_SHIFT_MINOR		8
+#define JVMTI_VERSION_SHIFT_MICRO		0
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI enumerations
+ *-----------------------------------------------------------------------------
+ */
+typedef enum jvmtiEventMode {
+	JVMTI_ENABLE = 1,
+	JVMTI_DISABLE = 0,
+	jvmtiEventModeEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiEventMode;
+typedef enum jvmtiHeapObjectFilter {
+	JVMTI_HEAP_OBJECT_TAGGED = 1,
+	JVMTI_HEAP_OBJECT_UNTAGGED = 2,
+	JVMTI_HEAP_OBJECT_EITHER = 3,
+	jvmtiHeapObjectFilterEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiHeapObjectFilter;
+typedef enum jvmtiHeapRootKind {
+	JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
+	JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
+	JVMTI_HEAP_ROOT_MONITOR = 3,
+	JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
+	JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
+	JVMTI_HEAP_ROOT_THREAD = 6,
+	JVMTI_HEAP_ROOT_OTHER = 7,
+	jvmtiHeapRootKindEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiHeapRootKind;
+typedef enum jvmtiIterationControl {
+	JVMTI_ITERATION_CONTINUE = 1,
+	JVMTI_ITERATION_IGNORE = 2,
+	JVMTI_ITERATION_ABORT = 0,
+	jvmtiIterationControlEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiIterationControl;
+typedef enum jvmtiJlocationFormat {
+	JVMTI_JLOCATION_JVMBCI = 1,
+	JVMTI_JLOCATION_MACHINEPC = 2,
+	JVMTI_JLOCATION_OTHER = 0,
+	jvmtiJlocationFormatEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiJlocationFormat;
+typedef enum jvmtiObjectReferenceKind {
+	JVMTI_REFERENCE_CLASS = 1,
+	JVMTI_REFERENCE_FIELD = 2,
+	JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
+	JVMTI_REFERENCE_CLASS_LOADER = 4,
+	JVMTI_REFERENCE_SIGNERS = 5,
+	JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
+	JVMTI_REFERENCE_INTERFACE = 7,
+	JVMTI_REFERENCE_STATIC_FIELD = 8,
+	JVMTI_REFERENCE_CONSTANT_POOL = 9,
+	jvmtiObjectReferenceKindEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiObjectReferenceKind;
+typedef enum jvmtiParamKind {
+	JVMTI_KIND_IN = 91,
+	JVMTI_KIND_IN_PTR = 92,
+	JVMTI_KIND_IN_BUF = 93,
+	JVMTI_KIND_ALLOC_BUF = 94,
+	JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
+	JVMTI_KIND_OUT = 96,
+	JVMTI_KIND_OUT_BUF = 97,
+	jvmtiParamKindEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiParamKind;
+typedef enum jvmtiParamTypes {
+	JVMTI_TYPE_JBYTE = 101,
+	JVMTI_TYPE_JCHAR = 102,
+	JVMTI_TYPE_JSHORT = 103,
+	JVMTI_TYPE_JINT = 104,
+	JVMTI_TYPE_JLONG = 105,
+	JVMTI_TYPE_JFLOAT = 106,
+	JVMTI_TYPE_JDOUBLE = 107,
+	JVMTI_TYPE_JBOOLEAN = 108,
+	JVMTI_TYPE_JOBJECT = 109,
+	JVMTI_TYPE_JTHREAD = 110,
+	JVMTI_TYPE_JCLASS = 111,
+	JVMTI_TYPE_JVALUE = 112,
+	JVMTI_TYPE_JFIELDID = 113,
+	JVMTI_TYPE_JMETHODID = 114,
+	JVMTI_TYPE_CCHAR = 115,
+	JVMTI_TYPE_CVOID = 116,
+	JVMTI_TYPE_JNIENV = 117,
+	jvmtiParamTypesEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiParamTypes;
+typedef enum jvmtiPhase {
+	JVMTI_PHASE_ONLOAD = 1,
+	JVMTI_PHASE_PRIMORDIAL = 2,
+	JVMTI_PHASE_LIVE = 4,
+	JVMTI_PHASE_START = 6,
+	JVMTI_PHASE_DEAD = 8,
+	jvmtiPhaseEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiPhase;
+typedef enum jvmtiTimerKind {
+	JVMTI_TIMER_USER_CPU = 30,
+	JVMTI_TIMER_TOTAL_CPU = 31,
+	JVMTI_TIMER_ELAPSED = 32,
+	jvmtiTimerKindEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiTimerKind;
+typedef enum jvmtiVerboseFlag {
+	JVMTI_VERBOSE_OTHER = 0,
+	JVMTI_VERBOSE_GC = 1,
+	JVMTI_VERBOSE_CLASS = 2,
+	JVMTI_VERBOSE_JNI = 4,
+	jvmtiVerboseFlagEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiVerboseFlag;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI error codes
+ *-----------------------------------------------------------------------------
+ */
+typedef enum jvmtiError { 
+	JVMTI_ERROR_NONE = 0,
+	JVMTI_ERROR_INVALID_THREAD = 10,
+	JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
+	JVMTI_ERROR_INVALID_PRIORITY = 12,
+	JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
+	JVMTI_ERROR_THREAD_SUSPENDED = 14,
+	JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
+	JVMTI_ERROR_INVALID_OBJECT = 20,
+	JVMTI_ERROR_INVALID_CLASS = 21,
+	JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
+	JVMTI_ERROR_INVALID_METHODID = 23,
+	JVMTI_ERROR_INVALID_LOCATION = 24,
+	JVMTI_ERROR_INVALID_FIELDID = 25,
+	JVMTI_ERROR_NO_MORE_FRAMES = 31,
+	JVMTI_ERROR_OPAQUE_FRAME = 32,
+	JVMTI_ERROR_TYPE_MISMATCH = 34,
+	JVMTI_ERROR_INVALID_SLOT = 35,
+	JVMTI_ERROR_DUPLICATE = 40,
+	JVMTI_ERROR_NOT_FOUND = 41,
+	JVMTI_ERROR_INVALID_MONITOR = 50,
+	JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
+	JVMTI_ERROR_INTERRUPT = 52,
+	JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
+	JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
+	JVMTI_ERROR_FAILS_VERIFICATION = 62,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
+	JVMTI_ERROR_INVALID_TYPESTATE = 65,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
+	JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
+	JVMTI_ERROR_NAMES_DONT_MATCH = 69,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
+	JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
+	JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
+	JVMTI_ERROR_NOT_AVAILABLE = 98,
+	JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
+	JVMTI_ERROR_NULL_POINTER = 100,
+	JVMTI_ERROR_ABSENT_INFORMATION = 101,
+	JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
+	JVMTI_ERROR_ILLEGAL_ARGUMENT = 103,
+	JVMTI_ERROR_NATIVE_METHOD = 104,
+	JVMTI_ERROR_OUT_OF_MEMORY = 110,
+	JVMTI_ERROR_ACCESS_DENIED = 111,
+	JVMTI_ERROR_WRONG_PHASE = 112,
+	JVMTI_ERROR_INTERNAL = 113,
+	JVMTI_ERROR_UNATTACHED_THREAD = 115,
+	JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
+	jvmtiErrorEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiError;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI base types
+ *-----------------------------------------------------------------------------
+ */
+typedef jobject jthread;
+typedef jobject jthreadGroup;
+typedef jlong jlocation;
+/* hidden type */
+struct _jrawMonitorID;
+typedef struct _jrawMonitorID *jrawMonitorID;
+typedef struct JNINativeInterface_ jniNativeInterface;
+struct JVMTINativeInterface_;
+struct _jvmtiEnv {
+	const struct JVMTINativeInterface_ *functions;
+};
+typedef struct JVMTINativeInterface_ * jvmtiEnv;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI function types
+ *-----------------------------------------------------------------------------
+ */
+typedef void (JNICALL *jvmtiExtensionEvent)
+	(jvmtiEnv *jvmti_env, ...);
+typedef jvmtiError (JNICALL *jvmtiExtensionFunction)
+	(jvmtiEnv *jvmti_env, ...);
+typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback)
+	(jlong class_tag, jlong size, jlong *tag_ptr,
+	 void *user_data);
+typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback)
+	(jvmtiHeapRootKind root_kind,
+	 jlong class_tag, jlong size, jlong *tag_ptr,
+	 void *user_data);
+typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback)
+	(jvmtiObjectReferenceKind reference_kind,
+	 jlong class_tag, jlong size, jlong *tag_ptr,
+	 jlong referrer_tag, jint referrer_index,
+	 void *user_data);
+typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback)
+	(jvmtiHeapRootKind root_kind,
+	 jlong class_tag, jlong size, jlong *tag_ptr,
+	 jlong thread_tag, jint depth, jmethodID method, jint slot,
+	 void *user_data);
+typedef void (JNICALL *jvmtiStartFunction)
+	(jvmtiEnv *jvmti_env, JNIEnv *jni_env, void *arg);
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI structure types
+ *-----------------------------------------------------------------------------
+ */
+typedef struct jvmtiFrameInfo {
+	jmethodID method;
+	jlocation location;
+} jvmtiFrameInfo;
+typedef struct jvmtiStackInfo {
+	jthread thread;
+	jint state;
+	jvmtiFrameInfo* frame_buffer;
+	jint frame_count;
+} jvmtiStackInfo;
+typedef struct jvmtiAddrLocationMap {
+	const void *start_address;
+	jlocation location;
+} jvmtiAddrLocationMap;
+typedef struct {
+	unsigned int can_tag_objects : 1;
+	unsigned int can_generate_field_modification_events : 1;
+	unsigned int can_generate_field_access_events : 1;
+	unsigned int can_get_bytecodes : 1;
+	unsigned int can_get_synthetic_attribute : 1;
+	unsigned int can_get_owned_monitor_info : 1;
+	unsigned int can_get_current_contended_monitor : 1;
+	unsigned int can_get_monitor_info : 1;
+	unsigned int can_pop_frame : 1;
+	unsigned int can_redefine_classes : 1;
+	unsigned int can_signal_thread : 1;
+	unsigned int can_get_source_file_name : 1;
+	unsigned int can_get_line_numbers : 1;
+	unsigned int can_get_source_debug_extension : 1;
+	unsigned int can_access_local_variables : 1;
+	unsigned int can_maintain_original_method_order : 1;
+	unsigned int can_generate_single_step_events : 1;
+	unsigned int can_generate_exception_events : 1;
+	unsigned int can_generate_frame_pop_events : 1;
+	unsigned int can_generate_breakpoint_events : 1;
+	unsigned int can_suspend : 1;
+	unsigned int can_redefine_any_class : 1;
+	unsigned int can_get_current_thread_cpu_time : 1;
+	unsigned int can_get_thread_cpu_time : 1;
+	unsigned int can_generate_method_entry_events : 1;
+	unsigned int can_generate_method_exit_events : 1;
+	unsigned int can_generate_all_class_hook_events : 1;
+	unsigned int can_generate_compiled_method_load_events : 1;
+	unsigned int can_generate_monitor_events : 1;
+	unsigned int can_generate_vm_object_alloc_events : 1;
+	unsigned int can_generate_native_method_bind_events : 1;
+	unsigned int can_generate_garbage_collection_events : 1;
+	unsigned int can_generate_object_free_events : 1;
+	unsigned int : 15;
+	unsigned int : 16;
+	unsigned int : 16;
+	unsigned int : 16;
+	unsigned int : 16;
+	unsigned int : 16;
+} jvmtiCapabilities;
+typedef struct jvmtiClassDefinition {
+	jclass klass;
+	jint class_byte_count;
+	const unsigned char *class_bytes;
+} jvmtiClassDefinition;
+typedef struct jvmtiParamInfo {
+	char *name;
+	jvmtiParamKind kind;
+	jvmtiParamTypes base_type;
+	jboolean null_ok;
+} jvmtiParamInfo;
+typedef struct jvmtiExtensionEventInfo {
+	jint extension_event_index;
+	char *id;
+	char *short_description;
+	jint param_count;
+	jvmtiParamInfo *params;
+} jvmtiExtensionEventInfo;
+typedef struct jvmtiExtensionFunctionInfo {
+	jvmtiExtensionFunction func;
+	char *id;
+	char *short_description;
+	jint param_count;
+	jvmtiParamInfo *params;
+	jint error_count;
+	jvmtiError *errors;
+} jvmtiExtensionFunctionInfo;
+typedef struct jvmtiLineNumberEntry {
+	jlocation start_location;
+	jint line_number;
+} jvmtiLineNumberEntry;
+typedef struct jvmtiLocalVariableEntry {
+	jlocation start_location;
+	jint length;
+	char *name;
+	char *signature;
+	char *generic_signature;
+	jint slot;
+} jvmtiLocalVariableEntry;
+typedef struct jvmtiMonitorUsage {
+	jthread owner;
+	jint entry_count;
+	jint waiter_count;
+	jthread *waiters;
+	jint notify_waiter_count;
+	jthread *notify_waiters;
+} jvmtiMonitorUsage;
+typedef struct jvmtiThreadGroupInfo {
+	jthreadGroup parent;
+	char *name;
+	jint max_priority;
+	jboolean is_daemon;
+} jvmtiThreadGroupInfo;
+typedef struct jvmtiThreadInfo {
+	char *name;
+	jint priority;
+	jboolean is_daemon;
+	jthreadGroup thread_group;
+	jobject context_class_loader;
+} jvmtiThreadInfo;
+typedef struct jvmtiTimerInfo {
+	jlong max_value;
+	jboolean may_skip_forward;
+	jboolean may_skip_backward;
+	jvmtiTimerKind kind;
+	jlong reserved1;
+	jlong reserved2;
+} jvmtiTimerInfo;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI events
+ *-----------------------------------------------------------------------------
+ */
+typedef enum jvmtiEvent { 
+	JVMTI_EVENT_VM_INIT = 50,
+	JVMTI_EVENT_VM_DEATH = 51,
+	JVMTI_EVENT_THREAD_START = 52,
+	JVMTI_EVENT_THREAD_END = 53,
+	JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
+	JVMTI_EVENT_CLASS_LOAD = 55,
+	JVMTI_EVENT_CLASS_PREPARE = 56,
+	JVMTI_EVENT_VM_START = 57,
+	JVMTI_EVENT_EXCEPTION = 58,
+	JVMTI_EVENT_EXCEPTION_CATCH = 59,
+	JVMTI_EVENT_SINGLE_STEP = 60,
+	JVMTI_EVENT_FRAME_POP = 61,
+	JVMTI_EVENT_BREAKPOINT = 62,
+	JVMTI_EVENT_FIELD_ACCESS = 63,
+	JVMTI_EVENT_FIELD_MODIFICATION = 64,
+	JVMTI_EVENT_METHOD_ENTRY = 65,
+	JVMTI_EVENT_METHOD_EXIT = 66,
+	JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
+	JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
+	JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
+	JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
+	JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
+	JVMTI_EVENT_MONITOR_WAIT = 73,
+	JVMTI_EVENT_MONITOR_WAITED = 74,
+	JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
+	JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
+	JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
+	JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
+	JVMTI_EVENT_OBJECT_FREE = 83,
+	JVMTI_EVENT_VM_OBJECT_ALLOC = 84,
+	jvmtiEventEnsureWideEnum = 0x1000000						/* ensure 4-byte enum */
+} jvmtiEvent;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI callbacks
+ *-----------------------------------------------------------------------------
+ */
+typedef void(JNICALL *jvmtiEventSingleStep)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location);
+typedef void(JNICALL *jvmtiEventBreakpoint)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location);
+typedef void(JNICALL *jvmtiEventFieldAccess)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location,
+	jclass field_klass,
+	jobject object,
+	jfieldID field);
+typedef void(JNICALL *jvmtiEventFieldModification)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location,
+	jclass field_klass,
+	jobject object,
+	jfieldID field,
+	char signature_type,
+	jvalue new_value);
+typedef void(JNICALL *jvmtiEventFramePop)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jboolean was_popped_by_exception);
+typedef void(JNICALL *jvmtiEventMethodEntry)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method);
+typedef void(JNICALL *jvmtiEventMethodExit)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jboolean was_popped_by_exception,
+	jvalue return_value);
+typedef void(JNICALL *jvmtiEventNativeMethodBind)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	void* address,
+	void** new_address_ptr);
+typedef void(JNICALL *jvmtiEventException)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location,
+	jobject exception,
+	jmethodID catch_method,
+	jlocation catch_location);
+typedef void(JNICALL *jvmtiEventExceptionCatch)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jmethodID method,
+	jlocation location,
+	jobject exception);
+typedef void(JNICALL *jvmtiEventThreadStart)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread);
+typedef void(JNICALL *jvmtiEventThreadEnd)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread);
+typedef void(JNICALL *jvmtiEventClassLoad)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jclass klass);
+typedef void(JNICALL *jvmtiEventClassPrepare)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jclass klass);
+typedef void(JNICALL *jvmtiEventClassFileLoadHook)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jclass class_being_redefined,
+	jobject loader,
+	const char* name,
+	jobject protection_domain,
+	jint class_data_len,
+	const unsigned char* class_data,
+	jint* new_class_data_len,
+	unsigned char** new_class_data);
+typedef void(JNICALL *jvmtiEventVMStart)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env);
+typedef void(JNICALL *jvmtiEventVMInit)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread);
+typedef void(JNICALL *jvmtiEventVMDeath)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env);
+typedef void(JNICALL *jvmtiEventCompiledMethodLoad)(
+	jvmtiEnv *jvmti_env,
+	jmethodID method,
+	jint code_size,
+	const void* code_addr,
+	jint map_length,
+	const jvmtiAddrLocationMap* map,
+	const void* compile_info);
+typedef void(JNICALL *jvmtiEventCompiledMethodUnload)(
+	jvmtiEnv *jvmti_env,
+	jmethodID method,
+	const void* code_addr);
+typedef void(JNICALL *jvmtiEventDynamicCodeGenerated)(
+	jvmtiEnv *jvmti_env,
+	const char* name,
+	const void* address,
+	jint length);
+typedef void(JNICALL *jvmtiEventDataDumpRequest)(
+	jvmtiEnv *jvmti_env);
+typedef void(JNICALL *jvmtiEventMonitorContendedEnter)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jobject object);
+typedef void(JNICALL *jvmtiEventMonitorContendedEntered)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jobject object);
+typedef void(JNICALL *jvmtiEventMonitorWait)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jobject object,
+	jlong timeout);
+typedef void(JNICALL *jvmtiEventMonitorWaited)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jobject object,
+	jboolean timed_out);
+typedef void(JNICALL *jvmtiEventVMObjectAlloc)(
+	jvmtiEnv *jvmti_env,
+	JNIEnv* jni_env,
+	jthread thread,
+	jobject object,
+	jclass object_klass,
+	jlong size);
+typedef void(JNICALL *jvmtiEventObjectFree)(
+	jvmtiEnv *jvmti_env,
+	jlong tag);
+typedef void(JNICALL *jvmtiEventGarbageCollectionStart)(
+	jvmtiEnv *jvmti_env);
+typedef void(JNICALL *jvmtiEventGarbageCollectionFinish)(
+	jvmtiEnv *jvmti_env);
+typedef void * jvmtiEventReserved;
+typedef struct {
+	jvmtiEventVMInit VMInit;
+	jvmtiEventVMDeath VMDeath;
+	jvmtiEventThreadStart ThreadStart;
+	jvmtiEventThreadEnd ThreadEnd;
+	jvmtiEventClassFileLoadHook ClassFileLoadHook;
+	jvmtiEventClassLoad ClassLoad;
+	jvmtiEventClassPrepare ClassPrepare;
+	jvmtiEventVMStart VMStart;
+	jvmtiEventException Exception;
+	jvmtiEventExceptionCatch ExceptionCatch;
+	jvmtiEventSingleStep SingleStep;
+	jvmtiEventFramePop FramePop;
+	jvmtiEventBreakpoint Breakpoint;
+	jvmtiEventFieldAccess FieldAccess;
+	jvmtiEventFieldModification FieldModification;
+	jvmtiEventMethodEntry MethodEntry;
+	jvmtiEventMethodExit MethodExit;
+	jvmtiEventNativeMethodBind NativeMethodBind;
+	jvmtiEventCompiledMethodLoad CompiledMethodLoad;
+	jvmtiEventCompiledMethodUnload CompiledMethodUnload;
+	jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
+	jvmtiEventDataDumpRequest DataDumpRequest;
+	jvmtiEventReserved reserved72;
+	jvmtiEventMonitorWait MonitorWait;
+	jvmtiEventMonitorWaited MonitorWaited;
+	jvmtiEventMonitorContendedEnter MonitorContendedEnter;
+	jvmtiEventMonitorContendedEntered MonitorContendedEntered;
+	jvmtiEventReserved reserved77;
+	jvmtiEventReserved reserved78;
+	jvmtiEventReserved reserved79;
+	jvmtiEventReserved reserved80;
+	jvmtiEventGarbageCollectionStart GarbageCollectionStart;
+	jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
+	jvmtiEventObjectFree ObjectFree;
+	jvmtiEventVMObjectAlloc VMObjectAlloc;
+} jvmtiEventCallbacks;
+/*
+ *-----------------------------------------------------------------------------
+ * JVMTI methods
+ *-----------------------------------------------------------------------------
+ */
+typedef struct JVMTINativeInterface_ {
+	void *reserved1;
+	jvmtiError (JNICALL * SetEventNotificationMode)(jvmtiEnv* env,	jvmtiEventMode mode,	jvmtiEvent event_type,	jthread event_thread,	...);
+	void *reserved3;
+	jvmtiError (JNICALL * GetAllThreads)(jvmtiEnv* env,	jint* threads_count_ptr,	jthread** threads_ptr);
+	jvmtiError (JNICALL * SuspendThread)(jvmtiEnv* env,	jthread thread);
+	jvmtiError (JNICALL * ResumeThread)(jvmtiEnv* env,	jthread thread);
+	jvmtiError (JNICALL * StopThread)(jvmtiEnv* env,	jthread thread,	jobject exception);
+	jvmtiError (JNICALL * InterruptThread)(jvmtiEnv* env,	jthread thread);
+	jvmtiError (JNICALL * GetThreadInfo)(jvmtiEnv* env,	jthread thread,	jvmtiThreadInfo* info_ptr);
+	jvmtiError (JNICALL * GetOwnedMonitorInfo)(jvmtiEnv* env,	jthread thread,	jint* owned_monitor_count_ptr,	jobject** owned_monitors_ptr);
+	jvmtiError (JNICALL * GetCurrentContendedMonitor)(jvmtiEnv* env,	jthread thread,	jobject* monitor_ptr);
+	jvmtiError (JNICALL * RunAgentThread)(jvmtiEnv* env,	jthread thread,	jvmtiStartFunction proc,	const void* arg,	jint priority);
+	jvmtiError (JNICALL * GetTopThreadGroups)(jvmtiEnv* env,	jint* group_count_ptr,	jthreadGroup** groups_ptr);
+	jvmtiError (JNICALL * GetThreadGroupInfo)(jvmtiEnv* env,	jthreadGroup group,	jvmtiThreadGroupInfo* info_ptr);
+	jvmtiError (JNICALL * GetThreadGroupChildren)(jvmtiEnv* env,	jthreadGroup group,	jint* thread_count_ptr,	jthread** threads_ptr,	jint* group_count_ptr,	jthreadGroup** groups_ptr);
+	jvmtiError (JNICALL * GetFrameCount)(jvmtiEnv* env,	jthread thread,	jint* count_ptr);
+	jvmtiError (JNICALL * GetThreadState)(jvmtiEnv* env,	jthread thread,	jint* thread_state_ptr);
+	void *reserved18;
+	jvmtiError (JNICALL * GetFrameLocation)(jvmtiEnv* env,	jthread thread,	jint depth,	jmethodID* method_ptr,	jlocation* location_ptr);
+	jvmtiError (JNICALL * NotifyFramePop)(jvmtiEnv* env,	jthread thread,	jint depth);
+	jvmtiError (JNICALL * GetLocalObject)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jobject* value_ptr);
+	jvmtiError (JNICALL * GetLocalInt)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jint* value_ptr);
+	jvmtiError (JNICALL * GetLocalLong)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jlong* value_ptr);
+	jvmtiError (JNICALL * GetLocalFloat)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jfloat* value_ptr);
+	jvmtiError (JNICALL * GetLocalDouble)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jdouble* value_ptr);
+	jvmtiError (JNICALL * SetLocalObject)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jobject value);
+	jvmtiError (JNICALL * SetLocalInt)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jint value);
+	jvmtiError (JNICALL * SetLocalLong)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jlong value);
+	jvmtiError (JNICALL * SetLocalFloat)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jfloat value);
+	jvmtiError (JNICALL * SetLocalDouble)(jvmtiEnv* env,	jthread thread,	jint depth,	jint slot,	jdouble value);
+	jvmtiError (JNICALL * CreateRawMonitor)(jvmtiEnv* env,	const char* name,	jrawMonitorID* monitor_ptr);
+	jvmtiError (JNICALL * DestroyRawMonitor)(jvmtiEnv* env,	jrawMonitorID monitor);
+	jvmtiError (JNICALL * RawMonitorEnter)(jvmtiEnv* env,	jrawMonitorID monitor);
+	jvmtiError (JNICALL * RawMonitorExit)(jvmtiEnv* env,	jrawMonitorID monitor);
+	jvmtiError (JNICALL * RawMonitorWait)(jvmtiEnv* env,	jrawMonitorID monitor,	jlong millis);
+	jvmtiError (JNICALL * RawMonitorNotify)(jvmtiEnv* env,	jrawMonitorID monitor);
+	jvmtiError (JNICALL * RawMonitorNotifyAll)(jvmtiEnv* env,	jrawMonitorID monitor);
+	jvmtiError (JNICALL * SetBreakpoint)(jvmtiEnv* env,	jmethodID method,	jlocation location);
+	jvmtiError (JNICALL * ClearBreakpoint)(jvmtiEnv* env,	jmethodID method,	jlocation location);
+	void *reserved40;
+	jvmtiError (JNICALL * SetFieldAccessWatch)(jvmtiEnv* env,	jclass klass,	jfieldID field);
+	jvmtiError (JNICALL * ClearFieldAccessWatch)(jvmtiEnv* env,	jclass klass,	jfieldID field);
+	jvmtiError (JNICALL * SetFieldModificationWatch)(jvmtiEnv* env,	jclass klass,	jfieldID field);
+	jvmtiError (JNICALL * ClearFieldModificationWatch)(jvmtiEnv* env,	jclass klass,	jfieldID field);
+	void *reserved45;
+	jvmtiError (JNICALL * Allocate)(jvmtiEnv* env,	jlong size,	unsigned char** mem_ptr);
+	jvmtiError (JNICALL * Deallocate)(jvmtiEnv* env,	unsigned char* mem);
+	jvmtiError (JNICALL * GetClassSignature)(jvmtiEnv* env,	jclass klass,	char** signature_ptr,	char** generic_ptr);
+	jvmtiError (JNICALL * GetClassStatus)(jvmtiEnv* env,	jclass klass,	jint* status_ptr);
+	jvmtiError (JNICALL * GetSourceFileName)(jvmtiEnv* env,	jclass klass,	char** source_name_ptr);
+	jvmtiError (JNICALL * GetClassModifiers)(jvmtiEnv* env,	jclass klass,	jint* modifiers_ptr);
+	jvmtiError (JNICALL * GetClassMethods)(jvmtiEnv* env,	jclass klass,	jint* method_count_ptr,	jmethodID** methods_ptr);
+	jvmtiError (JNICALL * GetClassFields)(jvmtiEnv* env,	jclass klass,	jint* field_count_ptr,	jfieldID** fields_ptr);
+	jvmtiError (JNICALL * GetImplementedInterfaces)(jvmtiEnv* env,	jclass klass,	jint* interface_count_ptr,	jclass** interfaces_ptr);
+	jvmtiError (JNICALL * IsInterface)(jvmtiEnv* env,	jclass klass,	jboolean* is_interface_ptr);
+	jvmtiError (JNICALL * IsArrayClass)(jvmtiEnv* env,	jclass klass,	jboolean* is_array_class_ptr);
+	jvmtiError (JNICALL * GetClassLoader)(jvmtiEnv* env,	jclass klass,	jobject* classloader_ptr);
+	jvmtiError (JNICALL * GetObjectHashCode)(jvmtiEnv* env,	jobject object,	jint* hash_code_ptr);
+	jvmtiError (JNICALL * GetObjectMonitorUsage)(jvmtiEnv* env,	jobject object,	jvmtiMonitorUsage* info_ptr);
+	jvmtiError (JNICALL * GetFieldName)(jvmtiEnv* env,	jclass klass,	jfieldID field,	char** name_ptr,	char** signature_ptr,	char** generic_ptr);
+	jvmtiError (JNICALL * GetFieldDeclaringClass)(jvmtiEnv* env,	jclass klass,	jfieldID field,	jclass* declaring_class_ptr);
+	jvmtiError (JNICALL * GetFieldModifiers)(jvmtiEnv* env,	jclass klass,	jfieldID field,	jint* modifiers_ptr);
+	jvmtiError (JNICALL * IsFieldSynthetic)(jvmtiEnv* env,	jclass klass,	jfieldID field,	jboolean* is_synthetic_ptr);
+	jvmtiError (JNICALL * GetMethodName)(jvmtiEnv* env,	jmethodID method,	char** name_ptr,	char** signature_ptr,	char** generic_ptr);
+	jvmtiError (JNICALL * GetMethodDeclaringClass)(jvmtiEnv* env,	jmethodID method,	jclass* declaring_class_ptr);
+	jvmtiError (JNICALL * GetMethodModifiers)(jvmtiEnv* env,	jmethodID method,	jint* modifiers_ptr);
+	void *reserved67;
+	jvmtiError (JNICALL * GetMaxLocals)(jvmtiEnv* env,	jmethodID method,	jint* max_ptr);
+	jvmtiError (JNICALL * GetArgumentsSize)(jvmtiEnv* env,	jmethodID method,	jint* size_ptr);
+	jvmtiError (JNICALL * GetLineNumberTable)(jvmtiEnv* env,	jmethodID method,	jint* entry_count_ptr,	jvmtiLineNumberEntry** table_ptr);
+	jvmtiError (JNICALL * GetMethodLocation)(jvmtiEnv* env,	jmethodID method,	jlocation* start_location_ptr,	jlocation* end_location_ptr);
+	jvmtiError (JNICALL * GetLocalVariableTable)(jvmtiEnv* env,	jmethodID method,	jint* entry_count_ptr,	jvmtiLocalVariableEntry** table_ptr);
+	void *reserved73;
+	void *reserved74;
+	jvmtiError (JNICALL * GetBytecodes)(jvmtiEnv* env,	jmethodID method,	jint* bytecode_count_ptr,	unsigned char** bytecodes_ptr);
+	jvmtiError (JNICALL * IsMethodNative)(jvmtiEnv* env,	jmethodID method,	jboolean* is_native_ptr);
+	jvmtiError (JNICALL * IsMethodSynthetic)(jvmtiEnv* env,	jmethodID method,	jboolean* is_synthetic_ptr);
+	jvmtiError (JNICALL * GetLoadedClasses)(jvmtiEnv* env,	jint* class_count_ptr,	jclass** classes_ptr);
+	jvmtiError (JNICALL * GetClassLoaderClasses)(jvmtiEnv* env,	jobject initiating_loader,	jint* class_count_ptr,	jclass** classes_ptr);
+	jvmtiError (JNICALL * PopFrame)(jvmtiEnv* env,	jthread thread);
+	void *reserved81;
+	void *reserved82;
+	void *reserved83;
+	void *reserved84;
+	void *reserved85;
+	void *reserved86;
+	jvmtiError (JNICALL * RedefineClasses)(jvmtiEnv* env,	jint class_count,	const jvmtiClassDefinition* class_definitions);
+	jvmtiError (JNICALL * GetVersionNumber)(jvmtiEnv* env,	jint* version_ptr);
+	jvmtiError (JNICALL * GetCapabilities)(jvmtiEnv* env,	jvmtiCapabilities* capabilities_ptr);
+	jvmtiError (JNICALL * GetSourceDebugExtension)(jvmtiEnv* env,	jclass klass,	char** source_debug_extension_ptr);
+	jvmtiError (JNICALL * IsMethodObsolete)(jvmtiEnv* env,	jmethodID method,	jboolean* is_obsolete_ptr);
+	jvmtiError (JNICALL * SuspendThreadList)(jvmtiEnv* env,	jint request_count,	const jthread* request_list,	jvmtiError* results);
+	jvmtiError (JNICALL * ResumeThreadList)(jvmtiEnv* env,	jint request_count,	const jthread* request_list,	jvmtiError* results);
+	void *reserved94;
+	void *reserved95;
+	void *reserved96;
+	void *reserved97;
+	void *reserved98;
+	void *reserved99;
+	jvmtiError (JNICALL * GetAllStackTraces)(jvmtiEnv* env,	jint max_frame_count,	jvmtiStackInfo** stack_info_ptr,	jint* thread_count_ptr);
+	jvmtiError (JNICALL * GetThreadListStackTraces)(jvmtiEnv* env,	jint thread_count,	const jthread* thread_list,	jint max_frame_count,	jvmtiStackInfo** stack_info_ptr);
+	jvmtiError (JNICALL * GetThreadLocalStorage)(jvmtiEnv* env,	jthread thread,	void** data_ptr);
+	jvmtiError (JNICALL * SetThreadLocalStorage)(jvmtiEnv* env,	jthread thread,	const void* data);
+	jvmtiError (JNICALL * GetStackTrace)(jvmtiEnv* env,	jthread thread,	jint start_depth,	jint max_frame_count,	jvmtiFrameInfo* frame_buffer,	jint* count_ptr);
+	void *reserved105;
+	jvmtiError (JNICALL * GetTag)(jvmtiEnv* env,	jobject object,	jlong* tag_ptr);
+	jvmtiError (JNICALL * SetTag)(jvmtiEnv* env,	jobject object,	jlong tag);
+	jvmtiError (JNICALL * ForceGarbageCollection)(jvmtiEnv* env);
+	jvmtiError (JNICALL * IterateOverObjectsReachableFromObject)(jvmtiEnv* env,	jobject object,	jvmtiObjectReferenceCallback object_reference_callback,	void* user_data);
+	jvmtiError (JNICALL * IterateOverReachableObjects)(jvmtiEnv* env,	jvmtiHeapRootCallback heap_root_callback,	jvmtiStackReferenceCallback stack_ref_callback,	jvmtiObjectReferenceCallback object_ref_callback,	void* user_data);
+	jvmtiError (JNICALL * IterateOverHeap)(jvmtiEnv* env,	jvmtiHeapObjectFilter object_filter,	jvmtiHeapObjectCallback heap_object_callback,	void* user_data);
+	jvmtiError (JNICALL * IterateOverInstancesOfClass)(jvmtiEnv* env,	jclass klass,	jvmtiHeapObjectFilter object_filter,	jvmtiHeapObjectCallback heap_object_callback,	void* user_data);
+	void *reserved113;
+	jvmtiError (JNICALL * GetObjectsWithTags)(jvmtiEnv* env,	jint tag_count,	const jlong* tags,	jint* count_ptr,	jobject** object_result_ptr,	jlong** tag_result_ptr);
+	void *reserved115;
+	void *reserved116;
+	void *reserved117;
+	void *reserved118;
+	void *reserved119;
+	jvmtiError (JNICALL * SetJNIFunctionTable)(jvmtiEnv* env,	const jniNativeInterface* function_table);
+	jvmtiError (JNICALL * GetJNIFunctionTable)(jvmtiEnv* env,	jniNativeInterface** function_table);
+	jvmtiError (JNICALL * SetEventCallbacks)(jvmtiEnv* env,	const jvmtiEventCallbacks* callbacks,	jint size_of_callbacks);
+	jvmtiError (JNICALL * GenerateEvents)(jvmtiEnv* env,	jvmtiEvent event_type);
+	jvmtiError (JNICALL * GetExtensionFunctions)(jvmtiEnv* env,	jint* extension_count_ptr,	jvmtiExtensionFunctionInfo** extensions);
+	jvmtiError (JNICALL * GetExtensionEvents)(jvmtiEnv* env,	jint* extension_count_ptr,	jvmtiExtensionEventInfo** extensions);
+	jvmtiError (JNICALL * SetExtensionEventCallback)(jvmtiEnv* env,	jint extension_event_index,	jvmtiExtensionEvent callback);
+	jvmtiError (JNICALL * DisposeEnvironment)(jvmtiEnv* env);
+	jvmtiError (JNICALL * GetErrorName)(jvmtiEnv* env,	jvmtiError error,	char** name_ptr);
+	jvmtiError (JNICALL * GetJLocationFormat)(jvmtiEnv* env,	jvmtiJlocationFormat* format_ptr);
+	jvmtiError (JNICALL * GetSystemProperties)(jvmtiEnv* env,	jint* count_ptr,	char*** property_ptr);
+	jvmtiError (JNICALL * GetSystemProperty)(jvmtiEnv* env,	const char* property,	char** value_ptr);
+	jvmtiError (JNICALL * SetSystemProperty)(jvmtiEnv* env,	const char* property,	const char* value);
+	jvmtiError (JNICALL * GetPhase)(jvmtiEnv* env,	jvmtiPhase* phase_ptr);
+	jvmtiError (JNICALL * GetCurrentThreadCpuTimerInfo)(jvmtiEnv* env,	jvmtiTimerInfo* info_ptr);
+	jvmtiError (JNICALL * GetCurrentThreadCpuTime)(jvmtiEnv* env,	jlong* nanos_ptr);
+	jvmtiError (JNICALL * GetThreadCpuTimerInfo)(jvmtiEnv* env,	jvmtiTimerInfo* info_ptr);
+	jvmtiError (JNICALL * GetThreadCpuTime)(jvmtiEnv* env,	jthread thread,	jlong* nanos_ptr);
+	jvmtiError (JNICALL * GetTimerInfo)(jvmtiEnv* env,	jvmtiTimerInfo* info_ptr);
+	jvmtiError (JNICALL * GetTime)(jvmtiEnv* env,	jlong* nanos_ptr);
+	jvmtiError (JNICALL * GetPotentialCapabilities)(jvmtiEnv* env,	jvmtiCapabilities* capabilities_ptr);
+	void *reserved141;
+	jvmtiError (JNICALL * AddCapabilities)(jvmtiEnv* env,	const jvmtiCapabilities* capabilities_ptr);
+	jvmtiError (JNICALL * RelinquishCapabilities)(jvmtiEnv* env,	const jvmtiCapabilities* capabilities_ptr);
+	jvmtiError (JNICALL * GetAvailableProcessors)(jvmtiEnv* env,	jint* processor_count_ptr);
+	void *reserved145;
+	void *reserved146;
+	jvmtiError (JNICALL * GetEnvironmentLocalStorage)(jvmtiEnv* env,	void** data_ptr);
+	jvmtiError (JNICALL * SetEnvironmentLocalStorage)(jvmtiEnv* env,	const void* data);
+	jvmtiError (JNICALL * AddToBootstrapClassLoaderSearch)(jvmtiEnv* env,	const char* segment);
+	jvmtiError (JNICALL * SetVerboseFlag)(jvmtiEnv* env,	jvmtiVerboseFlag flag,	jboolean value);
+	void *reserved151;
+	void *reserved152;
+	void *reserved153;
+	jvmtiError (JNICALL * GetObjectSize)(jvmtiEnv* env,	jobject object,	jlong* size_ptr);
+} jvmtiNativeInterface;
+#endif     /* jvmti_h */
+
+
+

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/portsock.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/portsock.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/portsock.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/portsock.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,25 @@
+/* Copyright 1998, 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.
+ */
+
+/******************************************************\
+		Redirects to port socket header
+\******************************************************/
+
+#if !defined(portsock_h)
+#define portsock_h
+
+#include "../port/hysock.h"
+
+#endif     /* portsock_h */

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_module.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_module.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_module.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_module.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,84 @@
+/* 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.
+ */
+
+/*
+ * =============================================================================
+ * Module Information:
+ *
+ * DESCRIPTION: Universal Trace Engine module header file
+ * =============================================================================
+ */
+#if !defined(_UTE_MODULE_H)
+#define _UTE_MODULE_H
+
+#define UT_ENV_ARG void *env
+#define UT_CALL_TYPE
+
+#include "jni.h"
+#include "ute_pd.h"
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*
+ * =============================================================================
+ *   Forward declarations
+ * =============================================================================
+ */
+struct  utServerInterface;
+typedef struct  utServerInterface UtServerInterface;
+struct  utClientInterface;
+typedef struct  utClientInterface UtClientInterface;
+struct  utModuleInterface;
+typedef struct utModuleInterface UtModuleInterface;
+
+/*
+ * =============================================================================
+ *   The combined UT server/client/module interface
+ * =============================================================================
+ */
+typedef struct  utInterface {
+	UtServerInterface *server;
+	UtClientInterface *client;
+	UtModuleInterface *module;
+} UtInterface;
+
+/*
+ * =============================================================================
+ *  UT module info
+ * =============================================================================
+ */
+typedef struct  utModuleInfo {
+	char              *name;
+	UT_I32             namelength;
+	UtModuleInterface *intf;
+	char              *properties;
+	UT_I32            *stateTrace;
+} UtModuleInfo;
+/*
+ * =============================================================================
+ *   The module interface for indirect calls into UT
+ * =============================================================================
+ */
+struct  utModuleInterface {
+	void  (UT_CALL_TYPE *Trace)(UT_ENV_ARG, UtModuleInfo *modInfo, UT_U32 traceId, const char *spec, ...);
+	void (UT_CALL_TYPE * TraceInit) (UT_ENV_ARG, UtModuleInfo * mod);
+    void (UT_CALL_TYPE * TraceTerm) (UT_ENV_ARG, UtModuleInfo * mod);
+};
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* !_UTE_MODULE_H */

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_pd.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_pd.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_pd.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/ute_pd.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,89 @@
+/* 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(_UTE_PD_H)
+#define _UTE_PD_H
+
+#include "hycomp.h"
+#include "jni.h"
+#if defined(__cplusplus)
+extern "C" {
+#endif
+/*
+ * =============================================================================
+ *  Platform dependent primitives
+ * =============================================================================
+ */
+typedef I_64                UT_I64;            /* Signed 64bit integer        */
+typedef I_32                UT_I32;            /* Signed 32bit integer        */
+typedef I_16                UT_I16;            /* Signed 16bit integer        */
+typedef I_8                 UT_I8;             /* Signed 8bit integer         */
+typedef IDATA               UT_IPTR;           /* Signed ptr-sized integer    */
+typedef U_64                UT_U64;            /* Unsigned 64bit integer      */
+typedef U_32                UT_U32;            /* Unsigned 32bit integer      */
+typedef U_16                UT_U16;            /* Unsigned 16bit integer      */
+typedef U_8                 UT_U8;             /* Unsigned 8bit integer       */
+typedef UDATA               UT_UPTR;           /* Unsigned ptr-sized integer  */
+typedef I_32                UT_BOOL;           /* Boolean                     */
+typedef I_32                UT_FD;             /* File descriptor             */
+/*
+ * =============================================================================
+ *  Platform dependent return codes - Use JNI return codes for this application
+ *  Note that all error codes must be negative
+ * =============================================================================
+ */
+#define UTE_OK          JNI_OK
+#define UTE_ERROR       JNI_ERR
+#define UTE_BADVERSION  JNI_EVERSION
+#define UTE_OUTOFMEMORY JNI_ENOMEM
+#define UTE_INVALID     JNI_EINVAL
+/*
+ * =============================================================================
+ *  Platform dependent calling conventions
+ * =============================================================================
+ */
+#define UTECALL     JNICALL
+#define UTEEXPORT   JNIEXPORT
+/*
+ * =============================================================================
+ *  RAS event semaphore - platform dependent portion
+ * =============================================================================
+ */
+#if !defined(UT_EVENT_SEM)
+#define UT_EVENT_SEM void *
+#endif
+typedef struct  utEventSem_pd {
+    UT_EVENT_SEM  sem;
+    volatile int flags;
+} UtEventSem_pd;
+#define UT_SEM_WAITING 1
+#define UT_SEM_POSTED  2
+/*
+ * =============================================================================
+ * Constants for CPU type etc
+ * =============================================================================
+ */
+#define UT_HASTSC       0x0010
+#define UT_FAMILY       0x0F00
+#define UT_IS586        0x0500
+#define UT_FAMILY_MODEL 0x0FF0
+#define UT_PIII_MODEL7  0x0670
+#define UT_P4_MODEL     0x0F00
+#define UT_EXT_FAMILY   0x0F00000
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* !_UTE_PD_H */

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/vmi.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/vmi.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/vmi.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/vmi.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,302 @@
+/* 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 VMInterface
+ * @brief VM interface specification
+ */
+
+#if !defined(vmi_h)
+#define vmi_h
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#include "jni.h"
+#include "hyport.h"
+#include "hyvmls.h"
+
+#include "zipsup.h"
+
+/**
+ * @enum vmiError
+ * Enumeration of all possible return codes from VM interface functions
+ */
+typedef enum 
+{
+	VMI_ERROR_NONE = 0,                  /**< Success */
+	VMI_ERROR_UNKNOWN = 1,               /**< Unknown error */
+	VMI_ERROR_UNIMPLEMENTED = 2,         /**< Function has not been implemented */
+	VMI_ERROR_UNSUPPORTED_VERSION = 3,   /**< The requested VM interface version is not supported */
+	VMI_ERROR_OUT_OF_MEMORY= 4,          /**< Not enough memory was available to complete the request */
+	VMI_ERROR_NOT_FOUND= 5,              /**< The requested system property was not found */
+	VMI_ERROR_READ_ONLY= 6,              /**< An attempt was made to modify a read-only item */
+	vmiErrorEnsureWideEnum = 0x1000000   /* ensure 4-byte enum */
+} vmiError;
+/**
+ * @enum vmiVersion
+ * VM interface version identifier
+ */
+typedef enum
+{
+	VMI_VERSION_UNKNOWN = 0x00000000,					/**< Unknown VMInterface version */
+	VMI_VERSION_1_0 = 0x00010000,								/**< VMInterface version 1.0 */
+	vmiVersionEnsureWideEnum = 0x1000000					/* ensure 4-byte enum */
+} vmiVersion;
+/**
+ * @typedef vmiSystemPropertyIterator
+ * Specification of the iterator function to provide to IterateSystemProperties
+ *
+ * @code void iterator(char* key, char* value, void* userData); @endcode
+ */
+typedef void (JNICALL *vmiSystemPropertyIterator)(char* key, char* value, void* userData);
+struct VMInterface_;
+struct VMInterfaceFunctions_;
+/**
+ * @typedef VMInterface
+ * The VM interface structure. Points to the @ref VMInterfaceFunctions_ "VM interface function table". 
+ * Implementations will likely choose to store opaque data off this structure.
+ */
+typedef const struct VMInterfaceFunctions_* VMInterface;
+/**
+ * @struct VMInterfaceFunctions_ 
+ * The VM interface function table.
+ * 
+ * Example usage:
+ * @code
+ * JavaVM* vm = (*vmi)->GetJavaVM(vmi);
+ * @endcode
+ */
+struct VMInterfaceFunctions_ 
+{
+	vmiError (JNICALL * CheckVersion)(VMInterface* vmi, vmiVersion* version);
+	JavaVM* (JNICALL * GetJavaVM) (VMInterface* vmi);
+	HyPortLibrary* (JNICALL * GetPortLibrary) (VMInterface* vmi);
+	HyVMLSFunctionTable* (JNICALL * GetVMLSFunctions) (VMInterface* vmi);
+
+	HyZipCachePool* (JNICALL * GetZipCachePool) (VMInterface* vmi);
+JavaVMInitArgs* (JNICALL * GetInitArgs) (VMInterface* vmi);
+	vmiError (JNICALL * GetSystemProperty) (VMInterface* vmi, char* key, char** valuePtr);
+	vmiError (JNICALL * SetSystemProperty) (VMInterface* vmi, char* key, char* value);
+	vmiError (JNICALL * CountSystemProperties) (VMInterface* vmi, int* countPtr);
+	vmiError (JNICALL * IterateSystemProperties) (VMInterface* vmi, vmiSystemPropertyIterator iterator, void* userData);
+};
+/** 
+ *
+ * @name VM Interface Support Functions 
+ * @htmlonly <a name='VMIExports'>&nbsp;</a> @endhtmlonly Non-table VM interface functions. Directly exported from the VMI library.
+ */
+/*@{*/ 
+/**
+ * Extract the VM interface from a JNIEnv
+ *
+ * @param[in] env  The JNIEnv to query
+ *
+ * @return a VMInterface pointer
+ */
+VMInterface * JNICALL VMI_GetVMIFromJNIEnv(JNIEnv* env);
+/**
+ * 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);
+/*@}*/ 
+/** @name VM Interface Access Macros
+ *
+ *  Convenience macros for acquiring a VMInterface
+ */
+/*@{*/ 
+#define VMI_ACCESS_FROM_ENV(env) VMInterface* privateVMI = VMI_GetVMIFromJNIEnv(env) 
+#define VMI_ACCESS_FROM_JAVAVM(javaVM) VMInterface* privateVMI = VMI_GetVMIFromJavaVM(javaVM)
+#define VMI privateVMI
+/*@}*/ 
+/**
+ * @fn VMInterfaceFunctions_::CheckVersion
+ * Check the version of the VM interface
+ *
+ * @code vmiError JNICALL CheckVersion(VMInterface* vmi, vmiVersion* version); @endcode
+ *
+ * @param[in] vmi  The VM interface pointer
+ * @param[in,out] version  Pass in the version to check, or @ref VMI_VERSION_UNKNOWN. Returns the current version.
+ *
+ * @return a @ref vmiError "VMI error code"
+ *
+ * @note The CheckVersion function allows a class library to verify that the VM provides the required interface functions.
+ * If the version requested is @ref VMI_VERSION_UNKNOWN, then the function will reply with the current version and not return an error.
+ * If a specific version is passed, it will be compatibility checked against the current, and @ref VMI_ERROR_UNSUPPORTED_VERSION
+ * may be returned.
+ */
+vmiError JNICALL CheckVersion(VMInterface* vmi, vmiVersion* version);
+/**
+ * @fn VMInterfaceFunctions_::GetJavaVM
+ * Return the JNI JavaVM associated with the VM interface
+ *
+ * @code JavaVM* JNICALL GetJavaVM(VMInterface* vmi); @endcode
+ *
+ * @param[in] vmi  The VM interface pointer
+ *
+ * @return a JavaVM pointer
+ */
+JavaVM* JNICALL GetJavaVM(VMInterface* vmi);
+/**
+ * @fn VMInterfaceFunctions_::GetPortLibrary
+ * Return a pointer to an initialized HyPortLibrary structure.
+ * 
+ * @code HyPortLibrary* JNICALL GetPortLibrary(VMInterface* vmi); @endcode
+ *
+ * The @ref hyport.h "port library" is a table of functions that implement useful platform specific
+ * capability. For example, file and socket manipulation, memory management, etc.
+ * It is the responsibility of the VM to create the port library.
+ *
+ * @param[in] vmi  The VM interface pointer
+ *
+ * @return the HyPortLibrary associated with the VMI
+ * 
+ * @see hyport.c
+ */
+HyPortLibrary* JNICALL GetPortLibrary(VMInterface* vmi);
+/**
+ * @fn VMInterfaceFunctions_::GetVMLSFunctions
+ * Return a pointer to a HyVMLSFunctionTable. This is a table of functions for allocating,
+ * freeing, getting, and setting thread local storage.
+ *
+ * @code HyVMLSFunctionTable* JNICALL GetVMLSFunctions(VMInterface* vmi); @endcode
+ *
+ * @param[in] vmi  The VM interface pointer
+ *
+ * @return the VM local storage function table
+ */
+HyVMLSFunctionTable* JNICALL GetVMLSFunctions(VMInterface* vmi);
+/**
+ * @fn VMInterfaceFunctions_::GetZipCachePool
+ * Return a pointer to the HyZipCachePool structure used by the VM. It is the
+ * responsibility of the vm to allocate the pool using zipCachePool_new().
+ *
+ * @code HyZipCachePool* JNICALL GetZipCachePool(VMInterface* vmi); @endcode
+ * 
+ * @param[in] vmi  The VM interface pointer
+ *
+ * @return a HyZipCachePool pointer
+ */
+HyZipCachePool* JNICALL GetZipCachePool(VMInterface* vmi);
+/**
+ * @fn VMInterfaceFunctions_::GetInitArgs
+ * Return a pointer to a JavaVMInitArgs structure as defined by the 1.2 JNI
+ * specification. This structure contains the arguments used to invoke the vm.
+ *
+ * @code JavaVMInitArgs* JNICALL GetInitArgs(VMInterface* vmi); @endcode
+ *
+ * @param[in] vmi  The VM interface pointer
+ *
+ * @return the VM invocation arguments
+ */
+JavaVMInitArgs* JNICALL GetInitArgs(VMInterface* vmi);
+/**
+ * @fn VMInterfaceFunctions_::GetSystemProperty
+ * Retrieve the value of a VM system property. 
+ * 
+ * @code vmiError JNICALL GetSystemProperty (VMInterface* vmi, char* key, char** valuePtr); @endcode
+ *
+ * The following properties must be defined by the vm.
+ *
+ * <TABLE>
+ * <TR><TD><B>Property Name</B></TD>			<TD><B>Example Value or Description</B></TD></TR>
+ * <TR><TD>java.vendor</TD>			<TD>"MY Corporation"</TD></TR>
+ * <TR><TD>java.vendor.url</TD>			<TD>"http://www.MYCorp.com/"</TD></TR>
+ * <TR><TD>java.vm.specification.version</TD>	<TD>"1.0"</TD></TR>
+ * <TR><TD>java.vm.specification.vendor</TD>	<TD>"Sun Microsystems Inc."</TD></TR>
+ * <TR><TD>java.vm.specification.name</TD>	<TD>"Java Virtual Machine Specification"</TD></TR>
+ * <TR><TD>java.vm.version</TD>			<TD>"2.3"</TD></TR>
+ * <TR><TD>java.vm.vendor</TD>			<TD>"MY Corporation"</TD></TR>
+ * <TR><TD>java.vm.name	</TD>		<TD>"MYVM"</TD></TR>
+ * <TR><TD>java.vm.info</TD>			<TD>"MYVM 2.3 Windows XP x86-32  (JIT enabled)
+<BR>MYVM version 2.3
+ * <TR><TD>java.compiler</TD>			<TD>"MYjit"</TD></TR>
+ * <TR><TD>java.runtime.name</TD>		<TD>"MY Virtual Machine"</TD></TR>
+ * <TR><TD>java.runtime.version</TD>		<TD>"2.3"</TD></TR>
+ * <TR><TD>java.class.version</TD>		<TD>"49.0"</TD></TR>
+ * <TR><TD>java.home</TD>			<TD>the absolute path of the parent directory of the directory containing the vm
+<BR>i.e. for a vm /harmony/bin/vm.exe, java.home is /harmony</TD></TR>
+ * <TR><TD>java.class.path</TD>			<TD>the application class path</TD></TR>
+ * <TR><TD>java.library.path</TD>			<TD>the application library path</TD></TR>
+ * </TABLE>
+ *
+ * @return a @ref vmiError "VMI error code"
+ *
+ * @note The returned string is owned by the VM, and should not be freed.
+ */
+vmiError JNICALL GetSystemProperty (VMInterface* vmi, char* key, char** valuePtr);
+/**
+ * @fn VMInterfaceFunctions_::SetSystemProperty
+ * Override the value of a VM system property
+ *
+ * @code vmiError JNICALL SetSystemProperty(VMInterface* vmi, char* key, char* value); @endcode
+ * 
+ * @param[in] vmi  The VM interface pointer
+ * @param[in] key  The system property to override
+ * @param[in] value  The value of the system property
+ *
+ * @return a @ref vmiError "VMI error code"
+ *
+ * @note Only existing properties can be overridden. New properties cannot be added by this mechanism.
+ *
+ * @note See  GetSystemProperty() for the list of properties that must be defined
+ * by the vm.
+ */
+vmiError JNICALL SetSystemProperty(VMInterface* vmi, char* key, char* value);
+/**
+ * @fn VMInterfaceFunctions_::CountSystemProperties
+ * Return the number of VM system properties
+ * 
+ * @code vmiError JNICALL CountSystemProperties(VMInterface* vmi, int* countPtr); @endcode
+ *
+ * @param[in] vmi  The VM interface pointer
+ * @param[out] countPtr The location to store the number of system properties
+ *
+ * @return a @ref vmiError "VMI error code"
+ *
+ * @note See  GetSystemProperty() for the list of properties that must be defined
+ * by the vm.
+ */
+vmiError JNICALL CountSystemProperties(VMInterface* vmi, int* countPtr);
+/**
+ * @fn VMInterfaceFunctions_::IterateSystemProperties
+ * Iterate over the VM system properties calling a function.
+ *
+ * @code vmiError JNICALL IterateSystemProperties(VMInterface* vmi, vmiSystemPropertyIterator iterator, void* userData); @endcode
+ * 
+ * @param[in] vmi  The VM interface pointer
+ * @param[in] iterator  The iterator function to call with each property
+ * @param[in] userData  Opaque data to pass to the iterator function
+ *
+ * @return a @ref vmiError "VMI error code"
+ *
+ * @note The returned strings are owned by the VM, and should not be freed.
+ *
+ * @note See  GetSystemProperty() for the list of properties that must be defined
+ * by the vm.
+ */
+vmiError JNICALL IterateSystemProperties(VMInterface* vmi, vmiSystemPropertyIterator iterator, void* userData);
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif     /* vmi_h */

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/zipsup.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/zipsup.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/zipsup.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/include/zipsup.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,158 @@
+/* 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 ZipSupport
+ * @brief Zip Support Header
+*/
+
+#if !defined(ZIPSUP_H)
+#define ZIPSUP_H
+#if defined(__cplusplus)
+extern "C" {
+#endif
+#include "hyport.h"
+typedef struct HyZipCachePool HyZipCachePool;
+	
+#define ZIP_INTERNAL_MAX  80
+#define ZIP_CM_Reduced1  2
+#define ZIP_Unknown  0
+#define ZIP_GZIP  2
+#define ZIP_ERR_OUT_OF_MEMORY  -3
+#define ZIP_ERR_FILE_CORRUPT  -6
+#define ZIP_ERR_INTERNAL_ERROR  -11
+#define ZIP_CM_Imploded  6
+#define ZIP_CM_Reduced4  5
+#define ZIP_CM_Shrunk  1
+#define ZIP_CM_Reduced2  3
+#define ZIP_ERR_FILE_READ_ERROR  -1
+#define ZIP_CentralHeader  0x2014B50
+#define ZIP_ERR_FILE_CLOSE_ERROR  -10
+#define ZIP_ERR_BUFFER_TOO_SMALL  -7
+#define ZIP_CM_Reduced3  4
+#define ZIP_CM_Deflated  8
+#define ZIP_LocalHeader  0x4034B50
+#define ZIP_CM_Tokenized  7
+#define ZIP_PKZIP  1
+#define ZIP_CM_Stored  0
+#define ZIP_ERR_UNSUPPORTED_FILE_TYPE  -5
+#define ZIP_ERR_NO_MORE_ENTRIES  -2
+#define ZIP_CentralEnd  0x6054B50
+#define ZIP_ERR_FILE_OPEN_ERROR  -9
+#define ZIP_ERR_UNKNOWN_FILE_TYPE  -4
+#define ZIP_ERR_ENTRY_NOT_FOUND  -8
+#define ZIP_DataDescriptor  0x8074B50
+typedef struct HyZipCache {
+    U_8* zipFileName;
+    IDATA zipFileSize;
+    I_64 zipTimeStamp;
+    IDATA startCentralDir;
+    struct HyPortLibrary* portLib;
+    void* cachePool;
+    void* cachePoolEntry;
+} HyZipCache;
+#define HYSIZEOF_HyZipCache 32
+typedef struct HyZipCentralEnd {
+    U_16 diskNumber;
+    U_16 dirStartDisk;
+    U_16 thisDiskEntries;
+    U_16 totalEntries;
+    U_32 dirSize;
+    U_32 dirOffset;
+    U_16 commentLength;
+    char _hypadding0012[2]; /* 2 bytes of automatic padding */
+    U_8* comment;
+} HyZipCentralEnd;
+#define HYSIZEOF_HyZipCentralEnd 24
+typedef struct HyZipDataDescriptor {
+    U_32 crc32;
+    U_32 compressedSize;
+    U_32 uncompressedSize;
+} HyZipDataDescriptor;
+#define HYSIZEOF_HyZipDataDescriptor 12
+typedef struct HyZipEntry {
+    U_8* data;
+    U_8* filename;
+    U_8* extraField;
+    U_8* fileComment;
+    I_32 dataPointer;
+    I_32 filenamePointer;
+    I_32 extraFieldPointer;
+    I_32 fileCommentPointer;
+    U_32 compressedSize;
+    U_32 uncompressedSize;
+    U_32 crc32;
+    U_16 filenameLength;
+    U_16 extraFieldLength;
+    U_16 fileCommentLength;
+    U_16 internalAttributes;
+    U_16 versionCreated;
+    U_16 versionNeeded;
+    U_16 flags;
+    U_16 compressionMethod;
+    U_16 lastModTime;
+    U_16 lastModDate;
+    U_8 internalFilename[80];
+} HyZipEntry;
+#define HYSIZEOF_HyZipEntry 144
+typedef struct HyZipFile {
+    U_8* filename;
+    struct HyZipCache* cache;
+    void* cachePool;
+    I_32 fd;
+    I_32 pointer;
+    U_8 internalFilename[80];
+    U_8 type;
+    char _hypadding0065[3]; /* 3 bytes of automatic padding */
+} HyZipFile;
+#define HYSIZEOF_HyZipFile 104
+/* HySourceZipSupport*/
+extern HY_CFUNC I_32 zip_getZipEntryData PROTOTYPE((HyPortLibrary* portLib, HyZipFile* zipFile, HyZipEntry* entry, U_8* buffer, U_32 bufferSize));
+extern HY_CFUNC I_32 zip_getZipEntryFromOffset PROTOTYPE((HyPortLibrary * portLib, HyZipFile * zipFile, HyZipEntry * entry, IDATA offset));
+extern HY_CFUNC I_32 zip_establishCache PROTOTYPE((HyPortLibrary * portLib, HyZipFile *zipFile));
+extern HY_CFUNC void zip_resetZipFile PROTOTYPE((HyPortLibrary* portLib, HyZipFile* zipFile, IDATA *nextEntryPointer));
+extern HY_CFUNC I_32 zip_getNextZipEntry PROTOTYPE((HyPortLibrary* portLib, HyZipFile* zipFile, HyZipEntry* zipEntry, IDATA* nextEntryPointer));
+extern HY_CFUNC I_32 zip_getZipEntry PROTOTYPE((HyPortLibrary * portLib, HyZipFile * zipFile, HyZipEntry * entry, const char *filename, BOOLEAN findDirectory));
+extern HY_CFUNC I_32 zip_getZipEntryExtraField PROTOTYPE((HyPortLibrary* portLib, HyZipFile* zipFile, HyZipEntry* entry, U_8* buffer, U_32 bufferSize));
+extern HY_CFUNC void zip_initZipEntry PROTOTYPE((HyPortLibrary* portLib, HyZipEntry* entry));
+extern HY_CFUNC I_32 zip_openZipFile PROTOTYPE((HyPortLibrary* portLib, char* filename, HyZipFile* zipFile, HyZipCachePool *cachePool));
+extern HY_CFUNC void zip_freeZipEntry PROTOTYPE((HyPortLibrary * portLib, HyZipEntry * entry));
+struct HyZipFile;
+extern HY_CFUNC I_32 VMCALL zip_closeZipFile PROTOTYPE((HyPortLibrary* portLib, struct HyZipFile* zipFile));
+extern HY_CFUNC I_32 zip_getZipEntryComment PROTOTYPE((HyPortLibrary * portLib, HyZipFile * zipFile, HyZipEntry * entry, U_8 * buffer,
+							U_32 bufferSize));
+/* HySourceZipCache*/
+extern HY_CFUNC UDATA zipCache_findElement PROTOTYPE((HyZipCache * zipCache, const char *elementName, BOOLEAN searchDirList));
+extern HY_CFUNC void zipCache_kill PROTOTYPE((HyZipCache * zipCache));
+extern HY_CFUNC IDATA zipCache_enumGetDirName PROTOTYPE((void *handle, char *nameBuf, UDATA nameBufSize));
+extern HY_CFUNC HyZipCache *zipCache_new PROTOTYPE((HyPortLibrary * portLib, char *zipName, IDATA zipNameLength));
+extern HY_CFUNC IDATA zipCache_enumNew PROTOTYPE((HyZipCache * zipCache, char *directoryName, void **handle));
+extern HY_CFUNC IDATA zipCache_enumElement PROTOTYPE((void *handle, char *nameBuf, UDATA nameBufSize, UDATA * offset));
+extern HY_CFUNC void zipCache_enumKill PROTOTYPE((void *handle));
+extern HY_CFUNC BOOLEAN zipCache_addElement PROTOTYPE((HyZipCache * zipCache, char *elementName, UDATA elementOffset));
+/* HySourceZipCachePool*/
+extern HY_CFUNC BOOLEAN zipCachePool_release PROTOTYPE((HyZipCachePool *zcp, HyZipCache *zipCache));
+extern HY_CFUNC void zipCachePool_kill PROTOTYPE((HyZipCachePool *zcp));
+extern HY_CFUNC HyZipCache * zipCachePool_findCache PROTOTYPE((HyZipCachePool *zcp, char const *zipFileName, IDATA zipFileNameLength, IDATA zipFileSize, I_64 zipTimeStamp));
+extern HY_CFUNC HyZipCachePool *zipCachePool_new PROTOTYPE((HyPortLibrary * portLib));
+extern HY_CFUNC BOOLEAN zipCachePool_addCache PROTOTYPE((HyZipCachePool *zcp, HyZipCache *zipCache));
+extern HY_CFUNC BOOLEAN zipCachePool_addRef PROTOTYPE((HyZipCachePool *zcp, HyZipCache *zipCache));
+#if defined(__cplusplus)
+}
+#endif
+#endif /* ZIPSUP_H */
+
+

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/cmain.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/cmain.c?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/cmain.c (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/cmain.c Wed Nov 30 21:29:27 2005
@@ -0,0 +1,117 @@
+/* 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 "hycomp.h"
+#include "hyport.h"
+//#include "libhlp.h" /* haCmdlineOptions structure moved to here */ 
+#include <stdlib.h>             /* for malloc for atoe and abort */
+
+struct haCmdlineOptions
+{
+  int argc;
+  char **argv;
+  char **envp;
+  HyPortLibrary *portLibrary;
+};
+extern UDATA VMCALL gpProtectedMain (void *arg);
+
+static UDATA VMCALL
+genericSignalHandler (struct HyPortLibrary *portLibrary, U_32 gpType,
+                      void *gpInfo, void *userData)
+{
+  PORT_ACCESS_FROM_PORT (portLibrary);
+  U_32 category;
+
+  hytty_printf (PORTLIB, "\nAn unhandled error (%d) has occurred.\n", gpType);
+
+  for (category = 0; category < HYPORT_SIG_NUM_CATEGORIES; category++)
+    {
+      U_32 infoCount = hysig_info_count (gpInfo, category);
+      U_32 infoKind, index;
+      void *value;
+      const char *name;
+
+      for (index = 0; index < infoCount; index++)
+        {
+          infoKind = hysig_info (gpInfo, category, index, &name, &value);
+
+          switch (infoKind)
+            {
+            case HYPORT_SIG_VALUE_32:
+              hytty_printf (PORTLIB, "%s=%08.8x\n", name, *(U_32 *) value);
+              break;
+            case HYPORT_SIG_VALUE_64:
+            case HYPORT_SIG_VALUE_FLOAT_64:
+              hytty_printf (PORTLIB, "%s=%016.16llx\n", name,
+                            *(U_64 *) value);
+              break;
+            case HYPORT_SIG_VALUE_STRING:
+              hytty_printf (PORTLIB, "%s=%s\n", name, (const char *) value);
+              break;
+            case HYPORT_SIG_VALUE_ADDRESS:
+              hytty_printf (PORTLIB, "%s=%p\n", name, *(void **) value);
+              break;
+            }
+        }
+    }
+
+  abort ();
+
+  /* UNREACHABLE */
+  return 0;
+}
+
+static UDATA VMCALL
+signalProtectedMain (HyPortLibrary * portLibrary, void *arg)
+{
+  return gpProtectedMain (arg);
+}
+
+int
+main (int argc, char **argv, char **envp)
+{
+  HyPortLibrary hyportLibrary;
+  HyPortLibraryVersion portLibraryVersion;
+  struct haCmdlineOptions options;
+  int rc = 257;
+  UDATA result;
+
+  /* Use portlibrary version which we compiled against, and have allocated space
+   * for on the stack.  This version may be different from the one in the linked DLL.
+   */
+  HYPORT_SET_VERSION (&portLibraryVersion, HYPORT_CAPABILITY_MASK);
+  if (0 ==
+      hyport_init_library (&hyportLibrary, &portLibraryVersion,
+                           sizeof (HyPortLibrary)))
+    {
+      options.argc = argc;
+      options.argv = argv;
+      options.envp = envp;
+      options.portLibrary = &hyportLibrary;
+
+      if (hyportLibrary.sig_protect (&hyportLibrary,
+                                     signalProtectedMain, &options,
+                                     genericSignalHandler, NULL,
+                                     HYPORT_SIG_FLAG_SIGALLSYNC,
+                                     &result) == 0)
+        {
+          rc = result;
+        }
+
+      hyportLibrary.port_shutdown_library (&hyportLibrary);
+    }
+
+  return rc;
+}

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/hyexelibnls.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/hyexelibnls.h?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/hyexelibnls.h (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/hyexelibnls.h Wed Nov 30 21:29:27 2005
@@ -0,0 +1,62 @@
+/* Copyright 1991, 2004 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(hyexelibnls_h)
+#define hyexelibnls_h
+
+#include "hyport.h"
+/* 0x4558454c = EXEL */
+
+#define HYNLS_EXELIB_VERSION__MODULE 0x4558454c
+#define HYNLS_EXELIB_VERSION__ID 50
+#define HYNLS_EXELIB_VERSION HYNLS_EXELIB_VERSION__MODULE, HYNLS_EXELIB_VERSION__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY__ID 51
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_TO_FIND_JLS__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_TO_FIND_JLS__ID 52
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_TO_FIND_JLS HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_TO_FIND_JLS__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_TO_FIND_JLS__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BA__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BA__ID 53
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BA HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BA__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BA__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_CLASSNAME__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_CLASSNAME__ID 54
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_CLASSNAME HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_CLASSNAME__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_CLASSNAME__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY_CONVERTING__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY_CONVERTING__ID 55
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY_CONVERTING HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY_CONVERTING__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_OUT_OF_MEMORY_CONVERTING__ID
+#define HYNLS_EXELIB_CLASS_DOES_NOT_IMPL_MAIN__MODULE 0x4558454c
+#define HYNLS_EXELIB_CLASS_DOES_NOT_IMPL_MAIN__ID 56
+#define HYNLS_EXELIB_CLASS_DOES_NOT_IMPL_MAIN HYNLS_EXELIB_CLASS_DOES_NOT_IMPL_MAIN__MODULE, HYNLS_EXELIB_CLASS_DOES_NOT_IMPL_MAIN__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_ARG_ARRAY__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_ARG_ARRAY__ID 57
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_ARG_ARRAY HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_ARG_ARRAY__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_ARG_ARRAY__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BYTE_ARRAY__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BYTE_ARRAY__ID 58
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BYTE_ARRAY HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BYTE_ARRAY__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_BYTE_ARRAY__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_ARG__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_ARG__ID 59
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_ARG HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_ARG__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JLS_FOR_ARG__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_SET_ARRAY_ELEM__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_SET_ARRAY_ELEM__ID 60
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_SET_ARRAY_ELEM HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_SET_ARRAY_ELEM__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_SET_ARRAY_ELEM__ID
+#define HYNLS_EXELIB_VM_STARTUP_ERR_OUT_OF_MEMORY__MODULE 0x4558454c
+#define HYNLS_EXELIB_VM_STARTUP_ERR_OUT_OF_MEMORY__ID 61
+#define HYNLS_EXELIB_VM_STARTUP_ERR_OUT_OF_MEMORY HYNLS_EXELIB_VM_STARTUP_ERR_OUT_OF_MEMORY__MODULE, HYNLS_EXELIB_VM_STARTUP_ERR_OUT_OF_MEMORY__ID
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JAVA_VM__MODULE 0x4558454c
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JAVA_VM__ID 62
+#define HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JAVA_VM HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JAVA_VM__MODULE, HYNLS_EXELIB_INTERNAL_VM_ERR_FAILED_CREATE_JAVA_VM__ID
+
+#endif // hyexelibnls_h

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/launcher_copyright.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/launcher_copyright.c?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/launcher_copyright.c (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/launcher_copyright.c Wed Nov 30 21:29:27 2005
@@ -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.";

Added: incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/libhlp.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/libhlp.c?rev=350181&view=auto
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/libhlp.c (added)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/ibm_core/native-src/linux.IA32/launcher/libhlp.c Wed Nov 30 21:29:27 2005
@@ -0,0 +1,309 @@
+/* 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 <stdio.h>
+#include <string.h>
+
+#include "hyport.h"
+#include "libhlp.h"
+
+#define HY_PATH_SLASH DIR_SEPARATOR
+
+I_32
+main_appendToClassPath (HyPortLibrary * portLib, U_16 sep,
+                        HyStringBuffer ** classPath, char *toAppend)
+{
+
+  /* append a separator, first */
+  if (*classPath && (*classPath)->data[strlen ((*classPath)->data)] != sep)
+    {
+      char separator[2];
+      separator[0] = (char) sep;
+      separator[1] = '\0';
+      *classPath = strBufferCat (portLib, *classPath, separator);
+      if (*classPath == NULL)
+        return -1;
+    }
+
+  *classPath = strBufferCat (portLib, *classPath, toAppend);
+  if (*classPath == NULL)
+    return -1;
+
+  return 0;
+}
+
+/* Allocates and retrieves initial value of the classPath. */
+
+I_32
+main_initializeClassPath (HyPortLibrary * portLib,
+                          HyStringBuffer ** classPath)
+{
+  PORT_ACCESS_FROM_PORT (portLib);
+  I_32 rc;
+  char *envvars = "CLASSPATH\0classpath\0";
+  char *envvar;
+
+  for (envvar = envvars; *envvar; envvar += strlen (envvar) + 1)
+    {
+      rc = hysysinfo_get_env (envvar, NULL, 0);
+      if (rc > 0)
+        {
+          *classPath = strBufferEnsure (portLib, *classPath, rc);
+          if (*classPath == NULL)
+            return -1;
+          hysysinfo_get_env (envvar,
+                             (*classPath)->data + strlen ((*classPath)->data),
+                             rc);
+          (*classPath)->remaining -= rc;
+          break;
+        }
+    }
+
+  return 0;
+}
+
+IDATA
+main_initializeJavaHome (HyPortLibrary * portLib,
+                         HyStringBuffer ** finalJavaHome, int argc,
+                         char **argv)
+{
+  char *javaHome = NULL;
+  char *javaHomeModifiablePart = NULL;
+  char *p;
+  IDATA retval = -1;
+  I_32 rc;
+  UDATA isUpper = TRUE;
+  char *envvars = "JAVA_HOME\0java_home\0";
+  char *envvar;
+
+  PORT_ACCESS_FROM_PORT (portLib);
+
+  for (envvar = envvars; *envvar; envvar += strlen (envvar) + 1)
+    {
+      rc = hysysinfo_get_env (envvar, NULL, 0);
+      if (rc > 0)
+        {
+          *finalJavaHome = strBufferEnsure (portLib, *finalJavaHome, rc);
+          if (*finalJavaHome == NULL)
+            return -1;
+          hysysinfo_get_env (envvar,
+                             (*finalJavaHome)->data +
+                             strlen ((*finalJavaHome)->data), rc);
+          (*finalJavaHome)->remaining -= rc;
+          return 0;
+        }
+    }
+
+  /* Compute the proper value for the var. */
+
+  if ((argc < 1) || !argv)
+    return -1;
+
+  retval = hysysinfo_get_executable_name (argv[0], &javaHome);
+  if (retval)
+    {
+      /* guess.  How about ".."? */
+      *finalJavaHome = strBufferCat (portLib, *finalJavaHome, "..");
+      return 0;
+    }
+
+  javaHomeModifiablePart = javaHome;
+#if defined(WIN32)
+  /* Make sure we don't modify a drive specifier in a pathname. */
+  if ((strlen (javaHome) > 2) && (javaHome[1] == ':'))
+    {
+      javaHomeModifiablePart = javaHome + 2;
+      if (javaHome[2] == HY_PATH_SLASH)
+        javaHomeModifiablePart++;
+    }
+#endif
+
+#if defined(WIN32)
+  /* Make sure we don't modify the root of a UNC pathname. */
+  if ((strlen (javaHome) > 2) && (javaHome[0] == HY_PATH_SLASH)
+      && (javaHome[1] == HY_PATH_SLASH))
+    {
+      javaHomeModifiablePart = javaHome + 2;
+      /* skip over the machine name */
+      while (*javaHomeModifiablePart
+             && (*javaHomeModifiablePart != HY_PATH_SLASH))
+        {
+          javaHomeModifiablePart++;
+        }
+      if (*javaHomeModifiablePart)
+        javaHomeModifiablePart++;
+      /* skip over the share name */
+      while (*javaHomeModifiablePart
+             && (*javaHomeModifiablePart != HY_PATH_SLASH))
+        {
+          javaHomeModifiablePart++;
+        }
+    }
+#endif
+
+  if ((javaHomeModifiablePart == javaHome) && javaHome[0] == HY_PATH_SLASH)
+    {
+      /* make sure we don't modify a root slash. */
+      javaHomeModifiablePart++;
+    }
+
+  /* Note: if sysinfo_get_executable_name claims we were invoked from a root directory, */
+  /* then this code will return that root directory for java.home also. */
+  p = strrchr (javaHomeModifiablePart, HY_PATH_SLASH);
+  if (!p)
+    {
+      javaHomeModifiablePart[0] = '\0'; /* chop off whole thing! */
+    }
+  else
+    {
+      p[0] = '\0';              /* chop off trailing slash and executable name. */
+      p = strrchr (javaHomeModifiablePart, HY_PATH_SLASH);
+      if (!p)
+        {
+          javaHomeModifiablePart[0] = '\0';     /* chop off the rest */
+        }
+      else
+        {
+          p[0] = '\0';          /* chop off trailing slash and deepest subdirectory. */
+        }
+    }
+
+  *finalJavaHome = strBufferCat (portLib, *finalJavaHome, javaHome);
+
+  hymem_free_memory (javaHome);
+
+  return 0;
+}
+
+IDATA
+main_initializeJavaLibraryPath (HyPortLibrary * portLib,
+                                HyStringBuffer ** finalJavaLibraryPath,
+                                char *argv0)
+{
+#if defined(WIN32)
+#define ENV_PATH "PATH"
+#else
+#define ENV_PATH "LD_LIBRARY_PATH"
+#endif
+
+  HyStringBuffer *javaLibraryPath = NULL;
+  char *exeName = NULL;
+  IDATA rc = -1;
+  char *p;
+  char *envResult;
+  int envSize;
+#define ENV_BUFFER_SIZE 80
+  char envBuffer[ENV_BUFFER_SIZE];
+  char sep[2];
+  PORT_ACCESS_FROM_PORT (portLib);
+
+  sep[0] = (char) hysysinfo_get_classpathSeparator ();
+  sep[1] = '\0';
+
+  if (hysysinfo_get_executable_name (argv0, &exeName))
+    {
+      goto done;
+    }
+  p = strrchr (exeName, HY_PATH_SLASH);
+  if (p)
+    {
+      p[1] = '\0';
+    }
+  else
+    {
+      hymem_free_memory (exeName);
+      exeName = NULL;
+    }
+
+  envSize = hysysinfo_get_env (ENV_PATH, NULL, 0);
+  if (envSize > 0)
+    {
+      if (envSize >= ENV_BUFFER_SIZE)
+        {
+          envResult = hymem_allocate_memory (envSize + 1);
+          if (!envResult)
+            goto done;
+          hysysinfo_get_env (ENV_PATH, envResult, envSize);
+        }
+      else
+        {
+          envSize = -1;         /* make it -1 so we don't free the buffer */
+          hysysinfo_get_env (ENV_PATH, envBuffer, ENV_BUFFER_SIZE);
+          envResult = envBuffer;
+        }
+    }
+  else
+    {
+      envResult = NULL;
+    }
+
+  /* Add one to each length to account for the separator character.  Add 2 at the end for the "." and NULL terminator */
+
+  if (exeName)
+    {
+      javaLibraryPath = strBufferCat (portLib, javaLibraryPath, exeName);
+      javaLibraryPath = strBufferCat (portLib, javaLibraryPath, sep);
+    }
+  javaLibraryPath = strBufferCat (portLib, javaLibraryPath, ".");
+  if (envResult)
+    {
+      javaLibraryPath = strBufferCat (portLib, javaLibraryPath, sep);
+      javaLibraryPath = strBufferCat (portLib, javaLibraryPath, envResult);
+      if (envSize != -1)
+        {
+          hymem_free_memory (envResult);
+        }
+    }
+
+  rc = 0;
+
+done:
+  if (exeName)
+    {
+      hymem_free_memory (exeName);
+    }
+  *finalJavaLibraryPath = javaLibraryPath;
+  return rc;
+
+}
+
+IDATA
+convertString (JNIEnv * env, HyPortLibrary * hyportLibrary,
+               jclass stringClass, jmethodID stringMid, char *chars,
+               jstring * str)
+{
+  UDATA strLength;
+  jarray bytearray;
+  jstring string;
+
+  strLength = strlen (chars);
+  bytearray = (*env)->NewByteArray (env, strLength);
+  if (((*env)->ExceptionCheck (env)))
+    return 1;
+
+  (*env)->SetByteArrayRegion (env, bytearray, (UDATA) 0, strLength, chars);
+
+  string =
+    (*env)->NewObject (env, stringClass, stringMid, bytearray, (UDATA) 0,
+                       strLength);
+  if (!string)
+    return 2;
+
+  (*env)->DeleteLocalRef (env, bytearray);
+
+  *str = string;
+  return 0;
+}



Mime
View raw message