You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2007/01/15 07:22:35 UTC
svn commit: r496237 [3/4] - in /harmony/enhanced/drlvm/trunk/vm: include/
include/open/ vmcore/include/
Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm.h Sun Jan 14 22:22:34 2007
@@ -1,6 +1,6 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
@@ -14,12 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
/**
- * These are the functions that a VM built as a DLL must export.
- * Some functions may be optional and are marked as such.
+ * @author Intel, Alexei Fedotov
+ * @version $Revision: 1.1.2.2.4.3 $
*/
+
+//
+// These are the functions that a VM built as a DLL must export.
+// Some functions may be optional and are marked as such.
+//
+
#ifndef _VM_EXPORT_H
#define _VM_EXPORT_H
@@ -35,10 +40,8 @@
extern "C" {
#endif
-/**
- * This structure is meant to be opaque. External modules should not.
- */
- attempt to directly access any of its fields.
+// This structure is meant to be opaque. External modules should not
+// attempt to directly access any of its fields.
typedef struct ChaClassIterator {
Class_Handle _root_class;
Class_Handle _current;
@@ -46,10 +49,8 @@
} ChaClassIterator;
-/**
- * This structure is meant to be opaque. External modules should not.
- */
- attempt to directly access any of its fields.
+// This structure is meant to be opaque. External modules should not
+// attempt to directly access any of its fields.
typedef struct ChaMethodIterator {
Method_Handle _method;
Method_Handle _current;
@@ -57,919 +58,629 @@
} ChaMethodIterator;
-/**
- * Begin class-related functions.
- */
+/////////////////////////////////////////////////////////////////
+// begin class-related functions.
-/**
- * @return A handle for the <code>Object</code> class. For Java applications, it's
- * <code>java.lang.Object</code>.
- */
+
+// Returns a handle for the object class. For Java applications, it's
+// java.lang.Object.
VMEXPORT Class_Handle get_system_object_class();
-/**
- * @return A handle for the <code>Class</code> class. For Java applications, it's
- * <code>java.lang.Class</code>.
- */
+// Returns a handle for the class class. For Java applications, it's
+// java.lang.Class.
VMEXPORT Class_Handle get_system_class_class();
-/**
- * @return A handle for the string class. For Java applications, it's
- * java.lang.String.
- */
-
+// Returns a handle for the string class. For Java applications, it's
+// java.lang.String.
VMEXPORT Class_Handle get_system_string_class();
-/**
- * Loads a class of a given name.
- *
- * @return <code>NULL</code> if a class cannot be loaded.
- */
-
+// Loads a class of a given name. If a class cannot be loaded, returns NULL
VMEXPORT Class_Handle
class_load_class_by_name_using_bootstrap_class_loader(const char *name);
-/**
- * The following three functions will be eventually renamed to
- * \arg <code>class_is_final</code>
- * \arg <code>class_is_abstract</code>
- * \arg <code>class_is_interface</code>
- * but right now that would conflict
- * with the names of some internal macros.
- */
-
+// The following three functions will be eventually renamed to
+// class_is_final, class_is_abstract and class_is_interface,
+// but right now that would conflict with the names of some internal macros.
VMEXPORT Boolean class_property_is_final(Class_Handle ch);
VMEXPORT Boolean class_property_is_abstract(Class_Handle ch);
VMEXPORT Boolean class_property_is_interface2(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if the class is likely to be used as an exception object.
- * This is a hint only. If the result is <code>FALSE</code>, the class may still
- * be used for exceptions but it is less likely.
- */
+// Returns TRUE if th class is likely to be used as an exception object.
+// This is a hint only. If the result is FALSE, the class may still
+// be used for exceptions but it is less likely.
VMEXPORT Boolean class_hint_is_exceptiontype(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if the class is a value type.
- */
- VMEXPORT Boolean class_is_valuetype(Class_Handle ch);
+// Returns TRUE if the class is a value type.
+VMEXPORT Boolean class_is_valuetype(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if the class represents an enum.
- * For Java 1.4 always returns <code>FALSE</code>.
- */
+// Return TRUE if the class represents an enum. For Java 1.4 always returns FALSE.
VMEXPORT Boolean class_is_enum(Class_Handle ch);
-/**
- * This function can only be called if (<code>class_is_enum(ch)</code> == <code>TRUE</code>)
- * The returned value is the type of the underlying int type.
- */
+// This function can only be called if (class_is_enum(ch) == TRUE)
+// The returned value is the type of the underlying int type.
VMEXPORT VM_Data_Type class_get_enum_int_type(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if the class represents a primitive type (int, float, etc.)
- */
- VMEXPORT Boolean class_is_primitive(Class_Handle ch);
+// Returns TRUE if the class represents a primitive type (int, float, etc.)
+VMEXPORT Boolean class_is_primitive(Class_Handle ch);
-/**
- * @return The name of the class.
- */
- VMEXPORT const char *class_get_name(Class_Handle ch);
+// Returns the name of the class.
+VMEXPORT const char *class_get_name(Class_Handle ch);
-/**
- * @return The name of the package containing the class.
- */
- VMEXPORT const char *class_get_package_name(Class_Handle ch);
+// Returns the name of the package containing the class.
+VMEXPORT const char *class_get_package_name(Class_Handle ch);
-/**
- * The super class of the current class.
- * @return <code>NULL</code> for the system object class, i.e.
- * <code>class_get_super_class</code>(get_system_object_class()) == NULL
- */
+// Returns the super class of the current class.
+// Returns NULL for the system object class, i.e.
+// class_get_super_class(get_system_object_class()) == NULL
VMEXPORT Class_Handle class_get_super_class(Class_Handle ch);
-/**
- * @return The vtable handle of the given class.
- */
- VMEXPORT VTable_Handle class_get_vtable(Class_Handle ch);
+// Return the vtable handle of the given class.
+VMEXPORT VTable_Handle class_get_vtable(Class_Handle ch);
-/**
- * @return The allocation handle to be used for the object allocation
- * routines, given a class handle.
- */
+// Returns the allocation handle to be used for the object allocation
+// routines, given a class handle.
VMEXPORT Allocation_Handle class_get_allocation_handle(Class_Handle ch);
-/**
- * @return The class handle corresponding to a given allocation handle.
- */
+// Returns the class handle corresponding to a given allocation handle.
VMEXPORT Class_Handle allocation_handle_get_class(Allocation_Handle ah);
-/**
- * @return An <code>VM_Data_Type</code> value for a given class.
- */
- VMEXPORT VM_Data_Type class_get_primitive_type_of_class(Class_Handle ch);
+// Return an VM_Data_Type value for a given class.
+VMEXPORT VM_Data_Type class_get_primitive_type_of_class(Class_Handle ch);
-/**
- * @return A class corresponding to a primitive type. For all primitive types t
- * t == <code>class_get_primitive_type_of_class(class_get_class_of_primitive_type(t))</code>
- */
- VMEXPORT Class_Handle class_get_class_of_primitive_type(VM_Data_Type typ);
+// Return a class corresponding to a primitive type. For all primitive types t
+// t == class_get_primitive_type_of_class(class_get_class_of_primitive_type(t))
+VMEXPORT Class_Handle class_get_class_of_primitive_type(VM_Data_Type typ);
-/**
- * @return <code>TRUE</code> is the class is an array.
- */
+// Returns TRUE is the class is an array.
VMEXPORT Boolean class_is_array(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if class <code>s</code> is assignment
- * compatible with class <code>t</code>.
- */
+// Returns TRUE if class s is assignment compatible with class t.
VMEXPORT Boolean class_is_instanceof(Class_Handle s, Class_Handle t);
-/**
- * Given a class handle <code>cl</code> construct a class handle of the type
- * representing array of <code>cl</code>. If class cl is value type, assume
- * that the element is a reference to a boxed instance of that type.
- */
- VMEXPORT Class_Handle class_get_array_of_class(Class_Handle ch);
-
-/**
- * Given a class handle <code>cl</code> construct a class handle of the type
- * representing array of <code>cl</code>. Class <code>cl</code> is assumed to be a
- * value type.
- *
- * @return <code>NULL</code> if cl is not a value type.
- */
- VMEXPORT Class_Handle class_get_array_of_unboxed(Class_Handle ch);
-
-/**
- * @return For a class that is an array return the type info for the elements
- * of the array.
- */
- VMEXPORT Type_Info_Handle class_get_element_type_info(Class_Handle ch);
-
- /**
- * @return <code>TRUE</code> if the class is already fully initialized.
- */
- VMEXPORT Boolean class_is_initialized(Class_Handle ch);
-
-/**
- * @return <code>TRUE</code> if the class is neither initialized nor in the process
- * of being initialized. The intention is that the JIT will emit a call
- * to <code>VM_RT_INITIALIZE_CLASS</code> before every access to a static
- * field in Java.
- */
- VMEXPORT Boolean class_needs_initialization(Class_Handle ch);
-
-/**
- * For Java returns <code>FALSE</code>.
- */
- VMEXPORT Boolean class_is_before_field_init(Class_Handle ch);
-
-/**
- * Number of instance fields defined in a class. That doesn't include
- * inherited fields.
- */
- VMEXPORT unsigned class_num_instance_fields(Class_Handle ch);
-
-/**
- * Get the handle for a field. If <code>idx</code> is greater than or equal to
- * <code>class_num_instance_fields</code>.
- *
- * @return <code>NULL</code>
- *
- * The value of idx indexes into the fields defined in this class and
- * doesn't include inherited fields.
- */
- VMEXPORT Field_Handle class_get_instance_field(Class_Handle ch, unsigned idx);
-
-/**
- * Number of instance fields defined in a class. This number includes
- * inherited fields.
- */
+// Given a class handle cl construct a class handle of the type
+// representing array of cl. If class cl is value type, assume
+// that the element is a reference to a boxed instance of that type.
+VMEXPORT Class_Handle class_get_array_of_class(Class_Handle ch);
+
+// Given a class handle cl construct a class handle of the type
+// representing array of cl. Class cl is assumed to be a
+// value type. Return NULL if cl is not a value type.
+VMEXPORT Class_Handle class_get_array_of_unboxed(Class_Handle ch);
+
+// For a class that is an array return the type info for the elements
+// of the array
+VMEXPORT Type_Info_Handle class_get_element_type_info(Class_Handle ch);
+
+// Returns TRUE if the class is already fully initialized.
+VMEXPORT Boolean class_is_initialized(Class_Handle ch);
+
+// Returns TRUE if the class is neither initialized nor in the process
+// of being initialized. The intention is that the JIT will emit a call
+// to VM_RT_INITIALIZE_CLASS before every access to a static field in
+// Java.
+VMEXPORT Boolean class_needs_initialization(Class_Handle ch);
+
+// For Java returns FALSE.
+VMEXPORT Boolean class_is_before_field_init(Class_Handle ch);
+
+// Number of instance fields defined in a class. That doesn't include
+// inherited fields.
+VMEXPORT unsigned class_num_instance_fields(Class_Handle ch);
+
+// Get the handle for a field. If idx is greater than or equal to
+// class_num_instance_fields, return NULL.
+// The value of idx indexes into the fields defined in this class and
+// doesn't include inherited fields.
+VMEXPORT Field_Handle class_get_instance_field(Class_Handle ch, unsigned idx);
+// Number of instance fields defined in a class. This number includes
+// inherited fields.
VMEXPORT unsigned class_num_instance_fields_recursive(Class_Handle ch);
-/**
- * Get the handle for a field.
- *
- * @return <code>NULL</code> if idx is greater than or equal to
- * <code>class_num_instance_fields_recursive</code>.
- *
- * The value of idx indexes into the set of fields that includes both fields
- * defined in this class and inherited fields.
- */
+
+// Get the handle for a field. If idx is greater than or equal to
+// class_num_instance_fields_recursive, return NULL.
+// The value of idx indexes into the set of fields that includes both fields
+// defined in this class and inherited fields.
VMEXPORT Field_Handle class_get_instance_field_recursive(Class_Handle ch, unsigned idx);
-/**
- * Number of methods declared in the class.
- */
- VMEXPORT unsigned class_get_number_methods(Class_Handle ch);
+// Number of methods declared in the class
+VMEXPORT unsigned class_get_number_methods(Class_Handle ch);
-/**
- * Get handle for a method declared in class.
- */
- VMEXPORT Method_Handle class_get_method(Class_Handle ch, unsigned index);
+// Get handle for a method declared in class
+VMEXPORT Method_Handle class_get_method(Class_Handle ch, unsigned index);
-/**
- * @return <code>TRUE</code> if all instances of this class are pinned.
- */
- VMEXPORT Boolean class_is_pinned(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if all instances of this class are pinned.
- */
- VMEXPORT void* class_alloc_via_classloader(Class_Handle ch, int32 size);
+// Returns TRUE if all instances of this class are pinned.
+VMEXPORT Boolean class_is_pinned(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if this is an array of primitives.
- */
- VMEXPORT Boolean class_is_non_ref_array(Class_Handle ch);
+// Returns TRUE if all instances of this class are pinned.
+VMEXPORT void* class_alloc_via_classloader(Class_Handle ch, int32 size);
-/**
- * @return <code>TRUE</code> if the class has a non-trivial finalizer.
- */
- VMEXPORT Boolean class_is_finalizable(Class_Handle ch);
+// Returns TRUE if this is an array of primitives.
+VMEXPORT Boolean class_is_non_ref_array(Class_Handle ch);
-/**
- * This exactly what I want.
- * Get the alignment of the class.
- */
- VMEXPORT unsigned class_get_alignment(Class_Handle ch);
+// Returns TRUE if the class has a non-trivial finalizer.
+VMEXPORT Boolean class_is_finalizable(Class_Handle ch);
+// This exactly what I want.
+// Get the alignment of the class.
+VMEXPORT unsigned class_get_alignment(Class_Handle ch);
-/**
- * Get the alignment of the class when it's unboxed.
- */
- VMEXPORT unsigned class_get_alignment_unboxed(Class_Handle ch);
+// Get the alignment of the class when it's unboxed.
+VMEXPORT unsigned class_get_alignment_unboxed(Class_Handle ch);
-/**
- * @return For a class handle that represents and array, return the size of the
- * element of the array.
- */
- VMEXPORT unsigned class_element_size(Class_Handle ch);
+// For a class handle that represents and array, return the size of the
+// element of the array.
+VMEXPORT unsigned class_element_size(Class_Handle ch);
-/**
- * @return The size in bytes of an instance in the heap.
- */
- VMEXPORT unsigned class_get_boxed_data_size(Class_Handle ch);
+// Return the size in bytes of an instance in the heap.
+VMEXPORT unsigned class_get_boxed_data_size(Class_Handle ch);
-/**
- * @return The offset to the start of user data form the start of a boxed
- * instance.
- */
- VMEXPORT unsigned class_get_unboxed_data_offset(Class_Handle ch);
+// Return the offset to the start of user data form the start of a boxed
+// instance.
+VMEXPORT unsigned class_get_unboxed_data_offset(Class_Handle ch);
-/**
- * @return The class of the array element of the given class.
- *
- * The behavior is undefined if the parameter does not represent
- * an array class.
- */
- VMEXPORT Class_Handle class_get_array_element_class(Class_Handle ch);
+// Return the class of the array element of the given class.
+// The behavior is undefined if the parameter does not represent
+// an array class.
+VMEXPORT Class_Handle class_get_array_element_class(Class_Handle ch);
-/**
- * @return The offset from the start of the vtable at which the
- * superclass hierarchy is stored. This is for use with fast type
- * checking.
- */
- VMEXPORT int vtable_get_super_array_offset();
+// Returns the offset from the start of the vtable at which the
+// superclass hierarchy is stored. This is for use with fast type
+// checking.
+VMEXPORT int vtable_get_super_array_offset();
-/**
- * @return Class handle given object's <code>VTable_Handle</code>.
- */
- VMEXPORT Class_Handle vtable_get_class(VTable_Handle vh);
+// Returns class handle given object's VTable_Handle.
+VMEXPORT Class_Handle vtable_get_class(VTable_Handle vh);
-/**
- * @return The number of superclass hierarchy elements that are
- * stored within the vtable. This is for use with fast type checking.
- */
- VMEXPORT int vm_max_fast_instanceof_depth();
+// Returns the number of superclass hierarchy elements that are
+// stored within the vtable. This is for use with fast type checking.
+VMEXPORT int vm_max_fast_instanceof_depth();
-////
+/////////////////////////////////////////////////////////////////
// begin class iterator related functions.
-////
-/**
- * Initializes the <code>CHA_Class_Iterator</code>, to iterate over all
- * classes that descend from <code>root_class</code>, including
- * <code>root_class</code> itself.
- *
- * @return <code>TRUE</code> if iteration is supported over
- * <code>root_class</code>, <code>FALSE</code> if not.
- */
- VMEXPORT Boolean class_iterator_initialize(ChaClassIterator*, Class_Handle root_class);
+// Initializes the CHA_Class_Iterator, to iterate over all classes that
+// descend from root_class, including root_class itself.
+// Returns TRUE if iteration is supported over root_class, FALSE if not.
+VMEXPORT Boolean class_iterator_initialize(ChaClassIterator*, Class_Handle root_class);
-/**
- * @return The current class of the iterator. <code>NULL</code> if
- * there are no more classes.
- */
- VMEXPORT Class_Handle class_iterator_get_current(ChaClassIterator*);
+// Returns the current class of the iterator. NULL is returned if
+// therea are no more classes.
+VMEXPORT Class_Handle class_iterator_get_current(ChaClassIterator*);
+
+// Advances the iterator.
+VMEXPORT void class_iterator_advance(ChaClassIterator*);
-/**
- * Advances the iterator.
- */
- VMEXPORT void class_iterator_advance(ChaClassIterator*);
-////
+/////////////////////////////////////////////////////////////////
// begin inner-class related functions.
-///
-/**
- * @return <code>TRUE</code> the number of inner classes.
- */
- VMEXPORT unsigned class_number_inner_classes(Class_Handle ch);
+// Returns TRUE the number of inner classes
+VMEXPORT unsigned class_number_inner_classes(Class_Handle ch);
-/**
- * @return <code>TRUE</code> if an inner class is public.
- */
- VMEXPORT Boolean class_is_inner_class_public(Class_Handle ch, unsigned idx);
+// Returns TRUE if an inner class is public
+VMEXPORT Boolean class_is_inner_class_public(Class_Handle ch, unsigned idx);
-/**
- * @return an inner class
- */
- VMEXPORT Class_Handle class_get_inner_class(Class_Handle ch, unsigned idx);
+// Return an inner class
+VMEXPORT Class_Handle class_get_inner_class(Class_Handle ch, unsigned idx);
-/**
- * @return the class that declared this one, or <code>NULL</code> if top-level class
- */
- VMEXPORT Class_Handle class_get_declaring_class(Class_Handle ch);
+// Return the class that declared this one, or NULL if top-level class
+VMEXPORT Class_Handle class_get_declaring_class(Class_Handle ch);
-///
-// end class-related functions.
-///
+// end inner-class related functions.
+/////////////////////////////////////////////////////////////////
+
-////
// end class-related functions.
-////
+/////////////////////////////////////////////////////////////////
+
+
-////
+/////////////////////////////////////////////////////////////////
// begin field-related functions.
-////
-/**
- * @return <code>TRUE</code> is the field is static.
- */
- VMEXPORT Boolean field_is_static(Field_Handle fh);
-/**
- * @return The type info that represents the type of the field.
- */
- VMEXPORT Type_Info_Handle field_get_type_info_of_field_value(Field_Handle fh);
+// Returns TRUE is the field is static.
+VMEXPORT Boolean field_is_static(Field_Handle fh);
-/**
- * @return The class that represents the type of the field.
- */
- VMEXPORT Class_Handle field_get_class_of_field_value(Field_Handle fh);
+// Returns the type info that represents the type of the field.
+VMEXPORT Type_Info_Handle field_get_type_info_of_field_value(Field_Handle fh);
-/**
- * @return The class that defined that field.
- */
- VMEXPORT Class_Handle field_get_class(Field_Handle fh);
+// Returns the class that represents the type of the field.
+VMEXPORT Class_Handle field_get_class_of_field_value(Field_Handle fh);
-/**
- * @return <code>TRUE</code> if the field is of a reference type.
- *
- * This function doesn't cause resolution of the class of the field.
- */
- VMEXPORT Boolean field_is_reference(Field_Handle fh);
+// Returns the class that defined that field.
+VMEXPORT Class_Handle field_get_class(Field_Handle fh);
-/**
- * @return <code>TRUE</code> if the field is literal. In Java, it means that the
- * field had the ConstantValue attribute set (JVMS2, Section 4.7.2).
- */
- VMEXPORT Boolean field_is_literal(Field_Handle fh);
+// Returns TRUE if the field is of a reference type.
+// This function doesn't cause resolution of the class of the field.
+VMEXPORT Boolean field_is_reference(Field_Handle fh);
-/**
- * For Java always <code>FALSE</code>.
- */
- VMEXPORT Boolean field_is_unmanaged_static(Field_Handle fh);
+// Returns TRUE if the field is literal. In Java, it means that the
+// field had the ConstantValue attribute set (JVMS2, Section 4.7.2).
+VMEXPORT Boolean field_is_literal(Field_Handle fh);
-/**
- * @return The offset to an instance field.
- */
- VMEXPORT unsigned field_get_offset(Field_Handle fh);
+// For Java always FALSE.
+VMEXPORT Boolean field_is_unmanaged_static(Field_Handle fh);
-/**
- * @return An address of a static field.
- */
- VMEXPORT void *field_get_address(Field_Handle fh);
+// Returns the offset to an instance field.
+VMEXPORT unsigned field_get_offset(Field_Handle fh);
-/**
- * @return A name of the field.
- */
- VMEXPORT const char *field_get_name(Field_Handle fh);
+// Returns an address of a static field.
+VMEXPORT void *field_get_address(Field_Handle fh);
-/**
- * @return The field descriptor. The descriptor is a string representation
- * of the field types as defined by the JVM spec.
- */
- VMEXPORT const char *field_get_descriptor(Field_Handle fh);
+// Returns a name of the field.
+VMEXPORT const char *field_get_name(Field_Handle fh);
-/**
- * @return <code>TRUE</code> if the field is final.
- */
- VMEXPORT Boolean field_is_final(Field_Handle fh);
+// Returns the field descriptor. The descriptor is a string representation
+// of the field types as defined by the
+// JVM spec.
+VMEXPORT const char *field_get_descriptor(Field_Handle fh);
-/**
- * @return <code>TRUE</code> if the field is volatile.
- */
- VMEXPORT Boolean field_is_volatile(Field_Handle fh);
+// Returns TRUE if the field is final.
+VMEXPORT Boolean field_is_final(Field_Handle fh);
-/**
- * @return <code>TRUE</code> if the field is private.
- */
- VMEXPORT Boolean field_is_private(Field_Handle fh);
+// Returns TRUE if the field is volatile.
+VMEXPORT Boolean field_is_volatile(Field_Handle fh);
+
+// Returns TRUE if the field is private.
+VMEXPORT Boolean field_is_private(Field_Handle fh);
/**
- * @return The address and bit mask, for the flag which determine whether field
- * access event should be sent. JIT may use the following expression to
- * determine if specified field access should be tracked:
- * ( **address & *mask != 0 )
- *
- * @param field - handle of the field
- * @param[out] address - pointer to the address of the byte which contains the flag
- * @param[out] mask - pointer to the bit mask of the flag
+ * Returns the address and bit mask, for the flag which determine whether field
+ * access event should be sent. JIT may use the following expression to
+ * determine if specified field access should be tracked:
+ * ( **address & *mask != 0 )
+ * @param field - handle of the field
+ * @param[out] address - pointer to the address of the byte which contains the flag
+ * @param[out] mask - pointer to the bit mask of the flag
*/
VMEXPORT void
field_get_track_access_flag(Field_Handle field, char** address, char* mask);
/**
- * @return the address and bit mask, for the flag which determine whether field
- * modification event should be sent. JIT may use the following expression to
- * determine if specified field modification should be tracked:
- * ( **address & *mask != 0 )
- *
- * @param field - handle of the field
- * @param[out] address - pointer to the address of the byte which contains the flag
- * @param[out] mask - pointer to the bit mask of the flag
+ * Returns the address and bit mask, for the flag which determine whether field
+ * modification event should be sent. JIT may use the following expression to
+ * determine if specified field modification should be tracked:
+ * ( **address & *mask != 0 )
+ * @param field - handle of the field
+ * @param[out] address - pointer to the address of the byte which contains the flag
+ * @param[out] mask - pointer to the bit mask of the flag
*/
VMEXPORT void
field_get_track_modification_flag(Field_Handle field, char** address,
char* mask);
-////
+
// end field-related functions.
-////
+/////////////////////////////////////////////////////////////////
-////
+
+
+/////////////////////////////////////////////////////////////////
// begin method-related functions.
-////
-/**
- * @return <code>TRUE</code> if this a Java method. Every Java JIT must call this
- * function before compiling a method and return <code>JIT_FAILURE</code> if
- * <code>method_is_java</code> returned <code>FALSE</code>.
- */
+
+// Returns TRUE if this a Java method. Every Java JIT must call this
+// function before compiling a method and return JIT_FAILURE if
+// method_is_java returned FALSE.
VMEXPORT Boolean method_is_java(Method_Handle mh);
-/**
- * @return The method name.
- */
+// Returns the method name.
VMEXPORT const char *method_get_name(Method_Handle mh);
-/**
- * @return The method descriptor. The descriptor is a string representation
- * of the parameter and return value types as defined by the JVM spec.
- */
+// Returns the method descriptor. The descriptor is a string representation
+// of the parameter and return value types as defined by the
+// JVM spec.
VMEXPORT const char *method_get_descriptor(Method_Handle mh);
-/**
- * @return A class in which the method is declared.
- */
+// Returns a class in which the method is declared.
VMEXPORT Class_Handle method_get_class(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is private.
- */
+// Returns TRUE if the method is private.
VMEXPORT Boolean method_is_private(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is static.
- */
+// Returns TRUE if the method is static.
VMEXPORT Boolean method_is_static(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is final.
- */
+// Returns TRUE if the method is final.
VMEXPORT Boolean method_is_final(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is native.
- */
+// Returns TRUE if the method is native.
VMEXPORT Boolean method_is_native(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is synchronized.
- */
+// Returns TRUE if the method is synchronized.
VMEXPORT Boolean method_is_synchronized(Method_Handle mh);
-/**
- * @return <code>TRUE</code> if the method is abstract.
- */
+// Returns TRUE if the method is abstract.
VMEXPORT Boolean method_is_abstract(Method_Handle mh);
-/**
- * Java methods may have a flag set to indicate that floating point operations
- * must be performed in the strict mode.
- *
- * @return <code>method_is_strict()</code> returns <code>TRUE</code> if
- * the ACC_STRICT flag is set for a Java method and <code>FALSE</code> otherwise.
- */
+// Java methods may have a flag set to indicate that floating point operations
+// must be performed in the strict mode. method_is_strict() returns TRUE is
+// the ACC_STRICT flag is set for a Java method and FALSE otherwise.
VMEXPORT Boolean method_is_strict(Method_Handle m);
-/**
- * @return <code>TRUE</code> if the method has been overriden in a subclass
- * and <code>FALSE</code> otherwise.
- *
- * @note If <code>method_is_overridden</code> returns <code>FALSE</code>, loading
- * of a subclass later in the execution of the program may change
- * invalidate this condition. If a JIT uses <code>method_is_overridden</code>
- * to implement unconditional inlining, it must be prepared to patch the code later
- * (see <code>vm_register_jit_overridden_method_callback</code>).
- */
+// Returns TRUE if the method has been overriden in a subclass and FALSE
+// otherwise. Note that if method_is_overridden returns FALSE, loading
+// of a subclass later in the execution of the program may change invalidate
+// this condition. If a JIT uses method_is_overridden to implement
+// unconditional inlining, it must be prepared to patch the code later
+// (see vm_register_jit_overridden_method_callback).
VMEXPORT Boolean method_is_overridden(Method_Handle m);
-/**
- * @return <code>TRUE</code> if the method should not be inlined. There may also
- * be other reasons why a method shouldn't be inlined, e.g., native methods
- * can't be inlined and in Java you can't inlined methods that are
- * loaded by a different class loader than the caller.
- * Always <code>FALSE</code> for Java.
- */
+// Returns TRUE if the method should not be inlined. There may also
+// be other reasons why a method shouldn't be inlined, e.g., native methods
+// can't be inlined and in Java you can't inlined methods that are
+// loaded by a different class loader than the caller.
+// Always FALSE for Java.
VMEXPORT Boolean method_is_no_inlining(Method_Handle mh);
-/**
- * Always <code>FALSE</code> for Java.
- */
+// Always FALSE for Java.
VMEXPORT Boolean method_is_require_security_object(Method_Handle mh);
-/**
- * @return A signature that can be used to iterate over method's arguments
- * and query the type of the method result.
- */
+// Return a signature that can be used to iterate over method's arguments
+// and query the type of the method result.
VMEXPORT Method_Signature_Handle method_get_signature(Method_Handle mh);
-/**
- * Class <code>ch</code> is a subclass of <code>method_get_class(mh)</code>.
- * The function returns a method handle for an accessible method overriding
- * <code>mh</code> in <code>ch</code> or in its closest superclass that overrides
- * <code>mh</code>.
- * Class <code>ch</code> must be a class not an interface.
- */
+// Class ch is a subclass of method_get_class(mh). The function returns a method handle
+// for an accessible method overriding mh in ch or in its closest superclass that overrides mh.
+// Class ch must be a class not an interface.
VMEXPORT Method_Handle method_find_overridden_method(Class_Handle ch, Method_Handle mh);
-////
+
+/////////////////////////////////////////////////////////////////
// begin method iterator related functions.
-///
-/**
- * Initializes the <code>CHA_Method_Iterator</code>, to iterate over all methods that
- * match the method signature and descend from <code>root_class</code>
- * (including <code>root_class</code> itself).
- *
- * @return <code>TRUE</code> if iteration is supported over <code>root_class</code>,
- * <code>FALSE</code> if not.
- */
+// Initializes the CHA_Method_Iterator, to iterate over all methods that
+// match the method signature and descend from root_class (including root_class itself).
+// Returns TRUE if iteration is supported over root_class, FALSE if not.
VMEXPORT Boolean method_iterator_initialize(ChaMethodIterator*, Method_Handle method, Class_Handle root_class);
-/**
- * @return The current method of the iterator. <code>NULL</code> is returned if
- * therea are no more methods.
- */
+// Returns the current method of the iterator. NULL is returned if
+// therea are no more methods.
VMEXPORT Method_Handle method_iterator_get_current(ChaMethodIterator*);
-/**
- * Advances the iterator.
- */
+// Advances the iterator.
VMEXPORT void method_iterator_advance(ChaMethodIterator*);
-////
+
+///////////////////////////////////////////////////////
// begin method signature-related functions.
-////
-/**
- * @return The method descriptor for a given method signature.
- * See <code>method_get_descriptor()</code>.
- */
+// Returns the method descriptor for a given method signature.
+// See method_get_descriptor().
VMEXPORT const char *method_sig_get_descriptor(Method_Signature_Handle s);
-/**
- * Return a signature that can be used to iterate over method's arguments
- * and query the type of the method result.
- * Java doesn't have standalone signatures, so for Java, always return <code>NULL</code>.
- */
+// Return a signature that can be used to iterate over method's arguments
+// and query the type of the method result.
+// Java doesn't have standalone signatures, so for Java, always return NULL.
VMEXPORT Method_Signature_Handle method_standalone_signature(Class_Handle ch,
unsigned idx);
-////
// end method signature-related functions.
-////
+///////////////////////////////////////////////////////
-////
+
+///////////////////////////////////////////////////////
// begin local variables-related functions.
-///
-/**
- * @return the number of local variables defined for the method.
- */
+// Returns the number of local variables defined for the method.
VMEXPORT unsigned method_vars_get_number(Method_Handle mh);
-/**
- * Return the type info of the local variable number idx.
- * Since local variables are not typed in Java. this function
- * always returns <code>NULL</code> for Java methods.
- */
+// Return the type info of the local variable number idx.
+// Since local variables are not typed in Java. this function
+// always returns NULL for Java methods.
VMEXPORT Type_Info_Handle method_vars_get_type_info(Method_Handle mh,
unsigned idx);
-/**
- * @return <code>TRUE</code> if the local variable is a managed pointer.
- */
+
+// Returns TRUE if the local variable is a managed pointer.
VMEXPORT Boolean method_vars_is_managed_pointer(Method_Handle mh, unsigned idx);
-/**
- * @return <code>TRUE</code> if the local variable is pinned.
- */
+// Returns TRUE if the local variable is pinned.
VMEXPORT Boolean method_vars_is_pinned(Method_Handle mh, unsigned idx);
-/**
- * end local variables-related functions.
- */
+// end local variables-related functions.
+///////////////////////////////////////////////////////
-/**
- * begin argument-related functions.
- */
-/**
- * @return the number of arguments defined for the method.
- * This number automatically includes the this pointer (if present).
- */
+///////////////////////////////////////////////////////
+// begin argument-related functions.
+
+// Returns the number of arguments defined for the method.
+// This number automatically includes the this pointer (if present).
VMEXPORT unsigned method_args_get_number(Method_Signature_Handle msh);
VMEXPORT Boolean method_args_has_this(Method_Signature_Handle msh);
-/**
- * Return the class handle of the argument number idx.
- * That's <code>TRUE</code> even for primitive types like int or float.
- */
+// Return the class handle of the argument number idx.
+// That's true even for primitive types like int or float.
VMEXPORT Type_Info_Handle method_args_get_type_info(Method_Signature_Handle msh,
unsigned idx);
-/**
- * @return <code>TRUE</code> if the argument is a managed pointer.
- */
+
+// Returns TRUE if the argument is a managed pointer.
VMEXPORT Boolean method_args_is_managed_pointer(Method_Signature_Handle msh, unsigned idx);
-////
// end argument-related functions.
-////
+///////////////////////////////////////////////////////
-////
+
+///////////////////////////////////////////////////////
// begin return value-related functions.
-////
+
VMEXPORT Type_Info_Handle method_ret_type_get_type_info(Method_Signature_Handle msh);
-/**
- * @return <code>TRUE</code> if the return value is a managed pointer.
- */
+// Returns TRUE if the return value is a managed pointer.
VMEXPORT Boolean method_ret_type_is_managed_pointer(Method_Signature_Handle msh);
-////
// end return value-related functions.
-////
+///////////////////////////////////////////////////////
+
-////
// end method-related functions.
-////
+/////////////////////////////////////////////////////////////////
-////
+
+
+///////////////////////////////////////////////////////
// begin type info-related functions.
-////
-/**
- * Array shapes and custom modifiers are not implemented yet.
- *
- * If type info is a reference, <code>type_info_get_class</code>
- * will return the class of the reference.
- */
+// Array shapes and custom modifiers are not implemented yet.
+
+// If type info is a reference, type_info_get_class will return the class
+// of the reference.
VMEXPORT Boolean type_info_is_reference(Type_Info_Handle tih);
-/**
- * If type info is unboxed, <code>type_info_get_class</code>
- * will return the class of the unboxed type and <code>class_is_primitive<code>
- * will return its <code>VM_Data_Type</code>.
- */
+// If type info is unboxed, type_info_get_class will return the class
+// of the unboxed type and class_is_primitive will return its VM_Data_Type.
VMEXPORT Boolean type_info_is_unboxed(Type_Info_Handle tih);
-/**
- * @return <code>TRUE</code> if the type is a primitive type.
- * <code>type_info_is_primitive</code> does
- * not cause resolution in contrast to the otherwise equivalentcall sequence
- * suggested in the description of <code>type_info_is_unboxed</code>
- * (i.e. <code>type_info_is_unboxed-->type_info_get_class-->class_is_primitive</code>).
- */
+// Returns TRUE if the type is a primitive type. type_info_is_primitive does
+// not cause resolution in contrast to the otherwise equivalentcall sequence
+// suggested in the description of type_info_is_unboxed (i.e.
+// type_info_is_unboxed-->type_info_get_class-->class_is_primitive).
VMEXPORT Boolean type_info_is_primitive(Type_Info_Handle tih);
-/**
- * If <code>TRUE</code>, then <code>type_info_get_type_info</code>
- * returns the type info that the pointer points to.
- */
+// If TRUE, then
+// type_info_get_type_info returns the type info that the pointer
+// points to.
VMEXPORT Boolean type_info_is_unmanaged_pointer(Type_Info_Handle tih);
-/**
- * For a return value a type can be void when it is not an unmanaged pointer.
- * In all other contexts, if <code>type_info_is_void</code> is <code>TRUE</code> then
- * <code>type_info_is_unmanaged_pointer</code> is <code>TRUE</code> too.
- */
+// For a return value a type can be void when it is not an unmanaged pointer.
+// In all other contexts, if type_info_is_void is TRUE then
+// type_info_is_unmanaged_pointer is TRUE too.
VMEXPORT Boolean type_info_is_void(Type_Info_Handle tih);
-/**
- * If <code>TRUE</code>, use <code>type_info_get_method_sig</code> to
- * retrieve the method signature.
- */
+// If TRUE, use type_info_get_method_sig to retrieve the method signature.
VMEXPORT Boolean type_info_is_method_pointer(Type_Info_Handle tih);
-/**
- * Is it a vector, i.e., a one-dimensional, zero-based array.
- */
+// Is it a vector, i.e., a one-dimensional, zero-based array.
VMEXPORT Boolean type_info_is_vector(Type_Info_Handle tih);
-/**
- * Is it a general array, i.e., either multidimensional or non zero-based.
- *
- * @return <code>FALSE</code> for vectors. Always <code>FALSE</code> for Java.
- */
+// Is it a general array, i.e., either multidimensional or non zero-based.
+// Returns FALSE for vectors. Always FALSE for Java.
VMEXPORT Boolean type_info_is_general_array(Type_Info_Handle tih);
-/**
- * Get the class if <code>type_info_is_reference</code> or
- * <code>type_info_is_unboxed</code> returned <code>TRUE</code>.
- * If the type info is a vector or a general array, return the
- * class handle for the array type (not the element type).
- */
+// Get the class if type_info_is_reference or type_info_is_unboxed
+// returned TRUE. If the type info is a vector or a general array, return the
+// class handle for the array type (not the element type).
VMEXPORT Class_Handle type_info_get_class(Type_Info_Handle tih);
-/**
- * Get the method signature if <code>type_info_is_method_pointer</code>
- * returned <code>TRUE</code>.
- */
+// Get the method signature if type_info_is_method_pointer returned TRUE.
VMEXPORT Method_Signature_Handle type_info_get_method_sig(Type_Info_Handle tih);
-/**
- * Get recursively type info if <code>type_info_is_unmanaged_pointer</code>,
- * <code>type_info_is_vector</code> or <code>type_info_is_general_array</code>
- * returned <code>TRUE</code>.
- */
+// Get recursively type info if type_info_is_unmanaged_pointer,
+// type_info_is_vector or type_info_is_general_array returned TRUE.
VMEXPORT Type_Info_Handle type_info_get_type_info(Type_Info_Handle tih);
-/**
- * Return an <code>VM_Data_Type</code> corresponding to a type info.
- * This function is provided for convenience as it can be implemented in terms
- * of other functions provided in this interface.
- */
+// Return an VM_Data_Type corresponding to a type info.
+// This function is provided for convenience as it can be implemented in terms
+// of other functions provided in this interface.
VMEXPORT VM_Data_Type type_info_get_type(Type_Info_Handle tih);
-////
// end type info-related functions.
-////
+///////////////////////////////////////////////////////
+
+
-////
+/////////////////////////////////////////////////////////////////
// begin vector layout functions.
-////
-/**
- * Vectors are one-dimensional, zero-based arrays. All Java
- * <code>arrays</code> are vectors.
- * Functions provided in this section do not work on multidimensional or
- * non-zero based arrays (i.e. arrays with a lower bound that is non-zero
- * for at least one of the dimensions.
- */
+// Vectors are one-dimensional, zero-based arrays. All Java "arrays" are
+// vectors.
+// Functions provided in this section do not work on multidimensional or
+// non-zero based arrays (i.e. arrays with a lower bound that is non-zero
+// for at least one of the dimensions.
-/**
- * Return the offset to the length field of the array. That field has
- * the same offset for vectors of all types.
- */
+
+// Return the offset to the length field of the array. That field has
+// the same offset for vectors of all types.
VMEXPORT int vector_length_offset();
-/**
- * Deprecated. Please use <code>vector_length_offset</code> instead.
- */
-VMEXPORT int array_length_offset();
+// Deprecated. Please use vector_length_offset instead.
+//VMEXPORT int array_length_offset();
-/**
- * Return the offset to the first element of the vector of the given type.
- * This function is provided for the cases when the class handle of the
- * element is not available.
- */
+// Return the offset to the first element of the vector of the given type.
+// This function is provided for the cases when the class handle of the
+// element is not available.
VMEXPORT int vector_first_element_offset(VM_Data_Type element_type);
-/**
- * Deprecated. Please use <code>vector_first_element_offset</code> instead.
- */
-VMEXPORT int array_first_element_offset(VM_Data_Type element_type);
+// Deprecated. Please use vector_first_element_offset instead.
+//VMEXPORT int array_first_element_offset(VM_Data_Type element_type);
-
-/**
- * Return the offset to the first element of the vector of the given type.
- * Assume that the elements are boxed. Byte offset.
- */
+// Return the offset to the first element of the vector of the given type.
+// Assume that the elements are boxed. Byte offset.
VMEXPORT int vector_first_element_offset_class_handle(Class_Handle element_type);
VMEXPORT int vector_first_element_offset_vtable_handle(VTable_Handle element_type);
-/**
- * Deprecated. Please use <code>vector_first_element_offset_class_handle</code> instead.
- */
-VMEXPORT int array_first_element_offset_class_handle(Class_Handle element_type);
+// Deprecated. Please use vector_first_element_offset_class_handle instead.
+//VMEXPORT int array_first_element_offset_class_handle(Class_Handle element_type);
-/**
- * Return the offset to the first element of the vector of the given type.
- * If the class is a value type, assume that elements are unboxed.
- * If the class is not a value type, assume that elements are references.
- */
+// Return the offset to the first element of the vector of the given type.
+// If the class is a value type, assume that elements are unboxed.
+// If the class is not a value type, assume that elements are references.
VMEXPORT int vector_first_element_offset_unboxed(Class_Handle element_type);
-/**
- * Deprecated. Please use <code>vector_first_element_offset_unboxed</code> instead.
- */
-VMEXPORT int array_first_element_offset_unboxed(Class_Handle element_type);
+// Deprecated. Please use vector_first_element_offset_unboxed instead.
+//VMEXPORT int array_first_element_offset_unboxed(Class_Handle element_type);
-/**
- * Return the length of a vector. The caller must ensure that GC will not
- * move or deallocate the vector while vector_get_length() is active.
- */
+// Return the length of a vector. The caller must ensure that GC will not
+// move or deallocate the vector while vector_get_length() is active.
VMEXPORT int32 vector_get_length(Vector_Handle vector);
-/**
- * Return the address to an element of a vector of references.
- * The caller must ensure that GC will not move or deallocate the vector
- * while vector_get_element_address_ref() is active.
- */
+// Return the address to an element of a vector of references.
+// The caller must ensure that GC will not move or deallocate the vector
+// while vector_get_element_address_ref() is active.
VMEXPORT Managed_Object_Handle *
vector_get_element_address_ref(Vector_Handle vector, int32 idx);
-/**
- * Return the size of a vector of a given number of elements.
- * The size is rounded up to take alignment into account.
- */
+// Return the size of a vector of a given number of elements.
+// The size is rounded up to take alignment into account.
VMEXPORT unsigned vm_vector_size(Class_Handle vector_class, int length);
-////
+
// end vector layout functions.
-////
+/////////////////////////////////////////////////////////////////
+
+
-////
+/////////////////////////////////////////////////////////////////
// begin miscellaneous functions.
-////
-/**
- * @return <code>TRUE</code> if references within objects and vector elements are
- * to be treated as offsets rather than raw pointers.
- */
+
+// Returns TRUE if references within objects and vector elements are
+// to be treated as offsets rather than raw pointers.
VMEXPORT Boolean vm_references_are_compressed();
-/**
- * @return The starting address of the GC heap.
- */
+// Returns the starting address of the GC heap.
VMEXPORT void *vm_heap_base_address();
-/**
- * @return The ending address of the GC heap.
- */
+// Returns the ending address of the GC heap.
VMEXPORT void *vm_heap_ceiling_address();
-/**
- * @return <code>TRUE</code> if vtable pointers within objects are to be treated
- * as offsets rather than raw pointers.
- */
+// Returns TRUE if vtable pointers within objects are to be treated
+// as offsets rather than raw pointers.
VMEXPORT Boolean vm_vtable_pointers_are_compressed();
-/**
- * @return The offset to the vtable pointer in an object.
- */
+// Returns the offset to the vtable pointer in an object.
VMEXPORT int object_get_vtable_offset();
-/**
- * @return The base address of the vtable memory area. This value will
- * never change and can be cached at startup.
- */
+// Returns the base address of the vtable memory area. This value will
+// never change and can be cached at startup.
VMEXPORT POINTER_SIZE_INT vm_get_vtable_base();
-/**
- * @return The width in bytes (e.g. 4 or 8) of the vtable type
- * information in each object's header. This is typically used
- * by the JIT for generating type-checking code, e.g. for inlined
- * type checks or for inlining of virtual methods.
- */
+// Returns the width in bytes (e.g. 4 or 8) of the vtable type
+// information in each object's header. This is typically used
+// by the JIT for generating type-checking code, e.g. for inlined
+// type checks or for inlining of virtual methods.
VMEXPORT unsigned vm_get_vtable_ptr_size();
-/**
- * @return A printable signature. The character buffer is owned by the
- * caller. Call <code>free_string_buffer</code> to reclaim the memory.
- */
+// Returns a printable signature. The character buffer is owned by the
+// caller. Call free_string_buffer to reclaim the memory.
VMEXPORT char *method_sig_get_string(Method_Signature_Handle msh);
-/**
- * Free a string buffer returned by <code>method_sig_get_string</code>.
- */
+// Free a string buffer returned by method_sig_get_string.
VMEXPORT void free_string_buffer(char *buffer);
@@ -979,69 +690,42 @@
JAVA_PROPERTIES = 1
} PropertyTable;
-/**
- * Sets the property for <code>table_number</code> property table. <code>NULL</code> value is supported.
- */
+//Sets the property for table_number property table. NULL value is supported.
VMEXPORT void set_property(const char* key, const char* value, PropertyTable table_number);
-/**
- * @return The value of the property from <code>table_number</code> property table if it
- * has been set by <code>set_property</code> function. Otherwise <code>NULL</code>.
- */
+//Returns the value of the property from table_number property table if it
+//has been set by set_property function. Otherwise returns NULL.
VMEXPORT char* get_property(const char* key, PropertyTable table_number);
-/**
- * Safety frees memory of value returned by <code>get_property</code> function.
- */
+//Safety frees memory of value returned by get_property function.
VMEXPORT void destroy_property_value(char* value);
-/**
- * Checks if the property is set.
- *
- * @return -1 if <code>table_number</code> is incorrect.<BR>
- * 1 if property is set in <code>table_number</code> property table.<BR>
- * 0 otherwise.
- */
+//Checks if the property is set. Return:
+// -1 if table_number is incorrect.
+// 1 if property is set in table_number property table.
+// 0 otherwise.
VMEXPORT int is_property_set(const char* key, PropertyTable table_number);
-/**
- * Unsets the property in <code>table_number</code> property table.
- */
+//Unsets the property in table_number property table.
VMEXPORT void unset_property(const char* key, PropertyTable table_number);
-/**
- * @return An array of keys from <code>table_number</code> properties table.
- */
+//Returns an array of keys from table_number properties table.
VMEXPORT char** get_properties_keys(PropertyTable table_number);
-/**
- * @return An array of keys which start with specified prefix from
- * <code>table_number</code> properties table.
- */
+//Returns an array of keys which start with specified prefix from table_number properties table.
VMEXPORT char** get_properties_keys_staring_with(const char* prefix, PropertyTable table_number);
-/**
- * Safety frees array of keys memory which returned by <code>get_properties_keys</code>
- * or <code>get_properties_keys_staring_with</code> functions.
- */
+//Safety frees array of keys memory which returned by get_properties_keys
+//or get_properties_keys_staring_with functions.
VMEXPORT void destroy_properties_keys(char** keys);
-/**
- * Tries to interpret property value as <code>Boolean</code> and returns it.
- * In case of failure returns <code>default_value</code>.
- */
+//Tries to interpret property value as Boolean and returns it. In case of failure returns default_value.
VMEXPORT Boolean get_boolean_property(const char* property, Boolean default_value, PropertyTable table_number);
-/**
- * Tries to interpret property value as <code>int</code> and returns it. In case of failure
- * returns <code>default_value</code>.
- */
+//Tries to interpret property value as int and returns it. In case of failure returns default_value.
VMEXPORT int get_int_property(const char *property_name, int default_value, PropertyTable table_number);
-
-
-////
// end miscellaneous functions.
-////
+/////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm_gc.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm_gc.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm_gc.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm_gc.h Sun Jan 14 22:22:34 2007
@@ -14,7 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+/**
+ * @author Intel, Salikh Zakirov
+ * @version $Revision: 1.1.2.1.4.3 $
+ */
#ifndef _OPEN_VM_GC_H
#define _OPEN_VM_GC_H
@@ -35,22 +38,24 @@
/**
- * @return The number of bytes allocated by VM in VTable
+ * @return the number of bytes allocated by VM in VTable
* for use by GC.
*/
VMEXPORT size_t vm_number_of_gc_bytes_in_vtable();
/**
- * @return The number of bytes allocated by VM in thread-local
+ * @return the number of bytes allocated by VM in thread-local
* storage for use by GC.
*/
VMEXPORT size_t vm_number_of_gc_bytes_in_thread_local();
/**
- * @return The pointer to thread-local area of current thread.
+ * @return the pointer to thread-local area of current thread.
*/
VMEXPORT void *vm_get_gc_thread_local();
+VMEXPORT size_t vm_get_gc_thread_local_offset();
+
/**
* Acquire the lock that guards all GC-related operations in the VM.
@@ -62,7 +67,7 @@
/**
- * Release the system-wide lock acquired by <code>vm_gc_lock_enum()</code>.
+ * Release the system-wide lock acquired by vm_gc_lock_enum().
* The thread is marked as unsafe for root set enumeration.
*/
VMEXPORT void vm_gc_unlock_enum();
@@ -89,8 +94,7 @@
* GC calls this function in stop the world state when all live objects
* are marked. This is the callback to classloader allowing it to
* gather needed statics for class unloading.
- *
- * @sa gc interface functions: gc_get_next_live_object(void *iterator)
+ * See also gc interface functions: gc_get_next_live_object(void *iterator)
*/
VMEXPORT void vm_classloader_iterate_objects(void *iterator);
@@ -99,20 +103,12 @@
* one object. The GC aborts heap iteration if this function
* returns false.
*
- * @return <code>TRUE</code> to continue heap iteration, <code>FALSE</code> to abort
- *
- * @sa gc.h#gc_iterate_heap()
+ * @return true to continue heap iteration, false to abort
+ * @see gc.h#gc_iterate_heap()
*/
VMEXPORT bool vm_iterate_object(Managed_Object_Handle object);
/**
- * GC calls this function for each live object it finds in heap.
- * This is used for finding unreferenced class loaders for class
- * unloading.
- */
-VMEXPORT void vm_notify_live_object_class(Class_Handle);
-
-/**
* GC calls this function to hint VM that finalizers may need to be run
* and references enqueued. This method is guaranteed not to hold global
* GC lock.
@@ -131,29 +127,29 @@
nill = 0,
/**
- * Thread is stopped for root set enumeration,
+ * thread is stopped for root set enumeration,
* as is the whole world (all managed threads).
*/
enumerate_the_universe,
/**
- * Thread is stopped for root set enumeration
+ * thread is stopped for root set enumeration
*/
java_suspend_one_thread,
/**
- * Thread is stopped by java debugger.
+ * thread is stopped by java debugger.
*/
java_debugger
};
/**
- * @return Thread safepoint state.
+ * @return thread safepoint state.
*/
VMEXPORT enum safepoint_state get_global_safepoint_status();
/**
- * @return <code>TRUE</code> if no apparent trash was found in the object.
+ * @return TRUE if no apparent trash was found in the object.
*
* Used for debugging.
*/
@@ -180,12 +176,16 @@
*/
VMEXPORT void vm_finalize_object(Managed_Object_Handle p_obj);
+VMEXPORT void set_native_finalizer_thread_flag(Boolean flag);
+
/**
* GC should call this function when an phantom reference object
* is to be enqueued, i.e. when the reference is not reachable anymore.
*/
VMEXPORT void vm_enqueue_reference(Managed_Object_Handle p_obj);
+VMEXPORT void set_native_ref_enqueue_thread_flag(Boolean flag);
+
enum WeakReferenceType {
NOT_REFERENCE = 0,
WEAK_REFERENCE,
@@ -203,42 +203,39 @@
/*
* Returns handle of a class for a specified vtable
- *
* @param vh - handle of vtable to retrieve class for
- *
* @return class handle for a specified vtable
*/
VMEXPORT Class_Handle vtable_get_class(VTable_Handle vh);
/**
* Notifies VM that live object of this class was found in the heap
- *
* @param clss - class of live object in Java heap
- */
+ **/
VMEXPORT void vm_notify_live_object_class(Class_Handle clss);
/**
* Returns the offset of the referent field
- * in the <code>java.lang.ref.Reference</code> object.
+ * in the java.lang.ref.Reference object.
*
* clss is assumed to represent the reference object,
* i.e. class_is_reference() returned non-zero value.
*
- * @note The returned value is most probably a constant,
+ * @note the returned value is most probably a constant,
* and is not dependent on the clss.
*
- * @note This interface allows only one non-strong (i.e. weak
+ * @note this interface allows only one non-strong (i.e. weak
* soft or phantom) reference per object.
* It seems to be sufficient for JVM Spec.
*/
VMEXPORT int class_get_referent_offset(Class_Handle clss);
-#define CL_PROP_ALIGNMENT_MASK 0x00FFF ///< @sa <code>class_properties</code>
-#define CL_PROP_NON_REF_ARRAY_MASK 0x01000 ///< @sa <code>class_properties</code>
-#define CL_PROP_ARRAY_MASK 0x02000 ///< @sa <code>class_properties</code>
-#define CL_PROP_PINNED_MASK 0x04000 ///< @sa <code>class_properties</code>
-#define CL_PROP_FINALIZABLE_MASK 0x08000 ///< @sa <code>class_properties</code>
+#define CL_PROP_ALIGNMENT_MASK 0x00FFF ///< @see class_properties
+#define CL_PROP_NON_REF_ARRAY_MASK 0x01000 ///< @see class_properties
+#define CL_PROP_ARRAY_MASK 0x02000 ///< @see class_properties
+#define CL_PROP_PINNED_MASK 0x04000 ///< @see class_properties
+#define CL_PROP_FINALIZABLE_MASK 0x08000 ///< @see class_properties
/**
Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h Sun Jan 14 22:22:34 2007
@@ -14,6 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/**
+ * @author Intel, Alexei Fedotov
+ * @version $Revision: 1.1.2.2.4.3 $
+ */
+
#ifndef _VM_UTILS_H_
#define _VM_UTILS_H_
@@ -54,17 +59,16 @@
extern VTable *cached_object_array_vtable_ptr;
-/**
- * Runtime support functions exported directly, because they
- * may be called from native code.
- */
+
+
+////////////////////////////////////////////////////////////////////////////
+// Runtime support functions exported directly, because they may be called
+// from native code.
+////////////////////////////////////////////////////////////////////////////
Boolean class_is_subtype(Class *sub, Class *super);
-/**
- * Like <code>class_is_subtype</code>, but <code>sub</code> must not be an
- * interface class.
- */
+// Like class_is_subtype, but sub must not be an interface class.
Boolean class_is_subtype_fast(VTable *sub, Class *super);
@@ -151,18 +155,17 @@
/**
* @brief Generates an VM's helper to invoke the provided function.
*
- * The helper takes the <code>void*</code> parameter, which is passed
- * to the function after some preparation made (namely GC and stack
- * info are prepared to allow GC to work properly).
+ * The helper takes 'void*' parameter which is passed to the function after
+ * some preparation made (namely GC and stack info are prepared to allow GC
+ * to work properly).
*
- * The function must follow stdcall convention, which takes <code>void*</code> and
- * returns <code>void*</code>, so does the helper.
+ * The function must follow stdcall convention, which takes 'void*' and
+ * returns 'void*', so does the helper.
* On a return from the function, the helper checks whether an exception
* was raised for the current thread, and rethrows it if necessary.
*/
VMEXPORT void * vm_create_helper_for_function(void* (*fptr)(void*));
#endif /* #ifndef _VM_UTILS_H_ */
-
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/exceptions.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/exceptions.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/exceptions.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/exceptions.h Sun Jan 14 22:22:34 2007
@@ -1,10 +1,10 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -14,7 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+/**
+ * @author Intel, Pavel Afremov
+ * @version $Revision: 1.1.2.1.4.3 $
+ */
#ifndef _EXCEPTIONS_H_
#define _EXCEPTIONS_H_
@@ -24,22 +27,27 @@
#include "open/types.h"
/**
- * @file
- * ref exceptions
- */
+@file
+\ref exceptions
+*/
/**
- \ page page1 exceptions Exceptions subsystem
- \section section1 exn_introduction Introduction
- The functions to work with exceptions are described in exceptions.h.
- \section section1 exn_issues Issues
- \li Interaction with JIT and runtime helpers? -salikh
- \li Interaction with JIT is implemented via rth_wrap_exn_throw stubs. -pavel.n.afremov
- \li Existing interface is currently included.
- */
+@page exceptions Exceptions subsystem
+
+\section exn_introduction Introduction
+The functions to work with exceptions are described in exceptions.h.
+
+\section exn_issues Issues
+
+\li Interaction with JIT and runtime helpers? -salikh
+\li Interaction with JIT is implemented via rth_wrap_exn_throw stubs. -pavel.n.afremov
+\li Existing interface is currently included.
+
+*/
+
/**
- * @return The thread-local exception object, or <code>NULL</code> if no
- * exception occured.
+ * Returns the thread-local exception object
+ * or NULL if no exception occured.
*/
VMEXPORT jthrowable exn_get();
@@ -48,23 +56,21 @@
/**
- * @return <code>TRUE</code> if the thread-local exception object is set.
+ * Returns true if the thread-local exception object is set.
*/
VMEXPORT bool exn_raised();
/**
* Clears the thread-local exception object.
*
- * @note Rename of <code>clear_current_thread_exception()</code>.
- * It may be eliminated if exn_catch() will be
- * used and will clean thread exception.
+ * @note rename of clear_current_thread_exception(). It may be eliminated if
+ * exn_catch() will be used and will clean thread exception.
*/
VMEXPORT void exn_clear();
/**
* Creates exception object.
*/
-
//FIXME LAZY EXCEPTION (2006.05.06)
// Maybe change to exn_object_create (whole 7)
jthrowable exn_create(Exception* exception);
@@ -95,22 +101,21 @@
VMEXPORT jthrowable exn_create(const char* exc_name, const char* message, jthrowable cause);
/**
- * @return <code>TRUE</code> if frame is unwindable and false if isn't.
+ * Returns true if frame is unwindable and false if isn't.
*/
VMEXPORT bool is_unwindable();
/**
* Sets unwindable property of frame. If frame is unwindable property
* should be true and should be false if frame isn't unwindable.
- *
- * @return Previous value of unwindable property.
+ * Returns previous value of unwindable property.
*/
bool set_unwindable(bool unwindable);
/**
- * Throws an exception object.
+ * Throws an exception object
*
- * @note Internal convenience function, may not be exposed to VMI interface.
+ * @note internal convenience function, may not be exposed to VMI interface.
*/
void exn_throw_object(jthrowable exc_object);
@@ -118,7 +123,7 @@
* Throws an exceptionas lazy.
* Does not return in case of destructive exception propagation.
*
- * @note Internal convenience function, may not be exposed to VMI interface.
+ * @note internal convenience function, may not be exposed to VMI interface.
*/
void exn_throw_by_class(Class* exc_class);
void exn_throw_by_class(Class* exc_class, jthrowable exc_cause);
@@ -153,15 +158,15 @@
/**
* Sets exceptions as a thread local exception.
*
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
VMEXPORT void exn_raise_object(jthrowable exc_object);
/**
* Sets exception lazy as a thread local exception.
*
- * @note Internal convenience function, may not be exposed to VMI interface.
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note internal convenience function, may not be exposed to VMI interface.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
void exn_raise_by_class(Class* exc_class);
void exn_raise_by_class(Class* exc_class, jthrowable exc_cause);
@@ -172,28 +177,28 @@
/**
* Sets exception lazy as a thread local exception.
*
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
VMEXPORT void exn_raise_by_name(const char* exception_name);
/**
* Sets exception lazy as a thread local exception.
*
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
VMEXPORT void exn_raise_by_name(const char* exception_name, jthrowable exc_cause);
/**
* Sets exception lazy as a thread local exception.
*
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
VMEXPORT void exn_raise_by_name(const char* exception_name, const char* message);
/**
* Sets exception lazy as a thread local exception.
*
- * @note Explicit non-destructive semantics should be deduced from context.
+ * @note explicit non-destructive semantics should be deduced from context.
*/
VMEXPORT void exn_raise_by_name(const char* exception_name, const char* message,
jthrowable exc_cause);
@@ -203,27 +208,27 @@
* After this returns true. If unwinding is happnened control coming back into
* this function, and after this it returns false.
*
- * @note Experimental.
+ * @note experimental
*/
bool exn_function_try();
/**
- * Pops dummy non-unwindable stack frame.
+ * pops dummy non-unwindable stack frame
*
- * @retur The current thread exception object, or <code>NULL</code>
- * if no exception occured.
+ * returns the current thread exception object
+ * or NULL if no exception occured.
*
- * @note Experimental.
+ * @note experimental
*/
jthrowable exn_function_catch();
/**
- * Wrapper for <code>exn_function_try</code>.
+ * Wrapper for exn_function_try.
*/
#define exn_try (if (exn_function_try()))
/**
- * Wrapper for <code>exn_function_catch</code>.
+ * Wrapper for exn_function_catch.
*/
#define exn_catch (th) (if ( th = exn_function_catch()))
@@ -251,21 +256,16 @@
struct ManagedObject;
-/**
- * Stack Trace support
- */
+//**** Stack Trace support
-/**
- * Print the stack trace stored in the exception object to the given file.
- */
+// Print the stack trace stored in the exception object to the given file.
void exn_print_stack_trace(FILE* f, jthrowable exc);
void print_uncaught_exception_message(FILE *f, char* context_message, jthrowable exc);
-/**
- * Native code exception support
- */
+//**** Native code exception support
+
void exn_rethrow();
void exn_rethrow_if_pending();
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export.h Sun Jan 14 22:22:34 2007
@@ -1,10 +1,10 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -14,11 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/**
+ * @author Intel, Alexei Fedotov
+ * @version $Revision: 1.1.2.1.4.4 $
+ */
-/**
- * These are the functions that a JIT built as a DLL must export.
- * Some functions may be optional and are marked as such.
- */
+
+//
+// These are the functions that a JIT built as a DLL must export.
+// Some functions may be optional and are marked as such.
+//
#ifndef _JIT_EXPORT_H
#define _JIT_EXPORT_H
@@ -47,11 +52,10 @@
// Required functions.
////////////////////////////////////////////////////////
-/**
- * Flags passed from the VM to the JIT.
- *
- * Max 32 bits, so that it fits in one word.
- */
+//
+// Flags passed from the VM to the JIT.
+//
+// Max 32 bits, so that it fits in one word.
typedef
struct JIT_Flags {
@@ -72,85 +76,71 @@
* call a certain VM helpers at certain places in the code. For JIT,
* in particular, this means that it will have to generate additional
* code which will perform these calls.
-*
+* <p>
* Each of the requirement is associated with a corresponding ability of
* the EE to satisfy this requirement. So, elements of the struct should also
* be used to denote EE capabilities related to method execution.
-*
+* <p>
* If an element corresponds to a certain VM helper, concrete contract
* of calling this helper (arguments, etc.) can be found at the place of
* definition of this helper (or its ID) within present OPEN specification.
*/
typedef struct OpenMethodExecutionParams {
-
- /**
- * Call corresponding VM helper upon entry to the managed method.
- */
+ /** call corresponding VM helper upon entry to the managed method */
Boolean exe_notify_method_entry : 1;
- /**
- * Call corresponding VM helper upon exit from the managed method.
- */
+ /** call corresponding VM helper upon exit from the managed method */
Boolean exe_notify_method_exit : 1;
- /**
- * Call corresponding VM helper upon reading a value of a field which
- * has <field access mask> set
- */
-
+ /** call corresponding VM helper upon reading a value of a field which has <field access mask> set */
Boolean exe_notify_field_access : 1;
- /**
- * Call corresponding VM helper upon setting a value of a field which
- * has <field modification mask> set.
- */
+ /** call corresponding VM helper upon setting a value of a field which has <field modification mask> set */
Boolean exe_notify_field_modification : 1;
/**
- * Call corresponding VM helper upon exception throw,
- * if by default the throw code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon exception throw,
+ * if by default the throw code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_exception_throw : 1;
/**
- * Call corresponding VM helper upon exception catch,
- * if by default the exception propagation code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon exception catch,
+ * if by default the exception propagation code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_exception_catch : 1;
/**
- * Call corresponding VM helper upon entering a monitor,
- * if by default the monitor enter code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon entering a monitor,
+ * if by default the monitor enter code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_monitor_enter : 1;
/**
- * Call corresponding VM helper upon exiting a monitor,
- * if by default the monitor exit code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon exiting a monitor,
+ * if by default the monitor exit code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_monitor_exit : 1;
/**
- * Call corresponding VM helper upon entering a contended monitor,
- * if by default the contended monitor enter code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon entering a contended monitor,
+ * if by default the contended monitor enter code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_contended_monitor_enter : 1;
/**
- * Call corresponding VM helper upon exiting a contended monitor,
- * if by default the contended monitor exit code does not enter any VM helper
- * (for example, in case of JIT optimizations).
- */
+ * call corresponding VM helper upon exiting a contended monitor,
+ * if by default the contended monitor exit code does not enter any VM helper
+ * (for example, in case of JIT optimizations)
+ */
Boolean exe_notify_contended_monitor_exit : 1;
- /**
- * Perform method in-lining during compilation (JIT-specific)
- */
+ /** perform method in-lining during compilation (JIT-specific) */
Boolean exe_do_method_inlining : 1;
/**
@@ -170,20 +160,18 @@
*/
Boolean exe_do_local_var_mapping : 1;
- /**
- * Call corresponding VM helper upon setting a value of any field of reference type.
- */
+ /** call corresponding VM helper upon setting a value of any field of reference type */
Boolean exe_insert_write_barriers : 1;
/**
* Provide possibility to obtain reference to the current 'this' object by
- * means of <code>get_address_of_this</code> method. Used for JVMTI debug support.
+ * means of get_address_of_this method. Used for JVMTI debug support.
*/
Boolean exe_provide_access_to_this : 1;
/**
* Provide restoring of arguments in the stack after the call
- * of the <code>unwind_frame</code> method so that method could be called again
+ * of the unwind_frame method so that method could be called again
* with the same arguments. Used for JVMTI debug support.
*/
Boolean exe_restore_context_after_unwind : 1;
@@ -209,16 +197,14 @@
JIT_Flags flags
);
- /**
+/**
* Performs compilation of given method.
*
* @param method_handle - handle of the method to be compiled
- * @param compilation_params - compilation parameters. If <code>NULL</code>,
- * default compilation parameters should be used by
- * the JIT (passed in the initialize function).
- * If either of parameters is not supported by the JIT,
- * the function should return compilation failure.
- * @return Compilation status.
+ * @param compilation_params - compilation parameters. If NULL, default compilation parameters
+ * should be used by the JIT (passed in the initialize function). If either of parameters is
+ * not supported by the JIT, the function should return compilation failure.
+ * @return compilation status
*/
JITEXPORT JIT_Result JIT_compile_method_with_params(
JIT_Handle jit,
@@ -228,10 +214,10 @@
);
- /**
+/**
* Retrieves method execution-related capabilities supported by the EE.
*
- * @return The set of supported capabilities.
+ * @return the set of supported capabilities
*/
JITEXPORT OpenMethodExecutionParams JIT_get_exe_capabilities (JIT_Handle jit);
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export_jpda.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export_jpda.h?view=diff&rev=496237&r1=496236&r2=496237
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export_jpda.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/jit_export_jpda.h Sun Jan 14 22:22:34 2007
@@ -1,10 +1,10 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
+ * the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@@ -14,6 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/**
+ * @author Intel, Alexei Fedotov
+ * @version $Revision: 1.1.2.1.4.4 $
+ */
#ifndef _JIT_EXPORT_JPDA_H
#define _JIT_EXPORT_JPDA_H
@@ -24,9 +28,9 @@
extern "C" {
#endif // __cplusplus
- /**
+/**
* Elements of this enum denote various error conditions which can
- * arise when working with the <code>OpenExeJPDA</code> interface.
+ * arise when working with the OpenExeJPDA interface.
*/
typedef enum OpenExeJpdaError {
EXE_ERROR_NONE,
@@ -38,21 +42,19 @@
} OpenExeJpdaError;
- /**
+/**
* Gets corresponding native code location for given bytecode location.
- *
- * @param method - method whose bytecode contains the location
- * @param bc_pc - location within the bytecode
- * @param[out] native_pc - upon successfull return points to corresponding native
- * code location
+ * @param method method whose bytecode contains the location
+ * @param bc_pc location within the bytecode
+ * @param native_pc (out) upon successfull return points to corresponding native
+ * code location
* @return
- * EXE_ERROR_NONE on success.<br>
- * EXE_ERROR_INVALID_METHODID if the given method handle is invalid.<br>
+ * EXE_ERROR_NONE on success
+ * EXE_ERROR_INVALID_METHODID if the given method handle is invalid
* EXE_ERROR_INVALID_LOCATION if either the execution engine is unable to map
- * the bytecode location or if the location is invalid
- * (does not correspond to a valid offset of a bytecode
- * instruction).<br>
- * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality.
+ * the bytecode location or if the location is invalid (does not correspond to
+ * a valid offset of a bytecode instruction)
+ * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality
*/
JITEXPORT OpenExeJpdaError get_native_location_for_bc(
JIT_Handle jit,
@@ -61,23 +63,18 @@
NativeCodePtr *native_pc
);
- /**
- * Gets corresponding bytecode location for given native location (absolute
- * code address).
- *
- * @param method - method whose (compiled native) code contains the location
- * @param native_pc - location within the native code
- * @param[out] bc_pc - upon successfull return points to corresponding bytecode
- * location
+/**
+ * Gets corresponding bytecode location for given native location (absolute code address).
+ * @param method method whose (compiled native) code contains the location
+ * @param native_pc location within the native code
+ * @param bc_pc (out) upon successfull return points to corresponding bytecode location
* @return
- * EXE_ERROR_NONE on success.<br>
- * EXE_ERROR_INVALID_METHODID if the given method handle is invalid.<br>
+ * EXE_ERROR_NONE on success
+ * EXE_ERROR_INVALID_METHODID if the given method handle is invalid
* EXE_ERROR_INVALID_LOCATION if either the execution engine is unable to map
- * the native location or if the location is
- * invalid (does not correspond to a valid offset
- * of a processor instruction within the compiled code).<br>
- * EXE_ERROR_UNSUPPORTED if the execution engine does not support this
- * functionality.
+ * the native location or if the location is invalid (does not correspond to
+ * a valid offset of a processor instruction within the compiled code)
+ * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality
*/
JITEXPORT OpenExeJpdaError get_bc_location_for_native(
JIT_Handle jit,
@@ -87,28 +84,23 @@
);
- /**
+/**
* Gets the value of the bytecode local variable in given method stack frame.
- *
- * @param method - method in whose frame the variable is to be read
- * @param context - stack frame of the method describing its current execution state
- * (at the point of thread suspension)
- * @param var_num - the variable's slot number
- * @param var_type - the variable's type
- * @param value_ptr - address of the buffer to write variable value into.
- * Caller is responsible for providing enough
- * <code>(OPEN_VM::get_vm_type_size(var_type)</code> bytes)
- * memory in the buffer
- *
+ * @param method method in whose frame the variable is to be read
+ * @param context stack frame of the method describing its current execution state
+ * (at the point of thread suspension)
+ * @param var_num the variable's slot number
+ * @param var_type the variable's type
+ * @param value_ptr address of the buffer to write variable value into. Caller is responsible for
+ * providing enough (OPEN_VM::get_vm_type_size(var_type) bytes) memory in the buffer.
* @return
- * EXE_ERROR_NONE on success.<br>
- * EXE_ERROR_INVALID_METHODID if the given method handle is invalid.<br>
- * EXE_ERROR_INVALID_LOCATION if the execution engine does not support local
- * variable access at current execution point
- * in the method, specified by the context.<br>
- * EXE_ERROR_TYPE_MISMATCH if the variable with given slot is of different type.<br>
- * EXE_ERROR_INVALID_SLOT if the stack frame does not have variable with given slot number.<br>
- * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality.
+ * EXE_ERROR_NONE on success
+ * EXE_ERROR_INVALID_METHODID if the given method handle is invalid
+ * EXE_ERROR_INVALID_LOCATION if the execution engine does not support local variable access
+ * at current execution point in the method, specified by the context
+ * EXE_ERROR_TYPE_MISMATCH if the variable with given slot is of different type,
+ * EXE_ERROR_INVALID_SLOT if the stack frame does not have variable with given slot number,
+ * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality
*/
JITEXPORT OpenExeJpdaError get_local_var(
JIT_Handle jit,
@@ -120,25 +112,22 @@
);
- /**
+/**
* Sets the value of the bytecode local variable in given method stack frame.
- *
- * @param method method in whose frame the variable is to be changed
- * @param context stack frame of the method describing its current execution state
- * (at the point of thread suspension)
+ * @param method method in whose frame the variable is to be changed
+ * @param context stack frame of the method describing its current execution state
+ * (at the point of thread suspension)
* @param var_num the variable's slot number
- * @param var_type the variable's type
- * @param value_ptr address of the new value for the variable
- *
+ * @param var_type the variable's type
+ * @param value_ptr address of the new value for the variable
* @return
- * EXE_ERROR_NONE on success.<br>
- * EXE_ERROR_INVALID_METHODID if the given method handle is invalid.<br>
+ * EXE_ERROR_NONE on success
+ * EXE_ERROR_INVALID_METHODID if the given method handle is invalid
* EXE_ERROR_INVALID_LOCATION if the execution engine does not support local variable access
- * at current execution point in the method,
- * specified by the context.<br>
- * EXE_ERROR_TYPE_MISMATCH if the variable with given slot is of different type.<br>
- * EXE_ERROR_INVALID_SLOT if the stack frame does not have variable with given slot number.<br>
- * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality.
+ * at current execution point in the method, specified by the context
+ * EXE_ERROR_TYPE_MISMATCH if the variable with given slot is of different type,
+ * EXE_ERROR_INVALID_SLOT if the stack frame does not have variable with given slot number,
+ * EXE_ERROR_UNSUPPORTED if the execution engine does not support this functionality
*/
JITEXPORT OpenExeJpdaError set_local_var(
JIT_Handle jit,