You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by dl...@apache.org on 2005/10/19 10:46:08 UTC
svn commit: r326482 [1/2] -
/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/
Author: dlydick
Date: Wed Oct 19 01:44:42 2005
New Revision: 326482
URL: http://svn.apache.org/viewcvs?rev=326482&view=rev
Log:
Updated ARCH_xxx() macros for better diagnostic support.
Minor documentation adjustments.
Modified:
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmacros.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmsgs.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/class.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classutil.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/exit.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/field.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/gc_stub.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlClass.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlObject.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlString.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlThread.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jrtypes.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jrtypes.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jvalue.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jvmcfg.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jvmclass.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jvmutil.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/linkage.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/linkage.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/native.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/native.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/nts.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/object.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/objectutil.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/opcode.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/stdio.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/threadstate.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/timeslice.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/unicode.c
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/unicode.h
incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/utf.h
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.c Wed Oct 19 01:44:42 2005
@@ -6,7 +6,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -30,6 +32,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -37,7 +40,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(attribute, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(attribute, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -49,7 +54,7 @@
/*!
- * @brief Locate an attribute by constant_pool entry for a field,
+ * @brief Locate an attribute by @c @b constant_pool entry for a field,
* method, or class. The attribute pointer passed in is valid for
* all three types.
*
@@ -60,8 +65,9 @@
*
* @param patr Attribute array for a field, method, or class.
*
- * @param atrname UTF8 constant_pool entry of name of attribute in
- * field, method, or class.
+ *
+ * @param atrname UTF8 @c @b constant_pool entry of name of attribute
+ * in field, method, or class.
*
*
* @returns Attribute table index ofthie attribute or
@@ -75,6 +81,8 @@
attribute_info_dup **patr,
cp_info_dup *atrname)
{
+ ARCH_FUNCTION_NAME(attribute_name_common_find);
+
/* Search for match of attribute array against requested name */
jvm_attribute_index atridx;
@@ -108,9 +116,9 @@
* @param patr Attribute array for a field, method, or class.
*
* @param atrenum Attribute enumeration (from
- * @link jvm/src/classfile.h classfile.h@endlink)
- * for attribute of field, method, or class to locate
- * (e.g. LOCAL_CODE_ATTRIBUTE).
+ * @link jvm/src/classfile.h classfile.h@endlink)
+ * for attribute of field, method, or class to locate
+ * (e.g. LOCAL_CODE_ATTRIBUTE).
*
*
* @returns Attribute table index ofthie attribute or
@@ -124,6 +132,8 @@
attribute_info_dup **patr,
classfile_attribute_enum atrenum)
{
+ ARCH_FUNCTION_NAME(attribute_enum_common_find);
+
/* Search for match of attribute array against requested enum */
jvm_attribute_index atridx;
@@ -144,22 +154,22 @@
/*!
- * @brief Locate by constant_pool entry the attribute_info index for an
- * attribute in a field attribute area.
+ * @brief Locate by @c @b constant_pool entry the attribute_info index
+ * for an attribute in a field attribute area.
*
*
* @param clsidx Class index of class whose field is to be
- * searched for an attribute.
+ * searched for an attribute.
*
* @param fldidx Field index of field to search.
*
- * @param atrname UTF8 constant_pool entry of name of
- * attribute name to locate.
+ * @param atrname UTF8 @c @b constant_pool entry of name of
+ * attribute name to locate.
*
*
* @returns attribute table index of this attribute in field, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
- * if not found.
+ * if not found.
*
*/
jvm_attribute_index
@@ -167,6 +177,8 @@
jvm_field_index fldidx,
cp_info_dup *atrname)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_field_by_cp_entry);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
@@ -197,7 +209,7 @@
*
*
* @param clsidx Class index of class whose field is to be
- * searched for an attribute.
+ * searched for an attribute.
*
* @param fldidx Field index of field to search.
*
@@ -205,6 +217,7 @@
LOCAL_xxxx_ATTRIBUTE@endlink enumeration of
* attribute to locate.
*
+ *
* @returns attribute table index of this attribute in field, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
* if not found.
@@ -215,6 +228,8 @@
jvm_field_index fldidx,
classfile_attribute_enum atrenum)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_field_by_enum);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
@@ -239,17 +254,18 @@
/*!
- * @brief Locate by constant_pool entry the attribute_info index for
- * an attribute in a method attribute area.
+ * @brief Locate by @c @b constant_pool entry the attribute_info index
+ * for an attribute in a method attribute area.
*
*
* @param clsidx Class index of class whose method is to be
- * searched for an attribute.
+ * searched for an attribute.
*
* @param mthidx Method index of method to search.
*
- * @param atrname UTF8 constant_pool entry of name of
- * attribute name to locate.
+ * @param atrname UTF8 @c @b constant_pool entry of name of
+ * attribute name to locate.
+ *
*
* @returns attribute table index of this attribute in method, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
@@ -261,6 +277,8 @@
jvm_method_index mthidx,
cp_info_dup *atrname)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_method_by_cp_entry);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
@@ -291,7 +309,7 @@
*
*
* @param clsidx Class index of class whose method is to be
- * searched for an attribute.
+ * searched for an attribute.
*
* @param mthidx Method index of method to search.
*
@@ -299,6 +317,7 @@
LOCAL_xxxx_ATTRIBUTE@endlink enumeration of
* attribute to locate.
*
+ *
* @returns attribute table index of this attribute in method, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
* if not found.
@@ -309,6 +328,8 @@
jvm_method_index mthidx,
classfile_attribute_enum atrenum)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_method_by_enum);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
@@ -333,15 +354,16 @@
/*!
- * @brief Locate by constant_pool entry the attribute_info index for
- * an attribute in a class attribute area.
+ * @brief Locate by @c @b constant_pool entry the attribute_info index
+ * for an attribute in a class attribute area.
*
*
* @param clsidx Class index of class be searched for an
- * attribute.
+ * attribute.
+ *
+ * @param atrname UTF8 @c @b constant_pool entry of name of
+ * attribute name to locate.
*
- * @param atrname UTF8 constant_pool entry of name of
- * attribute name to locate.
*
* @returns attribute table index of this attribute in class, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
@@ -352,6 +374,8 @@
attribute_find_in_class_by_cp_entry(jvm_class_index clsidx,
cp_info_dup *atrname)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_class_by_cp_entry);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
@@ -376,12 +400,13 @@
*
*
* @param clsidx Class index of class whose method is to be
- * searched for an attribute.
+ * searched for an attribute.
*
* @param atrenum @link #classfile_attribute_enum
LOCAL_xxxx_ATTRIBUTE@endlink enumeration of
* attribute to locate.
*
+ *
* @returns attribute table index of this attribute in class, or
* @link #jvm_attribute_index_bad jvm_attribute_index_bad@endlink
* if not found.
@@ -391,6 +416,8 @@
attribute_find_in_class_by_enum(jvm_class_index clsidx,
classfile_attribute_enum atrenum)
{
+ ARCH_FUNCTION_NAME(attribute_find_in_class_by_enum);
+
/* Prohibit invalid class parameter */
if (jvm_class_index_null == clsidx)
{
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/attribute.h Wed Oct 19 01:44:42 2005
@@ -9,7 +9,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -33,13 +35,16 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(attribute, h, "$URL$ $Id$");
+ARCH_HEADER_COPYRIGHT_APACHE(attribute, h,
+"$URL$",
+"$Id$");
extern jvm_attribute_index attribute_find_in_field_by_cp_entry(
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmacros.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmacros.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmacros.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmacros.h Wed Oct 19 01:44:42 2005
@@ -9,7 +9,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -33,24 +35,27 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(cfmacros, h, "$URL$ $Id$");
+ARCH_HEADER_COPYRIGHT_APACHE(cfmacros, h,
+"$URL$",
+"$Id$");
#include "heap.h"
/*!
* @name Typed constant_pool pointers
*
- * @brief Convert generic constant_pool[] entry into a
+ * @brief Convert generic @c @b constant_pool[] entry into a
* @link #CONSTANT_Class_info CONSTANT_xxxxx_info@endlink typed pointer,
* stripping off the generic prefix bytes.
*
- * Adjust a generic constant_pool entry (cp_info_dup *)
+ * Adjust a generic @c @b constant_pool entry (cp_info_dup *)
* into its corresponding
* @link #CONSTANT_Class_info CONSTANT_xxxxx_info@endlink typed pointer
* by changing the pointer to point not to the beginning of the
@@ -67,7 +72,7 @@
* @see ARCH_ODD2_ADDRESS_SIGSEGV
*
*
- * @param pcpinfodup Pointer to a constant_pool entry, typically
+ * @param pcpinfodup Pointer to a @c @b constant_pool entry, typically
* @c @b &pcfs->constant_pool[n]
*
*
@@ -118,7 +123,8 @@
* @name General navigation and parsing macros.
*
* @param pcfs ClassFile pointer to a fully parsed class data area
- * @param cpidx Index into its constant_pool[] array.
+ *
+ * @param cpidx Index into its @c @b constant_pool[] array.
*
*/
@@ -126,11 +132,11 @@
/*!
* @brief Report the (cp_info *) of the address of the
- * class file @p @b pcfs constant_pool entry at this
+ * class file @p @b pcfs @c @b constant_pool entry at this
* index @p @b cpidx.
*
*
- * @returns(cp_info *) to a constant_pool[cpidx]
+ * @returns(cp_info *) to a @c @b constant_pool[cpidx]
*
*/
#define PTR_CP_ENTRY(pcfs, cpidx) (&(pcfs->constant_pool[cpidx])->cp)
@@ -138,10 +144,10 @@
/*!
* @brief Report the (u1) tag value of the class file @p @b pcf
- * constant_pool entry at this index @p @b cpidx.
+ * @c @b constant_pool entry at this index @p @b cpidx.
*
*
- * @returns (u1) tag value of entry at constant_pool[cpidx]
+ * @returns (u1) tag value of entry at @c @b constant_pool[cpidx]
*
*/
#define CP_TAG(pcfs, cpidx) ((PTR_CP_ENTRY(pcfs, cpidx))->tag)
@@ -152,8 +158,8 @@
* start of @link cp_info#info info@endlink field as a (u1 *).
*
*
- * @returns address or contents of something in a constant_pool[] entry,
- * see above description.
+ * @returns address or contents of something in a @c @b constant_pool[]
+ * entry, see above description.
*/
#define PTR_CP_INFO(pcfs, cpidx) \
((u1 *) (&PTR_CP_ENTRY(pcfs, cpidx)->info))
@@ -196,9 +202,11 @@
*
* @param pcfs ClassFile pointer to a fully parsed class data area
*
- * @param cpidx Index into its constant_pool[] array.
+ * @param cpidx Index into its @c @b constant_pool[] array.
*
- * @returns Pointer to a constant_pool[cpidx], variously typed as above.
+ *
+ * @returns Pointer to a @c @b constant_pool[cpidx], variously typed as
+ * above.
*
*/
@@ -220,7 +228,7 @@
/*!
* @name UTF string manipulation macros.
*
- * @brief Probe CONSTANT_Utf8_info constant_pool entries for
+ * @brief Probe CONSTANT_Utf8_info @c @b constant_pool entries for
* field data and addresses.
*
* Return information about (CONSTANT_Utf8_info) entry, namely:
@@ -228,8 +236,8 @@
* <ul>
*
* <li>
- * Pointing to constant_pool entry of THIS @p @b pcfs and @p @b cpidx,
- * being a (CONSTANT_Utf8_info) string:
+ * Pointing to @c @b constant_pool entry of THIS @p @b pcfs
+ * and @p @b cpidx, being a (CONSTANT_Utf8_info) string:
* <ul>
* <li>
* PTR_CP_THIS() Pointer to whole (CONSTANT_Utf8_info)
@@ -281,7 +289,7 @@
*
* <li>
* ONE level of indirection, specifically using type
- * (CONSTANT_Class_info) as the constant_pool entry type.
+ * (CONSTANT_Class_info) as the @c @b constant_pool entry type.
*
* <ul>
*
@@ -308,10 +316,10 @@
*
* <li>
* TWO levels of indirection, namely, this @p @b pcfs and @p @b cpidx
- * point to a (type) constant_pool entry whose
- * @p @b strname_idx field contains a constant_pool
- * index to a (CONSTANT_Class_info) entry.
- * Obtain info about the (CONSTANT_Utf8_info)
+ * point to a @c @b (type) @c @b constant_pool entry
+ * whose @p @b strname_idx field contains a
+ * @c @b constant_pool index to a (CONSTANT_Class_info)
+ * entry. Obtain info about the (CONSTANT_Utf8_info)
* entry which is named by that (CONSTANT_Class_info)
* entry's @p @b name_index field, that is, the name
* of the class:
@@ -357,14 +365,16 @@
* @param pcfs ClassFile pointer to a fully parsed class
* data area
*
- * @param cpidx Index into its constant_pool[] array.
+ * @param cpidx Index into its @c @b constant_pool[] array.
+ *
+ * @param strname_idx Field name of indirect @c @b constant_pool
+ * pointed to by @p @b pcfs and @p @b cpidx.
+ * The index found here is the index containing
+ * the UTF string. (@c @b CP1_xxx and
+ * @c @b CP2_xxx macros only)
*
- * @param strname_idx Field name of indirect constant_pool pointed
- * to by @p @b pcfs and @p @b cpidx. The index
- * found here is the index containing the UTF
- * string. (@b CP1_xxx and @b CP2_xxx macros only)
*
- * @returns (cp_info *) to a constant_pool[cpidx]
+ * @returns (cp_info *) to a @c @b constant_pool[cpidx]
*
*/
@@ -372,8 +382,8 @@
/*******************************************************************
*
- * Pointing to constant_pool entry of THIS @p @b pcfs and @p @b cpidx,
- * being a (CONSTANT_Utf8_info) string.
+ * Pointing to @c @b constant_pool entry of THIS @p @b pcfs and
+ * @p @b cpidx, being a (CONSTANT_Utf8_info) string.
*
*/
#define PTR_CP_THIS(pcfs, cpidx) \
@@ -406,8 +416,8 @@
/*******************************************************************
*
* --- ONE level of indirection, but specifically for manipulating
- * (CONSTANT_Class_info) slot in constant_pool.
- * @p @b pcfs and @b cpidx refer to such a class info
+ * (CONSTANT_Class_info) slot in @c @b constant_pool.
+ * @p @b pcfs and @c @b cpidx refer to such a class info
* slot.
*/
#define PTR_CP1_CLASS_NAME(pcfs, cpidx) \
@@ -694,7 +704,7 @@
} \
GENERIC_FAILURE_PTR(expr, \
DMLMIN, \
- "classfile_loadclassdata", \
+ arch_function_name, \
msg, \
ClassFile, \
rnull, \
@@ -708,7 +718,7 @@
} \
GENERIC_FAILURE_PTR(expr, \
DMLMIN, \
- "cfattrib_loadattribute", \
+ arch_function_name, \
msg, \
u1, \
rnull, \
@@ -724,12 +734,13 @@
*
* @brief Inline the logic to swap bytes on multi-byte elements.
*
- * This is only meaningful on ARCH_LITTLE_ENDIAN architectures.
+ * This is only meaningful on
+ * @link #ARCH_LITTLE_ENDIAN ARCH_LITTLE_ENDIAN@endlink architectures.
* (Notice that if @p @b member does not match the pointer's
* type, there @e will be a compile warning or error.)
*
*
- * @param type Which constant_pool type, CONSTANT_xxx_info,
+ * @param type Which @c @b constant_pool type, CONSTANT_xxx_info,
* that will be used as (type *) to reference members.
* @param member Member of (CONSTANT_xxx_info *) to be manipulated.
*
@@ -738,19 +749,20 @@
*
*
* @attention The following variables area must be defined for the
- * CP_ITEM_SWAP_U2() and CP_ITEM_SWAP_U2 macros to work:
+ * CP_ITEM_SWAP_U2() and CP_ITEM_SWAP_U2 macros to work:
* @verbatim
u2 *pcpu2;
u4 *pcpu4;
@endverbatim
*
*
- * @todo There needs to be logic implemented that can determine
- * whether or not a particular field has been byte swapped
- * in case a constant pool reference is made to an entry
- * that was previously byte swapped. This has NOT been
- * done for this ioriginal implementation because it is
- * on a Solaris 9 machine, which is big endian.
+ * @todo HARMONY-6-jvm-cfmacros.h-1 There needs to be logic
+ * implemented that can determine whether or not a particular
+ * field has been byte swapped in case a constant pool
+ * reference is made to an entry that was previously byte
+ * swapped. This has NOT been done for this original
+ * implementation because it is on a Solaris 9 machine,
+ * which is big endian.
*
*/
@@ -766,7 +778,7 @@
MACHINE_JINT_SWAP_PTR(pcpu4)
#else
-/* CONFIG_BIG_ENDIAN: big endian architectures have nothing to do */
+/* ARCH_BIG_ENDIAN: big endian architectures have nothing to do */
#define CP_ITEM_SWAP_U2(type, member)
#define CP_ITEM_SWAP_U4(type, member)
@@ -812,19 +824,19 @@
* @see ARCH_ODD4_ADDRESS_SIGSEGV
* @see ARCH_ODD2_ADDRESS_SIGSEGV
*
- * @todo WATCH OUT! When changing CP_INFO_NUM_EMPTIES or
- * ATTRIBUTE_INFO_NUM_EMPTIES, beware of not having
- * he right number of @c @b struct->empty[x]=FILL
+ * @todo HARMONY-6-jvm-cfmacros.h-2 WATCH OUT! When changing
+ * CP_INFO_NUM_EMPTIES or ATTRIBUTE_INFO_NUM_EMPTIES, beware
+ * of not having he right number of @c @b struct->empty[x]=FILL
* lines in the cp_info_dup and attribute_info_dup assignments!
* Could eliminate these, but they are useful for
* debugging.
*
- * @todo 4-byte unused fields are meaningful only for 64-bit
- * implementations.
+ * @todo HARMONY-6-jvm-cfmacros.h-3 4-byte unused fields are meaningful
+ * only for 64-bit implementations.
*
- * @todo For 64-bit compilations, these fill patterns may need
- * to be expanded to support 8-byte alignments for some
- * architectures. For 32-bit compilations, nothing needs
+ * @todo HARMONY-6-jvm-cfmacros.h-4 For 64-bit compilations, these fill
+ * patterns may need to be expanded to support 8-byte alignments
+ * for some architectures. For 32-bit compilations, nothing needs
* to be done. (Verify if this is so.) Remember that the
* @b WORDSIZE64 configuration macro is used to
* distinguish this mode of compilation. (See
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmsgs.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmsgs.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmsgs.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/cfmsgs.c Wed Oct 19 01:44:42 2005
@@ -10,7 +10,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -34,6 +36,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -41,7 +44,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(cfmsgs, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(cfmsgs, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -51,23 +56,27 @@
/*!
- * @brief Display details of what an constant_pool entry contains.
+ * @brief Display details of what an @c @b constant_pool entry contains.
*
* @param fn Function name message for sysErrMsg()
*
- * @param pcfs ClassFile structure containing constant_pool info
+ * @param pcfs ClassFile structure containing @c @b constant_pool
+ * info
*
- * @param cpidx Index into constant_pool[] to report
+ * @param cpidx Index into @c @b constant_pool[] to report
*
*
* @returns @link #rvoid rvoid@endlink The @c @b pcfs->constant_pool
* must be valid for this to produce any meaningful results.
+ *
*/
rvoid cfmsgs_typemsg(rchar *fn,
ClassFile *pcfs,
jvm_constant_pool_index cpidx)
{
+ ARCH_FUNCTION_NAME(cfmsgs_typemsg);
+
u4 *pu4, *pu4h, *pu4l;
rulong *prl8;
rdouble *prd8;
@@ -80,7 +89,10 @@
if (CONSTANT_CP_DEFAULT_INDEX == cpidx)
{
- /*! @todo Widen pointer format logic for 64-bit pointers */
+ /*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-1 Widen pointer format
+ * logic for 64-bit pointers
+ */
sysDbgMsg(DMLNORM,
fn,
"NULL index (%d) into constant_pool 0x%08x\n",
@@ -383,12 +395,18 @@
* ((julong) *pu4l));
*/
-/*! @todo Above logic works, 64-bitlogic below needs testing: */
+/*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-2 Above logic works, 64-bit
+ * logic below needs testing:
+ */
/* LS word always follows MS word */
prl8 = (rulong *) pu4h;
vall = (jlong) GETRL8(prl8);
- /*! @todo Make format string properly reflect 64-bit int */
+ /*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-3 Make format string
+ * properly reflect 64-bit int
+ */
sysDbgMsg(DMLNORM, fn, "%s Long value=%ld", msg_hdr, vall);
break;
@@ -411,7 +429,10 @@
* ((julong) *pu4l));
*/
-/*! @todo Above logic works, 64-bit logic below needs testing: */
+/*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-4 Above logic works, 64-bit logic
+ * below needs testing:
+ */
/* LS word always follows MS word */
prd8 = (rdouble *) pu4h;
vald = (jdouble) GETRL8((rulong *) prd8);
@@ -499,10 +520,12 @@
*/
rvoid cfmsgs_show_constant_pool(ClassFile *pcfs)
{
+ ARCH_FUNCTION_NAME(cfmsgs_show_constant_pool);
+
jvm_constant_pool_index cpidx;
/*
- * Rehearse contents of constant_pool (Wait until AFTER the
+ * Rehearse contents of @c @b constant_pool (Wait until AFTER the
* @link ClassFile.this_class this_class@endlink item is located
* so that the message prints the class name instead of a
* default @b "unknown" for the class name.
@@ -523,28 +546,32 @@
*
* @param fn Function name message for sysErrMsg()
*
- * @param pcfs ClassFile to dump contents
+ * @param pcfs ClassFile to dump contents
*
* @param atr Pointer to an attribute area. WARNING: This
- * pointer MUST be 4-byte aligned to suppress
- * @b SIGSEGV. Such logic is already taken care
- * of by virtue of it being an (attribute_info_dup *)
- * type instead of as (attribute_info *). This
- * processing happens in cfattrib_loadattribute()
- * after reading an attribute from the class file
- * and storing it into the heap, which is properly
- * aligned.
+ * pointer MUST be 4-byte aligned to suppress
+ * @b SIGSEGV. Such logic is already taken care
+ * of by virtue of it being an (attribute_info_dup *)
+ * type instead of as (attribute_info *). This
+ * processing happens in cfattrib_loadattribute()
+ * after reading an attribute from the class file
+ * and storing it into the heap, which is properly
+ * aligned.
+ *
*
* @returns @link #rvoid rvoid@endlink The
- * @c @b atr->ai.attribute_index constant_pool entry
+ * @c @b atr->ai.attribute_index @c @b constant_pool entry
* must be valid for this to produce any meaningful
* results.
+ *
*/
rvoid cfmsgs_atrmsg(rchar *fn,
ClassFile *pcfs,
attribute_info_dup *atr)
{
+ ARCH_FUNCTION_NAME(cfmsgs_atrmsg);
+
u4 *pu4, *pu4h, *pu4l;
rulong *prl8;
rdouble *prd8;
@@ -584,8 +611,8 @@
switch((int) CP_TAG(pcfs, cpidx))
{
/*!
- * @todo Verify (jlong) retrieval of @c @b bytes for
- * both -m32 and -m64 compilations.
+ * @todo HARMONY-6-jvm-cfmsgs.c-5 Verify (jlong) retrieval
+ * of @c @b bytes for both -m32 and -m64 compilations.
*/
case CONSTANT_Long:
@@ -608,14 +635,20 @@
* ((julong) *pu4l));
*/
-/*! @todo Above logic works, logic below needs testing: */
+/*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-6 Above logic works, logic
+ * below needs testing:
+ */
/* LS word always follows MS word */
prl8 = (rulong *) pu4h;
vall = (jlong) GETRL8(prl8);
- /*! @todo Make format string properly
- reflect 64-bit (rlong)/(jlong) */
+ /*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-7 Make format
+ * string properly reflect 64-bit
+ * (rlong)/(jlong)
+ */
sysDbgMsg(DMLNORM,
fn, "%s %s long=%ld",
msg_hdr,
@@ -624,8 +657,8 @@
break;
/*!
- * @todo Verify (jfloat) retrieval of @c @b bytes for
- * both -m32 and -m64 compilations.
+ * @todo HARMONY-6-jvm-cfmsgs.c-8 Verify (jfloat) retrieval
+ * of @c @b bytes for both -m32 and -m64 compilations.
*/
case CONSTANT_Float:
@@ -642,8 +675,8 @@
break;
/*!
- * @todo Verify (jdouble) retrieval of @c @b bytes for
- * both -m32 and -m64 compilations.
+ * @todo HARMONY-6-jvm-cfmsgs.c-9 Verify (jdouble) retrieval
+ * of @c @b bytes for both -m32 and -m64 compilations.
*/
case CONSTANT_Double:
@@ -665,14 +698,21 @@
* (JBITS * sizeof(u4))) |
* ((julong) *pu4l));
*/
-/*! @todo Above logic works, 64-bit logic below needs testing: */
+
+/*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-10 Above logic works, 64-bit
+ * logic below needs testing:
+ */
/* LS word always follows MS word */
prd8 = (rdouble *) pu4h;
vald = (jdouble) GETRL8((rulong *) prd8);
- /*! @todo Make format string properly
- reflect 64-bit (double)/(jdouble) */
+ /*!
+ * @todo HARMONY-6-jvm-cfmsgs.c-11 Make format
+ * string properly reflect 64-bit
+ * (double)/(jdouble)
+ */
sysDbgMsg(DMLNORM,
fn, "%s %s double=%ld",
msg_hdr,
@@ -681,8 +721,8 @@
break;
/*!
- * @todo Verify (jint) retrieval of @c @b bytes for
- * both -m32 and -m64 compilations.
+ * @todo HARMONY-6-jvm-cfmsgs.c-12 Verify (jint) retrieval
+ * of @c @b bytes for both -m32 and -m64 compilations.
*/
case CONSTANT_Integer:
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/class.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/class.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/class.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/class.h Wed Oct 19 01:44:42 2005
@@ -32,7 +32,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -56,13 +58,16 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(class, h, "$URL$ $Id$");
+ARCH_HEADER_COPYRIGHT_APACHE(class, h,
+"$URL$",
+"$Id$");
#include "object.h"
@@ -76,10 +81,11 @@
* them using the @p @b clsidx index.
*
* @param clsidx Class table index into the global
- * @link #rjvm.class rjvm.class[]@endlink array (via
- * @link #pjvm pjvm->class[]@endlink).
+ * @link #rjvm.class rjvm.class[]@endlink array (via
+ * @link #pjvm pjvm->class[]@endlink).
*
* @returns pointer to a class slot
+ *
*/
#define CLASS(clsidx) pjvm->class[clsidx]
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classfile.h Wed Oct 19 01:44:42 2005
@@ -37,14 +37,16 @@
* and was the basis for the ClassFile structure of this implementation.
*
*
- * @todo Need to verify which web document for the
- * Java 5 class file definition is either "official",
+ * @todo HARMONY-6-jvm-classfile.h-1 Need to verify which web document
+ * for the Java 5 class file definition is either "official",
* actually correct, or is the <em>de facto</em> standard.
*
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -68,20 +70,32 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(classfile, h, "$URL$ $Id$");
-
-/*
- * classfile code depends on packed structures. Change from
- * global project-wide -fpack-struct to local for the
- * structures that need it
+ARCH_HEADER_COPYRIGHT_APACHE(classfile, h,
+"$URL$",
+"$Id$");
+
+/*!
+ * @internal Class file structures and code depend on packed structures.
+ * Change from global project-wide -fpack-struct (GCC version
+ * of structure packing option) to localized pragma for the
+ * structures that need it.
+ *
+ * @todo HARMONY-6-jvm-classfile.h-2 Need to look through class file
+ * code and remove dependency on structure packing in the way
+ * the code is written. The macros from
+ * @link jvm/src/classfile.c classfile.c@endlink that are a
+ * good place to start are
+ * @link ALLOC_CP_INFO() ALLOC_CP_INFO@endlink and
+ * @link ALLOC_CF_ITEM() ALLOC_CF_ITEM@endlink.
+ *
*/
-
#pragma pack(1)
/*!
@@ -110,7 +124,7 @@
/*!
- * @brief constant_pool entry.
+ * @brief @c @b constant_pool entry.
*
* See spec section 4.5.
*
@@ -239,11 +253,12 @@
* the @link #ACC_PUBLIC ACC_xxx@endlink
* definitions */
- u2 name_index; /**< Index into constant_pool of UTF8 string
+ u2 name_index; /**< Index into @c @b constant_pool of UTF8 string
* containing the name of this field */
- u2 descriptor_index; /**< Index into constant_pool of UTF8 string
- * containing the descriptor of this field */
+ u2 descriptor_index; /**< Index into @c @b constant_pool of UTF8
+ * string containing the descriptor of this
+ * field */
u2 attributes_count; /**< Size of @p @b attributes */
@@ -273,8 +288,8 @@
* part of the JVM spec itself, but an implementation detail.
*
* @internal An @p @b oiflagJVM boolean is not needed since
- * @p @b access_flags above contains this information
- * in the @link #ACC_STATIC ACC_STATIC@endlink bit.
+ * @p @b access_flags above contains this information
+ * in the @link #ACC_STATIC ACC_STATIC@endlink bit.
*
*/
struct LOCAL_field_binding
@@ -320,11 +335,12 @@
* the @link #ACC_PUBLIC ACC_xxx@endlink
* definitions */
- u2 name_index; /**< Index into constant_pool of UTF8 string
+ u2 name_index; /**< Index into @c @b constant_pool of UTF8 string
* containing the name of this method */
- u2 descriptor_index; /**< Index into constant_pool of UTF8 string
- * containing the descriptor of this method */
+ u2 descriptor_index; /**< Index into @c @b constant_pool of UTF8
+ * string containing the descriptor of this
+ * method */
u2 attributes_count; /**< Size of @p @b attributes */
@@ -443,12 +459,11 @@
u2 major_version; /**< Major class file version number */
- u2 constant_pool_count; /**< Size of @p @b constant_pool plus one
+ u2 constant_pool_count; /**< Size of @c @b constant_pool plus one
* (which represents the unrepresented
* @c @b java.lang.Object ). Index zero
- * of @p @b constant_pool is this unrepresented
- * slot, and
- * @c @b constant_pool[0] is a NULL
+ * of @c @b constant_pool is this unrepresented
+ * slot, and @c @b constant_pool[0] is a NULL
* pointer.
*/
@@ -473,7 +488,7 @@
* the @link #ACC_PUBLIC ACC_xxx@endlink
* definitions */
- u2 this_class; /**< @b constant_pool index of the class of
+ u2 this_class; /**< @c @b constant_pool index of the class of
* the @c @b this pointer, namely,
* what is the name of this selfsame class as
* found here in the class file. */
@@ -643,6 +658,12 @@
#define CLASSNAME_INTERNAL_DELIMITER_CHAR '/'
#define CLASSNAME_INTERNAL_DELIMITER_STRING "/"
+#define CLASSNAME_INNERCLASS_MARKER_CHAR '$'
+#define CLASSNAME_INNERCLASS_MARKER_STRING "$"
+
+#define CLASSNAME_INNERCLASS_ESCAPE_CHAR '\\'
+#define CLASSNAME_INNERCLASS_ESCAPE_STRING "\\"
+
/*@} */ /* End of grouped definitions */
@@ -1029,10 +1050,12 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
+ *
*/
} LOCAL_String_binding;
@@ -1068,10 +1091,12 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
+ *
*/
} LOCAL_Integer_binding;
@@ -1096,35 +1121,74 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
*/
} LOCAL_Float_binding;
} CONSTANT_Float_info;
-#ifdef CONFIG_WORDWIDTH64
-#define SPFTYPE_INT unsigned int /**< 32-bit value */
-#else
-#define SPFTYPE_INT unsigned int /**< 32-bit value */
-#endif
-
-/*
- * Representation of special case single-precision floating point
- * numbers
- */
-
-#define FLOAT_POSITIVE_INFINITY 0x7f800000
-#define FLOAT_NEGATIVE_INFINITY 0xff800000
-
-#define FLOAT_IS_NAN(sfpval) \
- (((0x7f800001 <= (SPFTYPE_INT) sfpval) && \
- (0x7fffffff >= (SPFTYPE_INT) sfpval)) \
- || \
- ((0xff800001 <= (SPFTYPE_INT) sfpval) && \
- (0xffffffff >= (SPFTYPE_INT) sfpval)))
+/*@} */ /* End of grouped definitions */
+
+/*!
+ * @name Representation of special case single-precision
+ * floating point numbers
+ *
+ */
+/*@{ */ /* Begin grouped definitions */
+
+#define JINT_LARGEST_POSITIVE ((juint) 0x7fffffff)
+#define JINT_LARGEST_NEGATIVE ((juint) 0x80000000)
+
+
+/*!
+ * @todo HARMONY-6-jvm-classfile.h-3 Need to verify the proper
+ * values of single-precision floating point positive zero
+ * and negative zero.
+ *
+ */
+#define JFLOAT_POSITIVE_ZERO ((juint) 0x00000000)
+#define JFLOAT_NEGATIVE_ZERO ((juint) 0x80000000)
+
+
+#define JFLOAT_POSITIVE_INFINITY ((juint) 0x7f800000)
+#define JFLOAT_NEGATIVE_INFINITY ((juint) 0xff800000)
+
+
+#define JFLOAT_NAN_RANGE1_MIN ((juint) 0x7f800001)
+#define JFLOAT_NAN_RANGE1_MAX ((juint) 0x7fffffff)
+
+#define JFLOAT_NAN_RANGE2_MIN ((juint) 0xff800001)
+#define JFLOAT_NAN_RANGE2_MAX ((juint) 0xffffffff)
+
+
+/*!
+ * @brief Determine if a single-precision floating point number
+ * is a @b NAN case, not a number.
+ *
+ * The parameter must be a @link #jlong jlong@endlink representation
+ * of a @link #jfloat jfloat@endlink value as forcibly converted
+ * using @link #FORCE_JINT() FORCE_JINT()@endlink.
+ *
+ *
+ * @param forced_jint @link #jlong jlong@endlink representation of a
+ * single-precision floating point number, per
+ * above instructions.
+ *
+ *
+ * @returns non-zero if @c @b forced_jint is a single-precision
+ * floating point @b NAN value, not a number. Zero otherwise.
+ *
+ */
+#define JFLOAT_IS_NAN(forced_jint) \
+ (((JFLOAT_NAN_RANGE1_MIN <= (juint) (forced_jint)) && \
+ (JFLOAT_NAN_RANGE1_MAX >= (juint) (forced_jint))) \
+ || \
+ ((JFLOAT_NAN_RANGE2_MIN <= (juint) (forced_jint)) && \
+ (JFLOAT_NAN_RANGE2_MAX >= (juint) (forced_jint))))
/*@} */ /* End of grouped definitions */
@@ -1156,10 +1220,11 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
*/
} LOCAL_Long_binding;
@@ -1185,37 +1250,83 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
*/
} LOCAL_Double_binding;
} CONSTANT_Double_info;
-#ifdef CONFIG_WORDWIDTH64
-#define DPFTYPE_LONG unsigned long /**< 64-bit value */
-#define DPFTYPE_INT unsigned int /**< 32-bit value */
-#else
-#define DPFTYPE_LONG unsigned long long /**< 64-bit value */
-#define DPFTYPE_INT unsigned int /**< 32-bit value */
-#endif
-
-/*
- * Representation of special case double-precision floating point
- * numbers
- */
-
-#define DOUBLE_POSITIVE_INFINITY 0x7ff0000000000000L
-#define DOUBLE_NEGATIVE_INFINITY 0xfff0000000000000L
-
-#define DOUBLE_IS_NAN(dfpval) \
- (((0x7ff00000000000001 <= (DPFTYPE_LONG) dfpval) && \
- (0x7fffffffffffffffL >= (DPFTYPE_LONG) dfpval)) || \
- \
- ((0xfff0000000000001L <= (DPFTYPE_INT) dfpval) && \
- (0xffffffffffffffffL >= (DPFTYPE_INT) dfpval)))
+/*@} */ /* End of grouped definitions */
+
+/*!
+ * @name Representation of special case double-precision
+ * floating point numbers
+ *
+ * @note In order to keep GCC from complaining, 'warning' integer
+ * constant is too large for "long" type', these constants
+ * have been presented as expressions instead. It seems
+ * that (long long) constants must be 32-bit values for
+ * 32-bit compilations, but arithmetic may be done on
+ * those expressions without harm.
+ *
+ */
+/*@{ */ /* Begin grouped definitions */
+
+#define JLONG_LARGEST_POSITIVE ((((julong) 0x7fffffff) << 32) | \
+ 0xffffffff)
+#define JLONG_LARGEST_NEGATIVE (((julong) 0x80000000) << 32)
+
+
+/*!
+ * @todo HARMONY-6-jvm-classfile.h-4 Need to verify the proper
+ * values of double-precision floating point positive zero
+ * and negative zero.
+ *
+ */
+#define JDOUBLE_POSITIVE_ZERO (((julong) 0x00000000) << 32)
+#define JDOUBLE_NEGATIVE_ZERO (((julong) 0x80000000) << 32)
+
+
+#define JDOUBLE_POSITIVE_INFINITY (((julong) 0x7ff00000) << 32)
+#define JDOUBLE_NEGATIVE_INFINITY (((julong) 0xfff00000) << 32)
+
+
+#define JDOUBLE_NAN_RANGE1_MIN ((((julong) 0x7ff00000) << 32) | 1)
+#define JDOUBLE_NAN_RANGE1_MAX ((((julong) 0x7fffffff) << 32) | \
+ 0xffffffff)
+
+#define JDOUBLE_NAN_RANGE2_MIN ((((julong) 0xfff00000) << 32) | 1)
+#define JDOUBLE_NAN_RANGE2_MAX ((((julong) 0xffffffff) << 32) | \
+ 0xffffffff)
+
+/*!
+ * @brief Determine if a double-precision floating point number
+ * is a @b NAN case, not a number.
+ *
+ * The parameter must be a @link #jlong jlong@endlink representation
+ * of a @link #jdouble jdouble@endlink value as forcibly converted
+ * using @link #FORCE_JLONG() FORCE_JLONG()@endlink.
+ *
+ *
+ * @param forced_jlong @link #jlong jlong@endlink representation of a
+ * double-precision floating point number, per
+ * above instructions
+ *
+ *
+ * @returns non-zero if @c @b dpfjlong is a double-precision floating
+ * point @b NAN value, not a number. Zero otherwise.
+ *
+ */
+#define JDOUBLE_IS_NAN(forced_jlong) \
+ (((JDOUBLE_NAN_RANGE1_MIN <= (julong) forced_jlong) && \
+ (JDOUBLE_NAN_RANGE1_MAX >= (julong) forced_jlong)) || \
+ \
+ ((JDOUBLE_NAN_RANGE2_MIN <= (julong) forced_jlong) && \
+ (JDOUBLE_NAN_RANGE2_MAX >= (julong) forced_jlong)))
/*@} */ /* End of grouped definitions */
@@ -1247,10 +1358,11 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
*/
} LOCAL_NameAndType_binding;
@@ -1308,8 +1420,8 @@
* </ul>
*
*
- * @todo: Clarify the hextuple-byte UTF-16 encoding requirements, per
- * above commentary.
+ * @todo HARMONY-6-jvm-classfile.h-5 Clarify the hextuple-byte UTF-16
+ * encoding requirements, per above commentary.
*
*/
@@ -1437,10 +1549,11 @@
{
/*!
* @internal There is not late binding for this structure.
- * However, to maintain compatibility with the
- * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink macro
- * in @link jvm/src/classfile.c classfile.c@endlink,
- * this empty structure is provided.
+ * However, to maintain compatibility with the
+ * @link #ALLOC_CP_INFO() ALLOC_CP_INFO()@endlink
+ * macro in @link jvm/src/classfile.c
+ classfile.c@endlink, this empty structure
+ * is provided.
*/
} LOCAL_Utf8_binding;
@@ -2343,7 +2456,7 @@
/*@{ */ /* Begin grouped definitions */
#define CODE_CONSTRAINT_CODE_LENGTH_MIN 1 /**< Array size bounds,bytes*/
-#define CODE_CONSTRAINT_CODE_LENGTH_MAX 65535
+#define CODE_CONSTRAINT_CODE_LENGTH_MAX 0xffff /**< Maximum PC value */
#define CODE_CONSTRAINT_START_PC 0 /**< Start PC location */
@@ -2545,8 +2658,9 @@
ClassFile *pcfs,
attribute_info_dup *atr);
-/*
- * restore packing
+/*!
+ * @internal Remove effects of packing pragma on structure packing
+ *
*/
#pragma pack()
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classutil.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classutil.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classutil.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/classutil.c Wed Oct 19 01:44:42 2005
@@ -7,17 +7,20 @@
*
*
* @internal Due to the fact that the implementation of the Java class
- * and the supporting rclass structure is deeply embedded in the core
- * of the development of this software, this file has contents
- * that come and go during development. Some functions get
- * staged here before deciding where they @e really go; some
- * are interim functions for debugging, some were glue that eventually
- * went away. Be careful to remove prototypes to such functions
- * from the appropriate header file.
+ * and the supporting rclass structure is deeply embedded in
+ * the core of the development of this software, this file
+ * has contents that come and go during development. Some
+ * functions get staged here before deciding where they
+ * @e really go; some are interim functions for debugging,
+ * some were glue that eventually went away. Be careful to
+ * remove prototypes to such functions from the appropriate
+ * header file.
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -41,6 +44,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -48,7 +52,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(classutil, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(classutil, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/exit.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/exit.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/exit.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/exit.h Wed Oct 19 01:44:42 2005
@@ -17,7 +17,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -41,13 +43,16 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(exit, h, "$URL$ $Id$");
+ARCH_HEADER_COPYRIGHT_APACHE(exit, h,
+"$URL$",
+"$Id$");
/*!
@@ -147,19 +152,63 @@
/*@} */ /* End of grouped definitions */
+/*!
+ * @brief Global handler setup for fatal JVM errors-- implements
+ * @c @b setjmp(3).
+ *
+ * @b Parameters: @link #rvoid rvoid@endlink
+ *
+ *
+ * @returns From normal setup, integer @link
+ #EXIT_MAIN_OKAY EXIT_MAIN_OKAY@endlink. Otherwise,
+ * return error code from @link #exit_jvm() exit_jvm()@endlink,
+ * typically using a code found in
+ * @link jvm/src/exit.h exit.h@endlink
+ *
+ * @attention See comments in @link jvm/src/portable_jmp_buf.c
+ portable_jmp_buf.c@endlink as to why this @e cannot
+ * be a function call.
+ *
+ */
+#define EXIT_INIT() PORTABLE_SETJMP(&portable_exit_general_failure)
+
+
+/*!
+ * @brief Global handler setup (part 2) for fatal
+ * @link jvm_init() jvm_init()@endlink errors and other
+ * @c @b java.lang.Throwable events-- implements
+ * @c @b setjmp(3).
+ *
+ *
+ * This macro @e must be used in conjunction with
+ * @link exit_exception_setup() exit_exception_setup()@endlink
+ * to properly arm handler for throwing @c @b java.lang.Error and
+ * @c @b java.lang.Exception throwable events.
+ *
+ * @b Parameters: @link #rvoid rvoid@endlink
+ *
+ *
+ * @returns From normal setup, integer
+ * @link #EXIT_MAIN_OKAY EXIT_MAIN_OKAY@endlink.
+ * Otherwise, return
+ * @link #exit_code_enum exit code enumeration@endlink from
+ * @link #exit_jvm() exit_jvm()@endlink.
+ *
+ */
+#define EXIT_EXCEPTION_SETUP() \
+ PORTABLE_SETJMP(&portable_exit_LinkageError)
+
+
/* Prototypes for functions in 'exit.c' */
extern int exit_init(rvoid);
extern rchar *exit_get_name(exit_code_enum code);
-extern rchar *exit_LinkageError_subclass;
-extern jvm_thread_index exit_LinkageError_thridx;
-extern int exit_exception_setup(rvoid);
+extern rchar *exit_LinkageError_subclass;
+extern jvm_thread_index exit_LinkageError_thridx;
+extern rvoid exit_exception_setup(rvoid);
extern rvoid exit_throw_exception(exit_code_enum rc, rchar *preason);
-
-extern int exit_end_thread_setup(rvoid);
-extern rvoid exit_end_thread_test(jvm_thread_index thridx);
extern rvoid exit_jvm(exit_code_enum rc);
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/field.h
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/field.h?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/field.h (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/field.h Wed Oct 19 01:44:42 2005
@@ -9,7 +9,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -33,13 +35,16 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
*
*/
-ARCH_COPYRIGHT_APACHE(field, h, "$URL$ $Id$");
+ARCH_HEADER_COPYRIGHT_APACHE(field, h,
+"$URL$",
+"$Id$");
#include "jvalue.h"
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/gc_stub.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/gc_stub.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/gc_stub.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/gc_stub.c Wed Oct 19 01:44:42 2005
@@ -18,7 +18,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -42,6 +44,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -49,7 +52,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(gc_stub, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(gc_stub, c,
+"$URL$",
+"$Id$");
#if defined(CONFIG_GC_TYPE_STUB) || defined(CONFIG_COMPILE_ALL_OPTIONS)
@@ -120,11 +125,13 @@
* @b Parameters: @link #rvoid rvoid@endlink
*
*
- * @returns @link #rvoid rvoid@endlink
+ * @returns @link #rvoid rvoid@endlink
*
*/
rvoid gc_init_stub()
{
+ ARCH_FUNCTION_NAME(gc_init_stub);
+
/* Nothing to do in this model */
return;
@@ -152,6 +159,8 @@
rvoid gc_run_stub(rboolean rmref)
{
+ ARCH_FUNCTION_NAME(gc_run_stub);
+
jvm_class_index clsidx;
for (clsidx = jvm_class_index_null;
@@ -176,7 +185,10 @@
/* Look only at slots marked as ready for garbage collection */
if (CLASS_STATUS_GCREQ & status)
{
- /*! @todo Write the object GC algorithm */
+ /*!
+ * @todo HARMONY-6-jvm-gc_stub.c-1 Write the class
+ * GC algorithm
+ */
continue;
}
@@ -206,7 +218,10 @@
/* Look only at slots marked as ready for garbage collection */
if (OBJECT_STATUS_GCREQ & status)
{
- /*! @todo Write the object GC algorithm */
+ /*!
+ * @todo HARMONY-6-jvm-gc_stub.c-2 Write the object
+ * GC algorithm
+ */
continue;
}
@@ -244,6 +259,8 @@
*/
rboolean gc_class_new_stub(jvm_class_index clsidxNEW)
{
+ ARCH_FUNCTION_NAME(gc_class_new_stub);
+
return(rfalse);
} /* END of gc_class_new_stub() */
@@ -275,6 +292,8 @@
rboolean gc_class_reload_stub(jvm_class_index clsidxOLD,
jvm_class_index clsidxNEW)
{
+ ARCH_FUNCTION_NAME(gc_class_reload_stub);
+
return(rfalse);
} /* END of gc_class_reload_stub() */
@@ -309,6 +328,8 @@
rboolean gc_class_mkref_from_class_stub(jvm_class_index clsidxFROM,
jvm_class_index clsidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_mkref_from_class_stub);
+
return(rfalse);
} /* END of gc_class_mkref_from_class_stub() */
@@ -340,6 +361,8 @@
rboolean gc_class_mkref_from_object_stub(jvm_object_hash objhashFROM,
jvm_class_index clsidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_mkref_from_object_stub);
+
return(rfalse);
} /* END of gc_class_mkref_from_object_stub() */
@@ -372,6 +395,8 @@
rboolean gc_class_rmref_from_class_stub(jvm_class_index clsidxFROM,
jvm_class_index clsidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_rmref_from_class_stub);
+
return(rfalse);
} /* END of gc_class_rmref_from_class_stub() */
@@ -404,6 +429,8 @@
rboolean gc_class_rmref_from_object_stub(jvm_object_hash objhashFROM,
jvm_class_index clsidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_rmref_from_object_stub);
+
return(rfalse);
} /* END of gc_class_rmref_from_object_stub() */
@@ -435,6 +462,8 @@
rboolean gc_class_field_mkref_stub(jvm_class_index clsidxTO,
jvm_field_lookup_index csflidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_firld_mkref_stub);
+
return(rfalse);
} /* END of gc_class_field_mkref_stub() */
@@ -466,6 +495,8 @@
rboolean gc_class_field_rmref_stub(jvm_class_index clsidxTO,
jvm_field_lookup_index csflidxTO)
{
+ ARCH_FUNCTION_NAME(gc_class_field_rmref_stub);
+
return(rfalse);
} /* END of gc_class_field_rmref_stub() */
@@ -506,6 +537,8 @@
rboolean gc_class_delete_stub(jvm_class_index clsidxOLD,
rboolean delete_class)
{
+ ARCH_FUNCTION_NAME(gc_class_delete_stub);
+
return(rfalse);
} /* END of gc_class_delete_stub() */
@@ -533,6 +566,8 @@
*/
rboolean gc_object_new_stub(jvm_object_hash objhashNEW)
{
+ ARCH_FUNCTION_NAME(gc_object_new_stub);
+
return(rfalse);
} /* END of gc_object_new_stub() */
@@ -562,6 +597,8 @@
rboolean gc_object_mkref_from_class_stub(jvm_class_index clsidxFROM,
jvm_object_hash objhashTO)
{
+ ARCH_FUNCTION_NAME(gc_object_mkref_from_class_stub);
+
return(rfalse);
} /* END of gc_object_mkref_from_class_stub() */
@@ -594,6 +631,8 @@
rboolean gc_object_mkref_from_object_stub(jvm_object_hash objhashFROM,
jvm_object_hash objhashTO)
{
+ ARCH_FUNCTION_NAME(gc_object_mkref_from_object_stub);
+
return(rfalse);
} /* END of gc_object_mkref_from_object_stub() */
@@ -623,6 +662,8 @@
rboolean gc_object_rmref_from_class_stub(jvm_class_index clsidxFROM,
jvm_object_hash objhashTO)
{
+ ARCH_FUNCTION_NAME(gc_object_rmref_from_class_stub);
+
return(rfalse);
} /* END of gc_object_rmref_from_class_stub() */
@@ -655,6 +696,8 @@
rboolean gc_object_rmref_from_object_stub(jvm_object_hash objhashFROM,
jvm_object_hash objhashTO)
{
+ ARCH_FUNCTION_NAME(gc_object_rmref_from_object_stub);
+
return(rfalse);
} /* END of gc_object_rmref_from_object_stub() */
@@ -686,6 +729,8 @@
rboolean gc_object_field_mkref_stub(jvm_object_hash objhashTO,
jvm_field_lookup_index oiflidxTO)
{
+ ARCH_FUNCTION_NAME(gc_object_field_mkref_stub);
+
return(rfalse);
} /* END of gc_object_field_mkref_stub() */
@@ -717,6 +762,8 @@
rboolean gc_object_field_rmref_stub(jvm_object_hash objhashTO,
jvm_field_lookup_index oiflidxTO)
{
+ ARCH_FUNCTION_NAME(gc_object_field_rmref_stub);
+
return(rfalse);
} /* END of gc_object_field_rmref_stub() */
@@ -732,8 +779,8 @@
* finalization instead. The reverse of gc_object_new_stub().
*
* @note Since this function is the reverse of gc_object_new_stub(), the
- * @link #rclass.pgarbage rclass.pgarbage@endlink pointer must be
- * freed by @link #HEAP_DATA_FREE() HEAP_DATA_FREE@endlink.
+ * @link #rclass.pgarbage rclass.pgarbage@endlink pointer must be
+ * freed by @link #HEAP_DATA_FREE() HEAP_DATA_FREE@endlink.
*
*
* @param objhashOLD Object table hash of defunct object instance.
@@ -751,6 +798,8 @@
*/
rboolean gc_object_delete_stub(jvm_object_hash objhashOLD)
{
+ ARCH_FUNCTION_NAME(gc_object_delete_stub);
+
return(rfalse);
} /* END of gc_object_delete_stub() */
@@ -784,6 +833,8 @@
*/
rvoid *gc_stack_new_stub(jvm_thread_index thridxNEW, rint num_locals)
{
+ ARCH_FUNCTION_NAME(gc_stack_new_stub);
+
return((rvoid *) rnull);
} /* END of gc_stack_new_stub() */
@@ -815,6 +866,8 @@
rboolean gc_stack_mkref_from_jvm_stub(jvm_thread_index thridxFROM,
jint frmidxTO)
{
+ ARCH_FUNCTION_NAME(gc_stack_mkref_from_jvm_stub);
+
return(rfalse);
} /* END of gc_stack_mkref_from_jvm_stub() */
@@ -846,6 +899,8 @@
rboolean gc_stack_rmref_from_jvm_stub(jvm_thread_index thridxFROM,
jint frmidxTO)
{
+ ARCH_FUNCTION_NAME(gc_stack_rmref_from_jvm_stub);
+
return(rfalse);
} /* END of gc_stack_rmref_from_jvm_stub() */
@@ -891,6 +946,8 @@
rvoid **ppgcs,
jint *plocal_teardown)
{
+ ARCH_FUNCTION_NAME(gc_stack_delete_stub);
+
return(rfalse);
} /* END of gc_stack_delete_stub() */
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlClass.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlClass.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlClass.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlClass.c Wed Oct 19 01:44:42 2005
@@ -6,7 +6,9 @@
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -30,6 +32,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -37,7 +40,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(jlClass, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(jlClass, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -53,12 +58,13 @@
* as the first parameter.
*
* @note These @c @b java.lang.Class methods are unusual in that
- * they does not require a @c @b jobject (in parlance of this
- * implementation, a @link #jvm_object_hash jvm_object_hash@endlink)
- * to run because they are declared as @c @b static methods. As
- * implemented here, the usual @b objhashthis parameter is therefore
- * replaced by * @b clsidxthis. The thread context is located in
- * @link #CURRENT_THREAD CURRENT_THREAD@endlink.
+ * they does not require a @c @b jobject (in parlance of this
+ * implementation, a
+ * @link #jvm_object_hash jvm_object_hash@endlink) to run because
+ * they are declared as @c @b static methods. As implemented
+ * here, the usual @b objhashthis parameter is therefore
+ * replaced by @b clsidxthis. The thread context is located in
+ * @link #CURRENT_THREAD CURRENT_THREAD@endlink.
*
*/
@@ -92,6 +98,8 @@
jboolean jlClass_isArray(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlClass_isArray);
+
jvm_class_index clsidx = OBJECT_CLASS_LINKAGE(objhashthis)->clsidx;
if (jvm_class_index_null == clsidx)
@@ -121,6 +129,8 @@
jboolean jlClass_isPrimative(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlClass_isPrimative);
+
jvm_class_index clsidx = OBJECT_CLASS_LINKAGE(objhashthis)->clsidx;
if (jvm_class_index_null == clsidx)
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlObject.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlObject.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlObject.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlObject.c Wed Oct 19 01:44:42 2005
@@ -3,19 +3,22 @@
*
* @brief Native implementation of @c @b java.lang.Object
*
- * @todo Perform intelligent check on input parameter
- * @b objhash range for all functions.
+ * @todo HARMONY-6-jvm-jlObject.c-1 Perform intelligent check on
+ * input parameter @b objhash range for all functions.
*
- * @todo In real life, the @b objhashthis values and @b clsidxthis
- * values will be valid or these functions could not be
- * invoked since these data types are @e mandatory for
- * referencing them. This probably means that the parameter
- * valididty checking could probably be relaxed.
+ * @todo HARMONY-6-jvm-jlObject.c-2 In real life, the @b objhashthis
+ * values and @b clsidxthis values will be valid or these
+ * functions could not be invoked since these data types
+ * are @e mandatory for referencing them. This probably
+ * means that the parameter valididty checking could probably
+ * be relaxed.
*
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -39,6 +42,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -46,7 +50,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(jlObject, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(jlObject, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -63,12 +69,13 @@
* as the first parameter.
*
* @note These @c @b java.lang.Object methods are unusual in that
- * they does not require a @c @b jobject (in parlance of this
- * implementation, a @link #jvm_object_hash jvm_object_hash@endlink)
- * to run because they are declared as @c @b static methods. As
- * implemented here, the usual @b objhashthis parameter is therefore
- * replaced by * @b clsidxthis. The thread context is located in
- * @link #CURRENT_THREAD CURRENT_THREAD@endlink.
+ * they does not require a @c @b jobject (in parlance of this
+ * implementation, a
+ * @link #jvm_object_hash jvm_object_hash@endlink)
+ * to run because they are declared as @c @b static methods. As
+ * implemented here, the usual @b objhashthis parameter is
+ * therefore replaced by @b clsidxthis. The thread context is
+ * located in @link #CURRENT_THREAD CURRENT_THREAD@endlink.
*
*/
@@ -101,6 +108,8 @@
*/
jvm_object_hash jlObject_getClass(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlObject_getClass);
+
return(
CLASS(OBJECT_CLASS_LINKAGE(objhashthis)->clsidx).class_objhash);
@@ -120,6 +129,8 @@
*/
jvm_object_hash jlObject_hashCode(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlObject_hashCode);
+
return(objhashthis);
} /* END of jlObject_hashCode() */
@@ -160,7 +171,8 @@
if current thread does not own the object's monitor lock@endlink.
*
*
- * @todo Make sure thread interruption logic below here is working.
+ * @todo HARMONY-6-jvm-jlObject.c-3 Make sure thread interruption
+ * logic below here is working.
*
*/
@@ -173,6 +185,8 @@
jvoid jlObject_wait4ever(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlObject_wait4ever);
+
if (((rtrue == VERIFY_OBJECT_THREAD_LINKAGE(objhashthis)) &&
(rtrue == VERIFY_THREAD_LINKAGE(
OBJECT_THREAD_LINKAGE(objhashthis)->thridx))) &&
@@ -207,6 +221,8 @@
jvoid jlObject_waittimed(jvm_object_hash objhashthis,
jlong sleeptime)
{
+ ARCH_FUNCTION_NAME(jlObject_waittimed);
+
if (((rtrue == VERIFY_OBJECT_THREAD_LINKAGE(objhashthis)) &&
(rtrue == VERIFY_THREAD_LINKAGE(
OBJECT_THREAD_LINKAGE(objhashthis)->thridx))) &&
@@ -244,18 +260,25 @@
*
* @returns object hash of object clone.
*
- * @todo then need to throw SecurityException in
- * outer JVM loop when @link #jfalse jfalse@endlink.
+ *
+ * @todo HARMONY-6-jvm-jlObject.c-4 then need to throw
+ * @b SecurityException in outer JVM loop when
+ * @link #jfalse jfalse@endlink.
*
*/
jvm_object_hash jlObject_clone(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlObject_clone);
+
if ((rtrue == VERIFY_OBJECT_THREAD_LINKAGE(objhashthis)) &&
(rtrue == VERIFY_THREAD_LINKAGE(
OBJECT_THREAD_LINKAGE(objhashthis)->thridx)))
{
- /* @todo Need to finish this implementation */
+ /*!
+ * @todo HARMONY-6-jvm-jlObject.c-5 Need to finish
+ * this implementation
+ */
return(jvm_object_hash_null);
}
Modified: incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlString.c
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlString.c?rev=326482&r1=326481&r2=326482&view=diff
==============================================================================
--- incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlString.c (original)
+++ incubator/harmony/enhanced/trunk/sandbox/contribs/bootjvm/bootJVM/jvm/src/jlString.c Wed Oct 19 01:44:42 2005
@@ -3,13 +3,21 @@
*
* @brief Native implementation of @c @b java.lang.String
*
- * @todo Perform intelligent check on input parameter
- * @b objhash range for all functions.
+ * @todo HARMONY-6-jvm-jlString.c-1 Perform intelligent check on
+ * input parameter @b objhash range for all functions.
+ *
+ * @todo HARMONY-6-jvm-jlString.c-2 Need to write a function that
+ * searches all java.lang.String objects when creating one
+ * and return object hash of any existing string that
+ * has @e exactly the same contents so as to @e never
+ * duplicate strings and thus meet spec requirements.
*
*
* @section Control
*
- * \$URL$ \$Id$
+ * \$URL$
+ *
+ * \$Id$
*
* Copyright 2005 The Apache Software Foundation
* or its licensors, as applicable.
@@ -33,6 +41,7 @@
* @date \$LastChangedDate$
*
* @author \$LastChangedBy$
+ *
* Original code contributed by Daniel Lydick on 09/28/2005.
*
* @section Reference
@@ -40,7 +49,9 @@
*/
#include "arch.h"
-ARCH_COPYRIGHT_APACHE(jlString, c, "$URL$ $Id$");
+ARCH_SOURCE_COPYRIGHT_APACHE(jlString, c,
+"$URL$",
+"$Id$");
#include "jvmcfg.h"
@@ -55,12 +66,13 @@
* as the first parameter.
*
* @note These @c @b java.lang.String methods are unusual in that
- * they does not require a @c @b jobject (in parlance of this
- * implementation, a @link #jvm_object_hash jvm_object_hash@endlink)
- * to run because they are declared as @c @b static methods. As
- * implemented here, the usual @b objhashthis parameter is therefore
- * replaced by * @b clsidxthis. The thread context is located in
- * @link #CURRENT_THREAD CURRENT_THREAD@endlink.
+ * they does not require a @c @b jobject (in parlance of this
+ * implementation, a
+ * @link #jvm_object_hash jvm_object_hash@endlink)
+ * to run because they are declared as @c @b static methods. As
+ * implemented here, the usual @b objhashthis parameter is
+ * therefore replaced by @b clsidxthis. The thread context is
+ * located in @link #CURRENT_THREAD CURRENT_THREAD@endlink.
*
*/
@@ -94,12 +106,14 @@
jvm_object_hash jlString_intern(jvm_object_hash objhashthis)
{
+ ARCH_FUNCTION_NAME(jlString_intern);
+
if (jvm_object_hash_null == objhashthis)
{
return(jvm_object_hash_null);
}
- /*! @todo Is this correct? */
+ /*! @todo HARMONY-6-jvm-jlString.c-3 Is this correct? */
return(objhashthis);
} /* END of jlString_intern() */