< prev index next >

src/share/vm/classfile/vmSymbols.hpp

Print this page




   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
  26 #define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
  27 
  28 #include "oops/symbol.hpp"
  29 #include "memory/iterator.hpp"
  30 #include "trace/traceMacros.hpp"

  31 
  32 // The class vmSymbols is a name space for fast lookup of
  33 // symbols commonly used in the VM.
  34 //
  35 // Sample usage:
  36 //
  37 //   Symbol* obj       = vmSymbols::java_lang_Object();
  38 
  39 
  40 // Useful sub-macros exported by this header file:
  41 
  42 #define VM_SYMBOL_ENUM_NAME(name)    name##_enum
  43 #define VM_INTRINSIC_IGNORE(id, class, name, sig, flags) /*ignored*/
  44 #define VM_SYMBOL_IGNORE(id, name)                       /*ignored*/
  45 #define VM_ALIAS_IGNORE(id, id2)                         /*ignored*/
  46 
  47 
  48 // Mapping function names to values. New entries should be added below.
  49 
  50 #define VM_SYMBOLS_DO(template, do_alias)                                                         \


 589   template(createMemoryManager_name,                   "createMemoryManager")                                     \
 590   template(createGarbageCollector_name,                "createGarbageCollector")                                  \
 591   template(createMemoryPool_signature,                 "(Ljava/lang/String;ZJJ)Ljava/lang/management/MemoryPoolMXBean;") \
 592   template(createMemoryManager_signature,              "(Ljava/lang/String;)Ljava/lang/management/MemoryManagerMXBean;") \
 593   template(createGarbageCollector_signature,           "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMXBean;") \
 594   template(addThreadDumpForMonitors_name,              "addThreadDumpForMonitors")                                \
 595   template(addThreadDumpForSynchronizers_name,         "addThreadDumpForSynchronizers")                           \
 596   template(addThreadDumpForMonitors_signature,         "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;[I)V") \
 597   template(addThreadDumpForSynchronizers_signature,    "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;)V")   \
 598                                                                                                                   \
 599   /* JVMTI/java.lang.instrument support and VM Attach mechanism */                                                \
 600   template(sun_misc_VMSupport,                         "sun/misc/VMSupport")                                      \
 601   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
 602   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
 603   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \
 604   template(serializePropertiesToByteArray_signature,   "()[B")                                                    \
 605   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
 606   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
 607   template(classLoader_name,                           "classLoader")                                             \
 608                                                                                                                   \
 609   /* trace signatures */                                                                                          \
 610   TRACE_TEMPLATES(template)                                                                                       \
 611                                                                                                                   \
 612   /*end*/
 613 
 614 // Here are all the intrinsics known to the runtime and the CI.
 615 // Each intrinsic consists of a public enum name (like _hashCode),
 616 // followed by a specification of its klass, name, and signature:
 617 //    template(<id>,  <klass>,  <name>, <sig>, <FCODE>)
 618 //
 619 // If you add an intrinsic here, you must also define its name
 620 // and signature as members of the VM symbols.  The VM symbols for
 621 // the intrinsic name and signature may be defined above.
 622 //
 623 // Because the VM_SYMBOLS_DO macro makes reference to VM_INTRINSICS_DO,
 624 // you can also define an intrinsic's name and/or signature locally to the
 625 // intrinsic, if this makes sense.  (It often does make sense.)
 626 //
 627 // For example:
 628 //    do_intrinsic(_foo,  java_lang_Object,  foo_name, foo_signature, F_xx)
 629 //     do_name(     foo_name, "foo")
 630 //     do_signature(foo_signature, "()F")


 719   do_intrinsic(_bitCount_i,               java_lang_Integer,      bitCount_name,            int_int_signature,   F_S)   \
 720   do_intrinsic(_bitCount_l,               java_lang_Long,         bitCount_name,            long_int_signature,  F_S)   \
 721                                                                                                                         \
 722   do_intrinsic(_reverseBytes_i,           java_lang_Integer,      reverseBytes_name,        int_int_signature,   F_S)   \
 723    do_name(     reverseBytes_name,                               "reverseBytes")                                        \
 724   do_intrinsic(_reverseBytes_l,           java_lang_Long,         reverseBytes_name,        long_long_signature, F_S)   \
 725     /*  (symbol reverseBytes_name defined above) */                                                                     \
 726   do_intrinsic(_reverseBytes_c,           java_lang_Character,    reverseBytes_name,        char_char_signature, F_S)   \
 727     /*  (symbol reverseBytes_name defined above) */                                                                     \
 728   do_intrinsic(_reverseBytes_s,           java_lang_Short,        reverseBytes_name,        short_short_signature, F_S) \
 729     /*  (symbol reverseBytes_name defined above) */                                                                     \
 730                                                                                                                         \
 731   do_intrinsic(_identityHashCode,         java_lang_System,       identityHashCode_name, object_int_signature,   F_S)   \
 732    do_name(     identityHashCode_name,                           "identityHashCode")                                    \
 733   do_intrinsic(_currentTimeMillis,        java_lang_System,       currentTimeMillis_name, void_long_signature,   F_S)   \
 734                                                                                                                         \
 735    do_name(     currentTimeMillis_name,                          "currentTimeMillis")                                   \
 736   do_intrinsic(_nanoTime,                 java_lang_System,       nanoTime_name,          void_long_signature,   F_S)   \
 737    do_name(     nanoTime_name,                                   "nanoTime")                                            \
 738                                                                                                                         \
 739   TRACE_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias)                                             \
 740                                                                                                                         \
 741   do_intrinsic(_arraycopy,                java_lang_System,       arraycopy_name, arraycopy_signature,           F_S)   \
 742    do_name(     arraycopy_name,                                  "arraycopy")                                           \
 743    do_signature(arraycopy_signature,                             "(Ljava/lang/Object;ILjava/lang/Object;II)V")          \
 744   do_intrinsic(_isInterrupted,            java_lang_Thread,       isInterrupted_name, isInterrupted_signature,   F_R)   \
 745    do_name(     isInterrupted_name,                              "isInterrupted")                                       \
 746    do_signature(isInterrupted_signature,                         "(Z)Z")                                                \
 747   do_intrinsic(_currentThread,            java_lang_Thread,       currentThread_name, currentThread_signature,   F_S)   \
 748    do_name(     currentThread_name,                              "currentThread")                                       \
 749    do_signature(currentThread_signature,                         "()Ljava/lang/Thread;")                                \
 750                                                                                                                         \
 751   /* reflective intrinsics, for java/lang/Class, etc. */                                                                \
 752   do_intrinsic(_isAssignableFrom,         java_lang_Class,        isAssignableFrom_name, class_boolean_signature, F_RN) \
 753    do_name(     isAssignableFrom_name,                           "isAssignableFrom")                                    \
 754   do_intrinsic(_isInstance,               java_lang_Class,        isInstance_name, object_boolean_signature,     F_RN)  \
 755    do_name(     isInstance_name,                                 "isInstance")                                          \
 756   do_intrinsic(_getModifiers,             java_lang_Class,        getModifiers_name, void_int_signature,         F_RN)  \
 757    do_name(     getModifiers_name,                               "getModifiers")                                        \
 758   do_intrinsic(_isInterface,              java_lang_Class,        isInterface_name, void_boolean_signature,      F_RN)  \
 759    do_name(     isInterface_name,                                "isInterface")                                         \




   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
  26 #define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
  27 
  28 #include "jfr/support/jfrIntrinsics.hpp"
  29 #include "memory/iterator.hpp"
  30 #include "oops/symbol.hpp"
  31 #include "utilities/macros.hpp"
  32 
  33 // The class vmSymbols is a name space for fast lookup of
  34 // symbols commonly used in the VM.
  35 //
  36 // Sample usage:
  37 //
  38 //   Symbol* obj       = vmSymbols::java_lang_Object();
  39 
  40 
  41 // Useful sub-macros exported by this header file:
  42 
  43 #define VM_SYMBOL_ENUM_NAME(name)    name##_enum
  44 #define VM_INTRINSIC_IGNORE(id, class, name, sig, flags) /*ignored*/
  45 #define VM_SYMBOL_IGNORE(id, name)                       /*ignored*/
  46 #define VM_ALIAS_IGNORE(id, id2)                         /*ignored*/
  47 
  48 
  49 // Mapping function names to values. New entries should be added below.
  50 
  51 #define VM_SYMBOLS_DO(template, do_alias)                                                         \


 590   template(createMemoryManager_name,                   "createMemoryManager")                                     \
 591   template(createGarbageCollector_name,                "createGarbageCollector")                                  \
 592   template(createMemoryPool_signature,                 "(Ljava/lang/String;ZJJ)Ljava/lang/management/MemoryPoolMXBean;") \
 593   template(createMemoryManager_signature,              "(Ljava/lang/String;)Ljava/lang/management/MemoryManagerMXBean;") \
 594   template(createGarbageCollector_signature,           "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMXBean;") \
 595   template(addThreadDumpForMonitors_name,              "addThreadDumpForMonitors")                                \
 596   template(addThreadDumpForSynchronizers_name,         "addThreadDumpForSynchronizers")                           \
 597   template(addThreadDumpForMonitors_signature,         "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;[I)V") \
 598   template(addThreadDumpForSynchronizers_signature,    "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;)V")   \
 599                                                                                                                   \
 600   /* JVMTI/java.lang.instrument support and VM Attach mechanism */                                                \
 601   template(sun_misc_VMSupport,                         "sun/misc/VMSupport")                                      \
 602   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
 603   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
 604   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \
 605   template(serializePropertiesToByteArray_signature,   "()[B")                                                    \
 606   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
 607   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
 608   template(classLoader_name,                           "classLoader")                                             \
 609                                                                                                                   \
 610   /* jfr signatures */                                                                                            \
 611   JFR_TEMPLATES(template)                                                                                         \
 612                                                                                                                   \
 613   /*end*/
 614 
 615 // Here are all the intrinsics known to the runtime and the CI.
 616 // Each intrinsic consists of a public enum name (like _hashCode),
 617 // followed by a specification of its klass, name, and signature:
 618 //    template(<id>,  <klass>,  <name>, <sig>, <FCODE>)
 619 //
 620 // If you add an intrinsic here, you must also define its name
 621 // and signature as members of the VM symbols.  The VM symbols for
 622 // the intrinsic name and signature may be defined above.
 623 //
 624 // Because the VM_SYMBOLS_DO macro makes reference to VM_INTRINSICS_DO,
 625 // you can also define an intrinsic's name and/or signature locally to the
 626 // intrinsic, if this makes sense.  (It often does make sense.)
 627 //
 628 // For example:
 629 //    do_intrinsic(_foo,  java_lang_Object,  foo_name, foo_signature, F_xx)
 630 //     do_name(     foo_name, "foo")
 631 //     do_signature(foo_signature, "()F")


 720   do_intrinsic(_bitCount_i,               java_lang_Integer,      bitCount_name,            int_int_signature,   F_S)   \
 721   do_intrinsic(_bitCount_l,               java_lang_Long,         bitCount_name,            long_int_signature,  F_S)   \
 722                                                                                                                         \
 723   do_intrinsic(_reverseBytes_i,           java_lang_Integer,      reverseBytes_name,        int_int_signature,   F_S)   \
 724    do_name(     reverseBytes_name,                               "reverseBytes")                                        \
 725   do_intrinsic(_reverseBytes_l,           java_lang_Long,         reverseBytes_name,        long_long_signature, F_S)   \
 726     /*  (symbol reverseBytes_name defined above) */                                                                     \
 727   do_intrinsic(_reverseBytes_c,           java_lang_Character,    reverseBytes_name,        char_char_signature, F_S)   \
 728     /*  (symbol reverseBytes_name defined above) */                                                                     \
 729   do_intrinsic(_reverseBytes_s,           java_lang_Short,        reverseBytes_name,        short_short_signature, F_S) \
 730     /*  (symbol reverseBytes_name defined above) */                                                                     \
 731                                                                                                                         \
 732   do_intrinsic(_identityHashCode,         java_lang_System,       identityHashCode_name, object_int_signature,   F_S)   \
 733    do_name(     identityHashCode_name,                           "identityHashCode")                                    \
 734   do_intrinsic(_currentTimeMillis,        java_lang_System,       currentTimeMillis_name, void_long_signature,   F_S)   \
 735                                                                                                                         \
 736    do_name(     currentTimeMillis_name,                          "currentTimeMillis")                                   \
 737   do_intrinsic(_nanoTime,                 java_lang_System,       nanoTime_name,          void_long_signature,   F_S)   \
 738    do_name(     nanoTime_name,                                   "nanoTime")                                            \
 739                                                                                                                         \
 740   JFR_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias)                                               \
 741                                                                                                                         \
 742   do_intrinsic(_arraycopy,                java_lang_System,       arraycopy_name, arraycopy_signature,           F_S)   \
 743    do_name(     arraycopy_name,                                  "arraycopy")                                           \
 744    do_signature(arraycopy_signature,                             "(Ljava/lang/Object;ILjava/lang/Object;II)V")          \
 745   do_intrinsic(_isInterrupted,            java_lang_Thread,       isInterrupted_name, isInterrupted_signature,   F_R)   \
 746    do_name(     isInterrupted_name,                              "isInterrupted")                                       \
 747    do_signature(isInterrupted_signature,                         "(Z)Z")                                                \
 748   do_intrinsic(_currentThread,            java_lang_Thread,       currentThread_name, currentThread_signature,   F_S)   \
 749    do_name(     currentThread_name,                              "currentThread")                                       \
 750    do_signature(currentThread_signature,                         "()Ljava/lang/Thread;")                                \
 751                                                                                                                         \
 752   /* reflective intrinsics, for java/lang/Class, etc. */                                                                \
 753   do_intrinsic(_isAssignableFrom,         java_lang_Class,        isAssignableFrom_name, class_boolean_signature, F_RN) \
 754    do_name(     isAssignableFrom_name,                           "isAssignableFrom")                                    \
 755   do_intrinsic(_isInstance,               java_lang_Class,        isInstance_name, object_boolean_signature,     F_RN)  \
 756    do_name(     isInstance_name,                                 "isInstance")                                          \
 757   do_intrinsic(_getModifiers,             java_lang_Class,        getModifiers_name, void_int_signature,         F_RN)  \
 758    do_name(     getModifiers_name,                               "getModifiers")                                        \
 759   do_intrinsic(_isInterface,              java_lang_Class,        isInterface_name, void_boolean_signature,      F_RN)  \
 760    do_name(     isInterface_name,                                "isInterface")                                         \


< prev index next >