< prev index next >

src/hotspot/share/classfile/vmSymbols.hpp

Print this page

 45 #define VM_SYMBOL_ENUM_NAME_(name)    name##_enum
 46 #define VM_SYMBOL_ENUM_NAME(name)    vmSymbolID::VM_SYMBOL_ENUM_NAME_(name)
 47 #define VM_INTRINSIC_IGNORE(id, class, name, sig, flags) /*ignored*/
 48 #define VM_SYMBOL_IGNORE(id, name)                       /*ignored*/
 49 #define VM_ALIAS_IGNORE(id, id2)                         /*ignored*/
 50 
 51 // Mapping function names to values. New entries should be added below.
 52 
 53 #define VM_SYMBOLS_DO(template, do_alias)                                                         \
 54   /* commonly used class, package, module names */                                                \
 55   template(java_base,                                 "java.base")                                \
 56   template(java_lang_System,                          "java/lang/System")                         \
 57   template(java_lang_Object,                          "java/lang/Object")                         \
 58   template(java_lang_Class,                           "java/lang/Class")                          \
 59   template(java_lang_Package,                         "java/lang/Package")                        \
 60   template(java_lang_Module,                          "java/lang/Module")                         \
 61   template(java_lang_String,                          "java/lang/String")                         \
 62   template(java_lang_StringLatin1,                    "java/lang/StringLatin1")                   \
 63   template(java_lang_StringUTF16,                     "java/lang/StringUTF16")                    \
 64   template(java_lang_Thread,                          "java/lang/Thread")                         \



 65   template(java_lang_ThreadGroup,                     "java/lang/ThreadGroup")                    \

 66   template(java_lang_Cloneable,                       "java/lang/Cloneable")                      \
 67   template(java_lang_Throwable,                       "java/lang/Throwable")                      \
 68   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
 69   template(java_lang_ThreadDeath,                     "java/lang/ThreadDeath")                    \




 70   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
 71   template(java_lang_Character,                       "java/lang/Character")                      \
 72   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
 73   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
 74   template(java_lang_Float,                           "java/lang/Float")                          \
 75   template(java_lang_Double,                          "java/lang/Double")                         \
 76   template(java_lang_Byte,                            "java/lang/Byte")                           \
 77   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
 78   template(java_lang_Short,                           "java/lang/Short")                          \
 79   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
 80   template(java_lang_Integer,                         "java/lang/Integer")                        \
 81   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
 82   template(java_lang_Long,                            "java/lang/Long")                           \
 83   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \
 84                                                                                                   \
 85   template(jdk_internal_vm_vector_VectorSupport,      "jdk/internal/vm/vector/VectorSupport")               \
 86   template(jdk_internal_vm_vector_VectorPayload,      "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
 87   template(jdk_internal_vm_vector_Vector,             "jdk/internal/vm/vector/VectorSupport$Vector")        \
 88   template(jdk_internal_vm_vector_VectorMask,         "jdk/internal/vm/vector/VectorSupport$VectorMask")    \
 89   template(jdk_internal_vm_vector_VectorShuffle,      "jdk/internal/vm/vector/VectorSupport$VectorShuffle") \

290   /* Support for annotations (JDK 1.5 and above) */                                               \
291                                                                                                   \
292   template(annotations_name,                          "annotations")                              \
293   template(index_name,                                "index")                                    \
294   template(executable_name,                           "executable")                               \
295   template(parameter_annotations_name,                "parameterAnnotations")                     \
296   template(annotation_default_name,                   "annotationDefault")                        \
297   template(reflect_ConstantPool,                      "jdk/internal/reflect/ConstantPool")        \
298   template(reflect_UnsafeStaticFieldAccessorImpl,     "jdk/internal/reflect/UnsafeStaticFieldAccessorImpl")\
299   template(base_name,                                 "base")                                     \
300   /* Type Annotations (JDK 8 and above) */                                                        \
301   template(type_annotations_name,                     "typeAnnotations")                          \
302                                                                                                   \
303   /* Intrinsic Annotation (JDK 9 and above) */                                                    \
304   template(jdk_internal_vm_annotation_DontInline_signature,  "Ljdk/internal/vm/annotation/DontInline;")  \
305   template(jdk_internal_vm_annotation_ForceInline_signature, "Ljdk/internal/vm/annotation/ForceInline;") \
306   template(jdk_internal_vm_annotation_Hidden_signature,      "Ljdk/internal/vm/annotation/Hidden;") \
307   template(jdk_internal_misc_Scoped_signature,               "Ljdk/internal/misc/ScopedMemoryAccess$Scoped;") \
308   template(jdk_internal_vm_annotation_IntrinsicCandidate_signature, "Ljdk/internal/vm/annotation/IntrinsicCandidate;") \
309   template(jdk_internal_vm_annotation_Stable_signature,      "Ljdk/internal/vm/annotation/Stable;") \




310   /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */                                   \
311   template(java_lang_invoke_CallSite,                 "java/lang/invoke/CallSite")                \
312   template(java_lang_invoke_ConstantCallSite,         "java/lang/invoke/ConstantCallSite")        \
313   template(java_lang_invoke_DirectMethodHandle,       "java/lang/invoke/DirectMethodHandle")      \
314   template(java_lang_invoke_MutableCallSite,          "java/lang/invoke/MutableCallSite")         \
315   template(java_lang_invoke_VolatileCallSite,         "java/lang/invoke/VolatileCallSite")        \
316   template(java_lang_invoke_MethodHandle,             "java/lang/invoke/MethodHandle")            \
317   template(java_lang_invoke_VarHandle,                "java/lang/invoke/VarHandle")               \
318   template(java_lang_invoke_MethodType,               "java/lang/invoke/MethodType")              \
319   template(java_lang_invoke_MethodType_signature,     "Ljava/lang/invoke/MethodType;")            \
320   template(java_lang_invoke_ResolvedMethodName_signature, "Ljava/lang/invoke/ResolvedMethodName;")\
321   template(java_lang_invoke_MemberName_signature,     "Ljava/lang/invoke/MemberName;")            \
322   template(java_lang_invoke_LambdaForm_signature,     "Ljava/lang/invoke/LambdaForm;")            \
323   template(java_lang_invoke_MethodHandle_signature,   "Ljava/lang/invoke/MethodHandle;")          \
324   /* internal classes known only to the JVM: */                                                   \
325   template(java_lang_invoke_MemberName,               "java/lang/invoke/MemberName")              \
326   template(java_lang_invoke_ResolvedMethodName,       "java/lang/invoke/ResolvedMethodName")      \
327   template(java_lang_invoke_MethodHandleNatives,      "java/lang/invoke/MethodHandleNatives")     \
328   template(java_lang_invoke_MethodHandleNatives_CallSiteContext, "java/lang/invoke/MethodHandleNatives$CallSiteContext") \
329   template(java_lang_invoke_LambdaForm,               "java/lang/invoke/LambdaForm")              \

361   template(java_lang_LiveStackFrameInfo,              "java/lang/LiveStackFrameInfo")             \
362   template(java_lang_StackStreamFactory_AbstractStackWalker, "java/lang/StackStreamFactory$AbstractStackWalker") \
363   template(doStackWalk_signature,                     "(JIIII)Ljava/lang/Object;")                \
364   template(asPrimitive_name,                          "asPrimitive")                              \
365   template(asPrimitive_int_signature,                 "(I)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
366   template(asPrimitive_long_signature,                "(J)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
367                                                                                                   \
368   /* common method and field names */                                                             \
369   template(object_initializer_name,                   "<init>")                                   \
370   template(class_initializer_name,                    "<clinit>")                                 \
371   template(println_name,                              "println")                                  \
372   template(printStackTrace_name,                      "printStackTrace")                          \
373   template(getStackTrace_name,                        "getStackTrace")                            \
374   template(main_name,                                 "main")                                     \
375   template(name_name,                                 "name")                                     \
376   template(priority_name,                             "priority")                                 \
377   template(stillborn_name,                            "stillborn")                                \
378   template(group_name,                                "group")                                    \
379   template(daemon_name,                               "daemon")                                   \
380   template(run_method_name,                           "run")                                      \

381   template(exit_method_name,                          "exit")                                     \
382   template(add_method_name,                           "add")                                      \
383   template(remove_method_name,                        "remove")                                   \
384   template(parent_name,                               "parent")                                   \
385   template(threads_name,                              "threads")                                  \
386   template(groups_name,                               "groups")                                   \


387   template(maxPriority_name,                          "maxPriority")                              \
388   template(destroyed_name,                            "destroyed")                                \
389   template(nthreads_name,                             "nthreads")                                 \
390   template(ngroups_name,                              "ngroups")                                  \
391   template(shutdown_name,                             "shutdown")                                 \
392   template(finalize_method_name,                      "finalize")                                 \
393   template(reference_lock_name,                       "lock")                                     \
394   template(reference_discovered_name,                 "discovered")                               \
395   template(run_finalization_name,                     "runFinalization")                          \
396   template(dispatchUncaughtException_name,            "dispatchUncaughtException")                \
397   template(loadClass_name,                            "loadClass")                                \



























398   template(get_name,                                  "get")                                      \
399   template(refersTo0_name,                            "refersTo0")                                \
400   template(put_name,                                  "put")                                      \
401   template(type_name,                                 "type")                                     \
402   template(findNative_name,                           "findNative")                               \
403   template(deadChild_name,                            "deadChild")                                \
404   template(getFromClass_name,                         "getFromClass")                             \
405   template(dispatch_name,                             "dispatch")                                 \
406   template(getPlatformClassLoader_name,               "getPlatformClassLoader")                   \
407   template(getSystemClassLoader_name,                 "getSystemClassLoader")                     \
408   template(fillInStackTrace_name,                     "fillInStackTrace")                         \
409   template(getCause_name,                             "getCause")                                 \
410   template(initCause_name,                            "initCause")                                \
411   template(getProperty_name,                          "getProperty")                              \
412   template(context_name,                              "context")                                  \
413   template(contextClassLoader_name,                   "contextClassLoader")                       \
414   template(inheritedAccessControlContext_name,        "inheritedAccessControlContext")            \
415   template(getClassContext_name,                      "getClassContext")                          \
416   template(wait_name,                                 "wait")                                     \
417   template(checkPackageAccess_name,                   "checkPackageAccess")                       \
418   template(newInstance0_name,                         "newInstance0")                             \
419   template(forName_name,                              "forName")                                  \
420   template(forName0_name,                             "forName0")                                 \
421   template(isJavaIdentifierStart_name,                "isJavaIdentifierStart")                    \
422   template(isJavaIdentifierPart_name,                 "isJavaIdentifierPart")                     \
423   template(cache_field_name,                          "cache")                                    \
424   template(value_name,                                "value")                                    \
425   template(compact_strings_name,                      "COMPACT_STRINGS")                          \
426   template(numberOfLeadingZeros_name,                 "numberOfLeadingZeros")                     \
427   template(numberOfTrailingZeros_name,                "numberOfTrailingZeros")                    \
428   template(bitCount_name,                             "bitCount")                                 \
429   template(profile_name,                              "profile")                                  \
430   template(equals_name,                               "equals")                                   \
431   template(length_name,                               "length")                                   \
432   template(target_name,                               "target")                                   \
433   template(toString_name,                             "toString")                                 \
434   template(values_name,                               "values")                                   \
435   template(receiver_name,                             "receiver")                                 \
436   template(vmtarget_name,                             "vmtarget")                                 \

459   template(last_cleanup_name,                         "last_cleanup")                             \
460   template(loader_name,                               "loader")                                   \
461   template(getModule_name,                            "getModule")                                \
462   template(input_stream_void_signature,               "(Ljava/io/InputStream;)V")                 \
463   template(input_stream_signature,                    "Ljava/io/InputStream;")                    \
464   template(print_stream_signature,                    "Ljava/io/PrintStream;")                    \
465   template(security_manager_signature,                "Ljava/lang/SecurityManager;")              \
466   template(defineOrCheckPackage_name,                 "defineOrCheckPackage")                     \
467   template(defineOrCheckPackage_signature,            "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
468   template(fileToEncodedURL_name,                     "fileToEncodedURL")                         \
469   template(fileToEncodedURL_signature,                "(Ljava/io/File;)Ljava/net/URL;")           \
470   template(getProtectionDomain_name,                  "getProtectionDomain")                      \
471   template(getProtectionDomain_signature,             "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
472   template(java_lang_Integer_array_signature,         "[Ljava/lang/Integer;")                     \
473   template(java_lang_Long_array_signature,            "[Ljava/lang/Long;")                        \
474   template(java_lang_Character_array_signature,       "[Ljava/lang/Character;")                   \
475   template(java_lang_Short_array_signature,           "[Ljava/lang/Short;")                       \
476   template(java_lang_Byte_array_signature,            "[Ljava/lang/Byte;")                        \
477   template(java_lang_Boolean_signature,               "Ljava/lang/Boolean;")                      \
478   template(url_code_signer_array_void_signature,      "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \

479   template(module_entry_name,                         "module_entry")                             \
480   template(resolved_references_name,                  "<resolved_references>")                    \
481   template(init_lock_name,                            "<init_lock>")                              \
482   template(address_size_name,                         "ADDRESS_SIZE0")                            \
483   template(page_size_name,                            "PAGE_SIZE")                                \
484   template(big_endian_name,                           "BIG_ENDIAN")                               \
485   template(use_unaligned_access_name,                 "UNALIGNED_ACCESS")                         \
486   template(data_cache_line_flush_size_name,           "DATA_CACHE_LINE_FLUSH_SIZE")               \
487   template(during_unsafe_access_name,                 "during_unsafe_access")                     \
488   template(checkIndex_name,                           "checkIndex")                               \


489                                                                                                   \
490   /* name symbols needed by intrinsics */                                                         \
491   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
492                                                                                                   \
493   /* common signatures names */                                                                   \
494   template(void_method_signature,                     "()V")                                      \
495   template(void_boolean_signature,                    "()Z")                                      \
496   template(void_byte_signature,                       "()B")                                      \
497   template(void_char_signature,                       "()C")                                      \
498   template(void_short_signature,                      "()S")                                      \
499   template(void_int_signature,                        "()I")                                      \
500   template(void_long_signature,                       "()J")                                      \
501   template(void_float_signature,                      "()F")                                      \
502   template(void_double_signature,                     "()D")                                      \
503   template(bool_void_signature,                       "(Z)V")                                     \
504   template(int_void_signature,                        "(I)V")                                     \
505   template(int_int_signature,                         "(I)I")                                     \
506   template(char_char_signature,                       "(C)C")                                     \
507   template(short_short_signature,                     "(S)S")                                     \
508   template(int_bool_signature,                        "(I)Z")                                     \

512   template(float_float_signature,                     "(F)F")                                     \
513   template(int_float_signature,                       "(I)F")                                     \
514   template(long_int_signature,                        "(J)I")                                     \
515   template(long_long_signature,                       "(J)J")                                     \
516   template(long_double_signature,                     "(J)D")                                     \
517   template(long_void_signature,                       "(J)V")                                     \
518   template(byte_signature,                            "B")                                        \
519   template(char_signature,                            "C")                                        \
520   template(double_signature,                          "D")                                        \
521   template(float_signature,                           "F")                                        \
522   template(int_signature,                             "I")                                        \
523   template(long_signature,                            "J")                                        \
524   template(short_signature,                           "S")                                        \
525   template(bool_signature,                            "Z")                                        \
526   template(void_signature,                            "V")                                        \
527   template(bool_array_signature,                      "[Z")                                       \
528   template(byte_array_signature,                      "[B")                                       \
529   template(char_array_signature,                      "[C")                                       \
530   template(int_array_signature,                       "[I")                                       \
531   template(long_array_signature,                      "[J")                                       \





532   template(object_void_signature,                     "(Ljava/lang/Object;)V")                    \
533   template(object_int_signature,                      "(Ljava/lang/Object;)I")                    \
534   template(long_object_long_signature,                "(JLjava/lang/Object;)J")                   \
535   template(object_boolean_signature,                  "(Ljava/lang/Object;)Z")                    \
536   template(object_object_signature,                   "(Ljava/lang/Object;)Ljava/lang/Object;")   \
537   template(string_void_signature,                     "(Ljava/lang/String;)V")                    \
538   template(string_int_signature,                      "(Ljava/lang/String;)I")                    \


539   template(throwable_signature,                       "Ljava/lang/Throwable;")                    \
540   template(throwable_void_signature,                  "(Ljava/lang/Throwable;)V")                 \
541   template(void_throwable_signature,                  "()Ljava/lang/Throwable;")                  \
542   template(class_void_signature,                      "(Ljava/lang/Class;)V")                     \
543   template(class_int_signature,                       "(Ljava/lang/Class;)I")                     \
544   template(class_long_signature,                      "(Ljava/lang/Class;)J")                     \
545   template(class_boolean_signature,                   "(Ljava/lang/Class;)Z")                     \
546   template(throwable_throwable_signature,             "(Ljava/lang/Throwable;)Ljava/lang/Throwable;")             \
547   template(throwable_string_void_signature,           "(Ljava/lang/Throwable;Ljava/lang/String;)V")               \
548   template(string_array_void_signature,               "([Ljava/lang/String;)V")                                   \
549   template(string_array_string_array_void_signature,  "([Ljava/lang/String;[Ljava/lang/String;)V")                \
550   template(thread_throwable_void_signature,           "(Ljava/lang/Thread;Ljava/lang/Throwable;)V")               \
551   template(thread_void_signature,                     "(Ljava/lang/Thread;)V")                                    \
552   template(threadgroup_runnable_void_signature,       "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V")           \
553   template(threadgroup_string_void_signature,         "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V")             \
554   template(string_class_signature,                    "(Ljava/lang/String;)Ljava/lang/Class;")                    \
555   template(string_boolean_class_signature,            "(Ljava/lang/String;Z)Ljava/lang/Class;")                   \
556   template(object_object_object_signature,            "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
557   template(string_string_string_signature,            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;") \
558   template(string_string_signature,                   "(Ljava/lang/String;)Ljava/lang/String;")                   \
559   template(classloader_string_long_signature,         "(Ljava/lang/ClassLoader;Ljava/lang/String;)J")             \
560   template(byte_array_void_signature,                 "([B)V")                                                    \
561   template(char_array_void_signature,                 "([C)V")                                                    \
562   template(int_int_void_signature,                    "(II)V")                                                    \
563   template(long_long_void_signature,                  "(JJ)V")                                                    \

564   template(void_classloader_signature,                "()Ljava/lang/ClassLoader;")                                \
565   template(void_object_signature,                     "()Ljava/lang/Object;")                                     \
566   template(void_class_signature,                      "()Ljava/lang/Class;")                                      \
567   template(void_class_array_signature,                "()[Ljava/lang/Class;")                                     \
568   template(void_string_signature,                     "()Ljava/lang/String;")                                     \
569   template(void_module_signature,                     "()Ljava/lang/Module;")                                     \
570   template(object_array_object_signature,             "([Ljava/lang/Object;)Ljava/lang/Object;")                  \
571   template(object_object_array_object_signature,      "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
572   template(exception_void_signature,                  "(Ljava/lang/Exception;)V")                                 \
573   template(protectiondomain_signature,                "[Ljava/security/ProtectionDomain;")                        \
574   template(accesscontrolcontext_signature,            "Ljava/security/AccessControlContext;")                     \
575   template(class_protectiondomain_signature,          "(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V")     \
576   template(thread_signature,                          "Ljava/lang/Thread;")                                       \

577   template(thread_array_signature,                    "[Ljava/lang/Thread;")                                      \
578   template(threadgroup_signature,                     "Ljava/lang/ThreadGroup;")                                  \
579   template(threadgroup_array_signature,               "[Ljava/lang/ThreadGroup;")                                 \
580   template(class_array_signature,                     "[Ljava/lang/Class;")                                       \
581   template(classloader_signature,                     "Ljava/lang/ClassLoader;")                                  \
582   template(object_signature,                          "Ljava/lang/Object;")                                       \
583   template(object_array_signature,                    "[Ljava/lang/Object;")                                      \
584   template(class_signature,                           "Ljava/lang/Class;")                                        \
585   template(string_signature,                          "Ljava/lang/String;")                                       \
586   template(string_array_signature,                    "[Ljava/lang/String;")                                      \
587   template(reference_signature,                       "Ljava/lang/ref/Reference;")                                \
588   template(referencequeue_signature,                  "Ljava/lang/ref/ReferenceQueue;")                           \

589   template(executable_signature,                      "Ljava/lang/reflect/Executable;")                           \
590   template(module_signature,                          "Ljava/lang/Module;")                                       \
591   template(concurrenthashmap_signature,               "Ljava/util/concurrent/ConcurrentHashMap;")                 \
592   template(String_StringBuilder_signature,            "(Ljava/lang/String;)Ljava/lang/StringBuilder;")            \
593   template(int_StringBuilder_signature,               "(I)Ljava/lang/StringBuilder;")                             \
594   template(char_StringBuilder_signature,              "(C)Ljava/lang/StringBuilder;")                             \
595   template(String_StringBuffer_signature,             "(Ljava/lang/String;)Ljava/lang/StringBuffer;")             \
596   template(int_StringBuffer_signature,                "(I)Ljava/lang/StringBuffer;")                              \
597   template(char_StringBuffer_signature,               "(C)Ljava/lang/StringBuffer;")                              \
598   template(int_String_signature,                      "(I)Ljava/lang/String;")                                    \
599   template(boolean_boolean_int_signature,             "(ZZ)I")                                                    \
600   template(big_integer_shift_worker_signature,        "([I[IIII)V")                                               \
601   template(reflect_method_signature,                  "Ljava/lang/reflect/Method;")                               \
602   template(getStackTrace_signature,                    "()[Ljava/lang/StackTraceElement;")                        \
603                                                                                                                   \
604   /* signature symbols needed by intrinsics */                                                                    \
605   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE)            \
606                                                                                                                   \
607   /* symbol aliases needed by intrinsics */                                                                       \
608   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, do_alias)           \

666                                                                                                                   \
667   /* JVMTI/java.lang.instrument support and VM Attach mechanism */                                                \
668   template(jdk_internal_module_Modules,                "jdk/internal/module/Modules")                             \
669   template(jdk_internal_vm_VMSupport,                  "jdk/internal/vm/VMSupport")                               \
670   template(addReads_name,                              "addReads")                                                \
671   template(addReads_signature,                         "(Ljava/lang/Module;Ljava/lang/Module;)V")                 \
672   template(addExports_name,                            "addExports")                                              \
673   template(addOpens_name,                              "addOpens")                                                \
674   template(addExports_signature,                       "(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V") \
675   template(addUses_name,                               "addUses")                                                 \
676   template(addUses_signature,                          "(Ljava/lang/Module;Ljava/lang/Class;)V")                  \
677   template(addProvides_name,                           "addProvides")                                             \
678   template(addProvides_signature,                      "(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \
679   template(loadModule_name,                            "loadModule")                                              \
680   template(loadModule_signature,                       "(Ljava/lang/String;)Ljava/lang/Module;")                  \
681   template(transformedByAgent_name,                    "transformedByAgent")                                      \
682   template(transformedByAgent_signature,               "(Ljava/lang/Module;)V")                                   \
683   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
684   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
685   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \
686   template(serializePropertiesToByteArray_signature,   "()[B")                                                    \
687   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
688   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
689   template(classLoader_name,                           "classLoader")                                             \
690   template(componentType_name,                         "componentType")                                           \
691                                                                                                                   \
692   /* forEachRemaining support */                                                                                  \
693   template(java_util_stream_StreamsRangeIntSpliterator,          "java/util/stream/Streams$RangeIntSpliterator")  \
694                                                                                                                   \
695   /* jfr signatures */                                                                                            \
696   JFR_TEMPLATES(template)                                                                                         \
697                                                                                                                   \
698   /* CDS */                                                                                                       \
699   template(dumpSharedArchive,                               "dumpSharedArchive")                                  \
700   template(dumpSharedArchive_signature,                     "(ZLjava/lang/String;)Ljava/lang/String;")            \
701   template(generateLambdaFormHolderClasses,                 "generateLambdaFormHolderClasses")                    \
702   template(generateLambdaFormHolderClasses_signature,       "([Ljava/lang/String;)[Ljava/lang/Object;")           \
703   template(java_lang_invoke_Invokers_Holder,                "java/lang/invoke/Invokers$Holder")                   \
704   template(java_lang_invoke_DirectMethodHandle_Holder,      "java/lang/invoke/DirectMethodHandle$Holder")         \
705   template(java_lang_invoke_LambdaForm_Holder,              "java/lang/invoke/LambdaForm$Holder")                 \
706   template(java_lang_invoke_DelegatingMethodHandle_Holder,  "java/lang/invoke/DelegatingMethodHandle$Holder")     \
707   template(jdk_internal_loader_ClassLoaders,                "jdk/internal/loader/ClassLoaders")                   \
708   template(jdk_internal_misc_CDS,                           "jdk/internal/misc/CDS")                              \
709   template(java_util_concurrent_ConcurrentHashMap,          "java/util/concurrent/ConcurrentHashMap")             \
710   template(java_util_ArrayList,                             "java/util/ArrayList")                                \
711   template(toFileURL_name,                                  "toFileURL")                                          \
712   template(toFileURL_signature,                             "(Ljava/lang/String;)Ljava/net/URL;")                 \
713   template(url_void_signature,                              "(Ljava/net/URL;)V")                                  \
714   template(url_array_classloader_void_signature,            "([Ljava/net/URL;Ljava/lang/ClassLoader;)V")          \
715                                                                                                                   \





716   /*end*/
717 
718 // enum for figuring positions and size of Symbol::_vm_symbols[]
719 enum class vmSymbolID : int {
720   // [FIRST_SID ... LAST_SID] is the iteration range for the *valid* symbols.
721   // NO_SID is used to indicate an invalid symbol. Some implementation code
722   // *may* read _vm_symbols[NO_SID], so it must be a valid array index.
723   NO_SID = 0,                // exclusive lower limit
724 
725   #define VM_SYMBOL_ENUM(name, string) VM_SYMBOL_ENUM_NAME_(name),
726   VM_SYMBOLS_DO(VM_SYMBOL_ENUM, VM_ALIAS_IGNORE)
727   #undef VM_SYMBOL_ENUM
728 
729   SID_LIMIT,                 // exclusive upper limit
730 
731   #define VM_ALIAS_ENUM(name, def) VM_SYMBOL_ENUM_NAME_(name) = VM_SYMBOL_ENUM_NAME_(def),
732   VM_SYMBOLS_DO(VM_SYMBOL_IGNORE, VM_ALIAS_ENUM)
733   #undef VM_ALIAS_ENUM
734 
735   FIRST_SID = NO_SID + 1,    // inclusive lower limit

 45 #define VM_SYMBOL_ENUM_NAME_(name)    name##_enum
 46 #define VM_SYMBOL_ENUM_NAME(name)    vmSymbolID::VM_SYMBOL_ENUM_NAME_(name)
 47 #define VM_INTRINSIC_IGNORE(id, class, name, sig, flags) /*ignored*/
 48 #define VM_SYMBOL_IGNORE(id, name)                       /*ignored*/
 49 #define VM_ALIAS_IGNORE(id, id2)                         /*ignored*/
 50 
 51 // Mapping function names to values. New entries should be added below.
 52 
 53 #define VM_SYMBOLS_DO(template, do_alias)                                                         \
 54   /* commonly used class, package, module names */                                                \
 55   template(java_base,                                 "java.base")                                \
 56   template(java_lang_System,                          "java/lang/System")                         \
 57   template(java_lang_Object,                          "java/lang/Object")                         \
 58   template(java_lang_Class,                           "java/lang/Class")                          \
 59   template(java_lang_Package,                         "java/lang/Package")                        \
 60   template(java_lang_Module,                          "java/lang/Module")                         \
 61   template(java_lang_String,                          "java/lang/String")                         \
 62   template(java_lang_StringLatin1,                    "java/lang/StringLatin1")                   \
 63   template(java_lang_StringUTF16,                     "java/lang/StringUTF16")                    \
 64   template(java_lang_Thread,                          "java/lang/Thread")                         \
 65   template(java_lang_Thread_FieldHolder,              "java/lang/Thread$FieldHolder")             \
 66   template(java_lang_Thread_VirtualThreads,           "java/lang/Thread$VirtualThreads")          \
 67   template(java_lang_Thread_ClassLoaders,             "java/lang/Thread$ClassLoaders")            \
 68   template(java_lang_ThreadGroup,                     "java/lang/ThreadGroup")                    \
 69   template(java_lang_VirtualThread,                   "java/lang/VirtualThread")                  \
 70   template(java_lang_Cloneable,                       "java/lang/Cloneable")                      \
 71   template(java_lang_Throwable,                       "java/lang/Throwable")                      \
 72   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
 73   template(java_lang_ThreadDeath,                     "java/lang/ThreadDeath")                    \
 74   template(java_lang_Runnable,                        "java/lang/Runnable")                       \
 75   /*template(jdk_internal_vm_Continuation,            "jdk/internal/vm/Continuation")           */\
 76   template(jdk_internal_vm_ContinuationScope,         "jdk/internal/vm/ContinuationScope")        \
 77   template(jdk_internal_vm_StackChunk,                "jdk/internal/vm/StackChunk")               \
 78   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
 79   template(java_lang_Character,                       "java/lang/Character")                      \
 80   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
 81   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
 82   template(java_lang_Float,                           "java/lang/Float")                          \
 83   template(java_lang_Double,                          "java/lang/Double")                         \
 84   template(java_lang_Byte,                            "java/lang/Byte")                           \
 85   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
 86   template(java_lang_Short,                           "java/lang/Short")                          \
 87   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
 88   template(java_lang_Integer,                         "java/lang/Integer")                        \
 89   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
 90   template(java_lang_Long,                            "java/lang/Long")                           \
 91   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \
 92                                                                                                   \
 93   template(jdk_internal_vm_vector_VectorSupport,      "jdk/internal/vm/vector/VectorSupport")               \
 94   template(jdk_internal_vm_vector_VectorPayload,      "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
 95   template(jdk_internal_vm_vector_Vector,             "jdk/internal/vm/vector/VectorSupport$Vector")        \
 96   template(jdk_internal_vm_vector_VectorMask,         "jdk/internal/vm/vector/VectorSupport$VectorMask")    \
 97   template(jdk_internal_vm_vector_VectorShuffle,      "jdk/internal/vm/vector/VectorSupport$VectorShuffle") \

298   /* Support for annotations (JDK 1.5 and above) */                                               \
299                                                                                                   \
300   template(annotations_name,                          "annotations")                              \
301   template(index_name,                                "index")                                    \
302   template(executable_name,                           "executable")                               \
303   template(parameter_annotations_name,                "parameterAnnotations")                     \
304   template(annotation_default_name,                   "annotationDefault")                        \
305   template(reflect_ConstantPool,                      "jdk/internal/reflect/ConstantPool")        \
306   template(reflect_UnsafeStaticFieldAccessorImpl,     "jdk/internal/reflect/UnsafeStaticFieldAccessorImpl")\
307   template(base_name,                                 "base")                                     \
308   /* Type Annotations (JDK 8 and above) */                                                        \
309   template(type_annotations_name,                     "typeAnnotations")                          \
310                                                                                                   \
311   /* Intrinsic Annotation (JDK 9 and above) */                                                    \
312   template(jdk_internal_vm_annotation_DontInline_signature,  "Ljdk/internal/vm/annotation/DontInline;")  \
313   template(jdk_internal_vm_annotation_ForceInline_signature, "Ljdk/internal/vm/annotation/ForceInline;") \
314   template(jdk_internal_vm_annotation_Hidden_signature,      "Ljdk/internal/vm/annotation/Hidden;") \
315   template(jdk_internal_misc_Scoped_signature,               "Ljdk/internal/misc/ScopedMemoryAccess$Scoped;") \
316   template(jdk_internal_vm_annotation_IntrinsicCandidate_signature, "Ljdk/internal/vm/annotation/IntrinsicCandidate;") \
317   template(jdk_internal_vm_annotation_Stable_signature,      "Ljdk/internal/vm/annotation/Stable;") \
318                                                                                                   \
319   template(jdk_internal_vm_annotation_ChangesCurrentThread_signature,  "Ljdk/internal/vm/annotation/ChangesCurrentThread;")  \
320   template(jdk_internal_vm_annotation_JvmtiMountTransition_signature,  "Ljdk/internal/vm/annotation/JvmtiMountTransition;")  \
321                                                                                                   \
322   /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */                                   \
323   template(java_lang_invoke_CallSite,                 "java/lang/invoke/CallSite")                \
324   template(java_lang_invoke_ConstantCallSite,         "java/lang/invoke/ConstantCallSite")        \
325   template(java_lang_invoke_DirectMethodHandle,       "java/lang/invoke/DirectMethodHandle")      \
326   template(java_lang_invoke_MutableCallSite,          "java/lang/invoke/MutableCallSite")         \
327   template(java_lang_invoke_VolatileCallSite,         "java/lang/invoke/VolatileCallSite")        \
328   template(java_lang_invoke_MethodHandle,             "java/lang/invoke/MethodHandle")            \
329   template(java_lang_invoke_VarHandle,                "java/lang/invoke/VarHandle")               \
330   template(java_lang_invoke_MethodType,               "java/lang/invoke/MethodType")              \
331   template(java_lang_invoke_MethodType_signature,     "Ljava/lang/invoke/MethodType;")            \
332   template(java_lang_invoke_ResolvedMethodName_signature, "Ljava/lang/invoke/ResolvedMethodName;")\
333   template(java_lang_invoke_MemberName_signature,     "Ljava/lang/invoke/MemberName;")            \
334   template(java_lang_invoke_LambdaForm_signature,     "Ljava/lang/invoke/LambdaForm;")            \
335   template(java_lang_invoke_MethodHandle_signature,   "Ljava/lang/invoke/MethodHandle;")          \
336   /* internal classes known only to the JVM: */                                                   \
337   template(java_lang_invoke_MemberName,               "java/lang/invoke/MemberName")              \
338   template(java_lang_invoke_ResolvedMethodName,       "java/lang/invoke/ResolvedMethodName")      \
339   template(java_lang_invoke_MethodHandleNatives,      "java/lang/invoke/MethodHandleNatives")     \
340   template(java_lang_invoke_MethodHandleNatives_CallSiteContext, "java/lang/invoke/MethodHandleNatives$CallSiteContext") \
341   template(java_lang_invoke_LambdaForm,               "java/lang/invoke/LambdaForm")              \

373   template(java_lang_LiveStackFrameInfo,              "java/lang/LiveStackFrameInfo")             \
374   template(java_lang_StackStreamFactory_AbstractStackWalker, "java/lang/StackStreamFactory$AbstractStackWalker") \
375   template(doStackWalk_signature,                     "(JIIII)Ljava/lang/Object;")                \
376   template(asPrimitive_name,                          "asPrimitive")                              \
377   template(asPrimitive_int_signature,                 "(I)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
378   template(asPrimitive_long_signature,                "(J)Ljava/lang/LiveStackFrame$PrimitiveSlot;") \
379                                                                                                   \
380   /* common method and field names */                                                             \
381   template(object_initializer_name,                   "<init>")                                   \
382   template(class_initializer_name,                    "<clinit>")                                 \
383   template(println_name,                              "println")                                  \
384   template(printStackTrace_name,                      "printStackTrace")                          \
385   template(getStackTrace_name,                        "getStackTrace")                            \
386   template(main_name,                                 "main")                                     \
387   template(name_name,                                 "name")                                     \
388   template(priority_name,                             "priority")                                 \
389   template(stillborn_name,                            "stillborn")                                \
390   template(group_name,                                "group")                                    \
391   template(daemon_name,                               "daemon")                                   \
392   template(run_method_name,                           "run")                                      \
393   template(interrupt_method_name,                     "interrupt")                                \
394   template(exit_method_name,                          "exit")                                     \

395   template(remove_method_name,                        "remove")                                   \
396   template(parent_name,                               "parent")                                   \
397   template(ngroups_name,                              "ngroups")                                  \
398   template(groups_name,                               "groups")                                   \
399   template(nweaks_name,                               "nweaks")                                   \
400   template(weaks_name,                                "weaks")                                    \
401   template(maxPriority_name,                          "maxPriority")                              \



402   template(shutdown_name,                             "shutdown")                                 \
403   template(finalize_method_name,                      "finalize")                                 \
404   template(reference_lock_name,                       "lock")                                     \
405   template(reference_discovered_name,                 "discovered")                               \
406   template(run_finalization_name,                     "runFinalization")                          \
407   template(dispatchUncaughtException_name,            "dispatchUncaughtException")                \
408   template(loadClass_name,                            "loadClass")                                \
409   template(doYield_name,                              "doYield")                                  \
410   template(enter_name,                                "enter")                                    \
411   template(enterSpecial_name,                         "enterSpecial")                             \
412   template(onContinue_name,                           "onContinue0")                              \
413   template(getStacks_name,                            "getStacks")                                \
414   template(onPinned_name,                             "onPinned0")                                \
415   template(scope_name,                                "scope")                                    \
416   template(yieldInfo_name,                            "yieldInfo")                                \
417   template(tail_name,                                 "tail")                                     \
418   template(size_name,                                 "size")                                     \
419   template(argsize_name,                              "argsize")                                  \
420   template(mode_name,                                 "mode")                                     \
421   template(numFrames_name,                            "numFrames")                                \
422   template(numOops_name,                              "numOops")                                  \
423   template(stack_name,                                "stack")                                    \
424   template(maxSize_name,                              "maxSize")                                  \
425   template(reset_name,                                "reset")                                    \
426   template(done_name,                                 "done")                                     \
427   template(mounted_name,                              "mounted")                                  \
428   template(numInterpretedFrames_name,                 "numInterpretedFrames")                     \
429   template(jfrTraceId_name,                           "jfrTraceId")                               \
430   template(fp_name,                                   "fp")                                       \
431   template(sp_name,                                   "sp")                                       \
432   template(pc_name,                                   "pc")                                       \
433   template(cs_name,                                   "cs")                                       \
434   template(refStack_name,                             "refStack")                                 \
435   template(refSP_name,                                "refSP")                                    \
436   template(get_name,                                  "get")                                      \
437   template(refersTo0_name,                            "refersTo0")                                \
438   template(put_name,                                  "put")                                      \
439   template(type_name,                                 "type")                                     \
440   template(findNative_name,                           "findNative")                               \
441   template(deadChild_name,                            "deadChild")                                \
442   template(getFromClass_name,                         "getFromClass")                             \
443   template(dispatch_name,                             "dispatch")                                 \
444   template(getPlatformClassLoader_name,               "getPlatformClassLoader")                   \
445   template(getSystemClassLoader_name,                 "getSystemClassLoader")                     \
446   template(fillInStackTrace_name,                     "fillInStackTrace")                         \
447   template(getCause_name,                             "getCause")                                 \
448   template(initCause_name,                            "initCause")                                \
449   template(getProperty_name,                          "getProperty")                              \
450   template(context_name,                              "context")                                  \
451   template(contextClassLoader_name,                   "contextClassLoader")                       \
452   template(inheritedAccessControlContext_name,        "inheritedAccessControlContext")            \
453   template(getClassContext_name,                      "getClassContext")                          \
454   template(wait_name,                                 "wait0")                                     \
455   template(checkPackageAccess_name,                   "checkPackageAccess")                       \
456   template(newInstance0_name,                         "newInstance0")                             \
457   template(forName_name,                              "forName")                                  \
458   template(forName0_name,                             "forName0")                                 \
459   template(isJavaIdentifierStart_name,                "isJavaIdentifierStart")                    \
460   template(isJavaIdentifierPart_name,                 "isJavaIdentifierPart")                     \
461   template(cache_field_name,                          "cache")                                    \
462   template(value_name,                                "value")                                    \
463   template(compact_strings_name,                      "COMPACT_STRINGS")                          \
464   template(numberOfLeadingZeros_name,                 "numberOfLeadingZeros")                     \
465   template(numberOfTrailingZeros_name,                "numberOfTrailingZeros")                    \
466   template(bitCount_name,                             "bitCount")                                 \
467   template(profile_name,                              "profile")                                  \
468   template(equals_name,                               "equals")                                   \
469   template(length_name,                               "length")                                   \
470   template(target_name,                               "target")                                   \
471   template(toString_name,                             "toString")                                 \
472   template(values_name,                               "values")                                   \
473   template(receiver_name,                             "receiver")                                 \
474   template(vmtarget_name,                             "vmtarget")                                 \

497   template(last_cleanup_name,                         "last_cleanup")                             \
498   template(loader_name,                               "loader")                                   \
499   template(getModule_name,                            "getModule")                                \
500   template(input_stream_void_signature,               "(Ljava/io/InputStream;)V")                 \
501   template(input_stream_signature,                    "Ljava/io/InputStream;")                    \
502   template(print_stream_signature,                    "Ljava/io/PrintStream;")                    \
503   template(security_manager_signature,                "Ljava/lang/SecurityManager;")              \
504   template(defineOrCheckPackage_name,                 "defineOrCheckPackage")                     \
505   template(defineOrCheckPackage_signature,            "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
506   template(fileToEncodedURL_name,                     "fileToEncodedURL")                         \
507   template(fileToEncodedURL_signature,                "(Ljava/io/File;)Ljava/net/URL;")           \
508   template(getProtectionDomain_name,                  "getProtectionDomain")                      \
509   template(getProtectionDomain_signature,             "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
510   template(java_lang_Integer_array_signature,         "[Ljava/lang/Integer;")                     \
511   template(java_lang_Long_array_signature,            "[Ljava/lang/Long;")                        \
512   template(java_lang_Character_array_signature,       "[Ljava/lang/Character;")                   \
513   template(java_lang_Short_array_signature,           "[Ljava/lang/Short;")                       \
514   template(java_lang_Byte_array_signature,            "[Ljava/lang/Byte;")                        \
515   template(java_lang_Boolean_signature,               "Ljava/lang/Boolean;")                      \
516   template(url_code_signer_array_void_signature,      "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \
517   template(jvmti_thread_state_name,                   "jvmti_thread_state")                       \
518   template(module_entry_name,                         "module_entry")                             \
519   template(resolved_references_name,                  "<resolved_references>")                    \
520   template(init_lock_name,                            "<init_lock>")                              \
521   template(address_size_name,                         "ADDRESS_SIZE0")                            \
522   template(page_size_name,                            "PAGE_SIZE")                                \
523   template(big_endian_name,                           "BIG_ENDIAN")                               \
524   template(use_unaligned_access_name,                 "UNALIGNED_ACCESS")                         \
525   template(data_cache_line_flush_size_name,           "DATA_CACHE_LINE_FLUSH_SIZE")               \
526   template(during_unsafe_access_name,                 "during_unsafe_access")                     \
527   template(checkIndex_name,                           "checkIndex")                               \
528   template(scoped_cache_shift_name,                   "SCOPED_CACHE_SHIFT")                       \
529   template(scopeLocalSnapshot_name,                   "Ljava/lang/ScopeLocal$Snapshot;")          \
530                                                                                                   \
531   /* name symbols needed by intrinsics */                                                         \
532   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
533                                                                                                   \
534   /* common signatures names */                                                                   \
535   template(void_method_signature,                     "()V")                                      \
536   template(void_boolean_signature,                    "()Z")                                      \
537   template(void_byte_signature,                       "()B")                                      \
538   template(void_char_signature,                       "()C")                                      \
539   template(void_short_signature,                      "()S")                                      \
540   template(void_int_signature,                        "()I")                                      \
541   template(void_long_signature,                       "()J")                                      \
542   template(void_float_signature,                      "()F")                                      \
543   template(void_double_signature,                     "()D")                                      \
544   template(bool_void_signature,                       "(Z)V")                                     \
545   template(int_void_signature,                        "(I)V")                                     \
546   template(int_int_signature,                         "(I)I")                                     \
547   template(char_char_signature,                       "(C)C")                                     \
548   template(short_short_signature,                     "(S)S")                                     \
549   template(int_bool_signature,                        "(I)Z")                                     \

553   template(float_float_signature,                     "(F)F")                                     \
554   template(int_float_signature,                       "(I)F")                                     \
555   template(long_int_signature,                        "(J)I")                                     \
556   template(long_long_signature,                       "(J)J")                                     \
557   template(long_double_signature,                     "(J)D")                                     \
558   template(long_void_signature,                       "(J)V")                                     \
559   template(byte_signature,                            "B")                                        \
560   template(char_signature,                            "C")                                        \
561   template(double_signature,                          "D")                                        \
562   template(float_signature,                           "F")                                        \
563   template(int_signature,                             "I")                                        \
564   template(long_signature,                            "J")                                        \
565   template(short_signature,                           "S")                                        \
566   template(bool_signature,                            "Z")                                        \
567   template(void_signature,                            "V")                                        \
568   template(bool_array_signature,                      "[Z")                                       \
569   template(byte_array_signature,                      "[B")                                       \
570   template(char_array_signature,                      "[C")                                       \
571   template(int_array_signature,                       "[I")                                       \
572   template(long_array_signature,                      "[J")                                       \
573   template(runnable_signature,                        "Ljava/lang/Runnable;")                     \
574   template(continuation_signature,                    "Ljdk/internal/vm/Continuation;")           \
575   template(continuationscope_signature,               "Ljdk/internal/vm/ContinuationScope;")      \
576   template(stackchunk_signature,                      "Ljdk/internal/vm/StackChunk;")             \
577   template(vthread_signature,                         "Ljava/lang/VirtualThread;")                \
578   template(object_void_signature,                     "(Ljava/lang/Object;)V")                    \
579   template(object_int_signature,                      "(Ljava/lang/Object;)I")                    \
580   template(long_object_long_signature,                "(JLjava/lang/Object;)J")                   \
581   template(object_boolean_signature,                  "(Ljava/lang/Object;)Z")                    \
582   template(object_object_signature,                   "(Ljava/lang/Object;)Ljava/lang/Object;")   \
583   template(string_void_signature,                     "(Ljava/lang/String;)V")                    \
584   template(string_int_signature,                      "(Ljava/lang/String;)I")                    \
585   template(string_byte_array_signature,               "(Ljava/lang/String;)[B")                   \
586   template(string_bool_byte_array_signature,          "(Ljava/lang/String;Z)[B")                  \
587   template(throwable_signature,                       "Ljava/lang/Throwable;")                    \
588   template(throwable_void_signature,                  "(Ljava/lang/Throwable;)V")                 \
589   template(void_throwable_signature,                  "()Ljava/lang/Throwable;")                  \
590   template(class_void_signature,                      "(Ljava/lang/Class;)V")                     \
591   template(class_int_signature,                       "(Ljava/lang/Class;)I")                     \
592   template(class_long_signature,                      "(Ljava/lang/Class;)J")                     \
593   template(class_boolean_signature,                   "(Ljava/lang/Class;)Z")                     \
594   template(throwable_throwable_signature,             "(Ljava/lang/Throwable;)Ljava/lang/Throwable;")             \
595   template(throwable_string_void_signature,           "(Ljava/lang/Throwable;Ljava/lang/String;)V")               \
596   template(string_array_void_signature,               "([Ljava/lang/String;)V")                                   \
597   template(string_array_string_array_void_signature,  "([Ljava/lang/String;[Ljava/lang/String;)V")                \
598   template(thread_throwable_void_signature,           "(Ljava/lang/Thread;Ljava/lang/Throwable;)V")               \
599   template(thread_void_signature,                     "(Ljava/lang/Thread;)V")                                    \
600   template(threadgroup_runnable_void_signature,       "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V")           \
601   template(threadgroup_string_void_signature,         "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V")             \
602   template(string_class_signature,                    "(Ljava/lang/String;)Ljava/lang/Class;")                    \
603   template(string_boolean_class_signature,            "(Ljava/lang/String;Z)Ljava/lang/Class;")                   \
604   template(object_object_object_signature,            "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
605   template(string_string_string_signature,            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;") \
606   template(string_string_signature,                   "(Ljava/lang/String;)Ljava/lang/String;")                   \
607   template(classloader_string_long_signature,         "(Ljava/lang/ClassLoader;Ljava/lang/String;)J")             \
608   template(byte_array_void_signature,                 "([B)V")                                                    \
609   template(char_array_void_signature,                 "([C)V")                                                    \
610   template(int_int_void_signature,                    "(II)V")                                                    \
611   template(long_long_void_signature,                  "(JJ)V")                                                    \
612   template(void_byte_array_signature,                 "()[B")                                                     \
613   template(void_classloader_signature,                "()Ljava/lang/ClassLoader;")                                \
614   template(void_object_signature,                     "()Ljava/lang/Object;")                                     \
615   template(void_class_signature,                      "()Ljava/lang/Class;")                                      \
616   template(void_class_array_signature,                "()[Ljava/lang/Class;")                                     \
617   template(void_string_signature,                     "()Ljava/lang/String;")                                     \
618   template(void_module_signature,                     "()Ljava/lang/Module;")                                     \
619   template(object_array_object_signature,             "([Ljava/lang/Object;)Ljava/lang/Object;")                  \
620   template(object_object_array_object_signature,      "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
621   template(exception_void_signature,                  "(Ljava/lang/Exception;)V")                                 \
622   template(protectiondomain_signature,                "[Ljava/security/ProtectionDomain;")                        \
623   template(accesscontrolcontext_signature,            "Ljava/security/AccessControlContext;")                     \
624   template(class_protectiondomain_signature,          "(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V")     \
625   template(thread_signature,                          "Ljava/lang/Thread;")                                       \
626   template(thread_fieldholder_signature,              "Ljava/lang/Thread$FieldHolder;")                           \
627   template(thread_array_signature,                    "[Ljava/lang/Thread;")                                      \
628   template(threadgroup_signature,                     "Ljava/lang/ThreadGroup;")                                  \
629   template(threadgroup_array_signature,               "[Ljava/lang/ThreadGroup;")                                 \
630   template(class_array_signature,                     "[Ljava/lang/Class;")                                       \
631   template(classloader_signature,                     "Ljava/lang/ClassLoader;")                                  \
632   template(object_signature,                          "Ljava/lang/Object;")                                       \
633   template(object_array_signature,                    "[Ljava/lang/Object;")                                      \
634   template(class_signature,                           "Ljava/lang/Class;")                                        \
635   template(string_signature,                          "Ljava/lang/String;")                                       \
636   template(string_array_signature,                    "[Ljava/lang/String;")                                      \
637   template(reference_signature,                       "Ljava/lang/ref/Reference;")                                \
638   template(referencequeue_signature,                  "Ljava/lang/ref/ReferenceQueue;")                           \
639   template(weakreference_array_signature,             "[Ljava/lang/ref/WeakReference;")                           \
640   template(executable_signature,                      "Ljava/lang/reflect/Executable;")                           \
641   template(module_signature,                          "Ljava/lang/Module;")                                       \
642   template(concurrenthashmap_signature,               "Ljava/util/concurrent/ConcurrentHashMap;")                 \
643   template(String_StringBuilder_signature,            "(Ljava/lang/String;)Ljava/lang/StringBuilder;")            \
644   template(int_StringBuilder_signature,               "(I)Ljava/lang/StringBuilder;")                             \
645   template(char_StringBuilder_signature,              "(C)Ljava/lang/StringBuilder;")                             \
646   template(String_StringBuffer_signature,             "(Ljava/lang/String;)Ljava/lang/StringBuffer;")             \
647   template(int_StringBuffer_signature,                "(I)Ljava/lang/StringBuffer;")                              \
648   template(char_StringBuffer_signature,               "(C)Ljava/lang/StringBuffer;")                              \
649   template(int_String_signature,                      "(I)Ljava/lang/String;")                                    \
650   template(boolean_boolean_int_signature,             "(ZZ)I")                                                    \
651   template(big_integer_shift_worker_signature,        "([I[IIII)V")                                               \
652   template(reflect_method_signature,                  "Ljava/lang/reflect/Method;")                               \
653   template(getStackTrace_signature,                    "()[Ljava/lang/StackTraceElement;")                        \
654                                                                                                                   \
655   /* signature symbols needed by intrinsics */                                                                    \
656   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE)            \
657                                                                                                                   \
658   /* symbol aliases needed by intrinsics */                                                                       \
659   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, do_alias)           \

717                                                                                                                   \
718   /* JVMTI/java.lang.instrument support and VM Attach mechanism */                                                \
719   template(jdk_internal_module_Modules,                "jdk/internal/module/Modules")                             \
720   template(jdk_internal_vm_VMSupport,                  "jdk/internal/vm/VMSupport")                               \
721   template(addReads_name,                              "addReads")                                                \
722   template(addReads_signature,                         "(Ljava/lang/Module;Ljava/lang/Module;)V")                 \
723   template(addExports_name,                            "addExports")                                              \
724   template(addOpens_name,                              "addOpens")                                                \
725   template(addExports_signature,                       "(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V") \
726   template(addUses_name,                               "addUses")                                                 \
727   template(addUses_signature,                          "(Ljava/lang/Module;Ljava/lang/Class;)V")                  \
728   template(addProvides_name,                           "addProvides")                                             \
729   template(addProvides_signature,                      "(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \
730   template(loadModule_name,                            "loadModule")                                              \
731   template(loadModule_signature,                       "(Ljava/lang/String;)Ljava/lang/Module;")                  \
732   template(transformedByAgent_name,                    "transformedByAgent")                                      \
733   template(transformedByAgent_signature,               "(Ljava/lang/Module;)V")                                   \
734   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
735   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
736   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \

737   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
738   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
739   template(classLoader_name,                           "classLoader")                                             \
740   template(componentType_name,                         "componentType")                                           \
741                                                                                                                   \
742   /* forEachRemaining support */                                                                                  \
743   template(java_util_stream_StreamsRangeIntSpliterator,          "java/util/stream/Streams$RangeIntSpliterator")  \
744                                                                                                                   \
745   /* jfr signatures */                                                                                            \
746   JFR_TEMPLATES(template)                                                                                         \
747                                                                                                                   \
748   /* CDS */                                                                                                       \
749   template(dumpSharedArchive,                               "dumpSharedArchive")                                  \
750   template(dumpSharedArchive_signature,                     "(ZLjava/lang/String;)Ljava/lang/String;")            \
751   template(generateLambdaFormHolderClasses,                 "generateLambdaFormHolderClasses")                    \
752   template(generateLambdaFormHolderClasses_signature,       "([Ljava/lang/String;)[Ljava/lang/Object;")           \
753   template(java_lang_invoke_Invokers_Holder,                "java/lang/invoke/Invokers$Holder")                   \
754   template(java_lang_invoke_DirectMethodHandle_Holder,      "java/lang/invoke/DirectMethodHandle$Holder")         \
755   template(java_lang_invoke_LambdaForm_Holder,              "java/lang/invoke/LambdaForm$Holder")                 \
756   template(java_lang_invoke_DelegatingMethodHandle_Holder,  "java/lang/invoke/DelegatingMethodHandle$Holder")     \
757   template(jdk_internal_loader_ClassLoaders,                "jdk/internal/loader/ClassLoaders")                   \
758   template(jdk_internal_misc_CDS,                           "jdk/internal/misc/CDS")                              \
759   template(java_util_concurrent_ConcurrentHashMap,          "java/util/concurrent/ConcurrentHashMap")             \
760   template(java_util_ArrayList,                             "java/util/ArrayList")                                \
761   template(toFileURL_name,                                  "toFileURL")                                          \
762   template(toFileURL_signature,                             "(Ljava/lang/String;)Ljava/net/URL;")                 \
763   template(url_void_signature,                              "(Ljava/net/URL;)V")                                  \
764   template(url_array_classloader_void_signature,            "([Ljava/net/URL;Ljava/lang/ClassLoader;)V")          \
765                                                                                                                   \
766   /* JavaThread.dump jcmd */                                                                                      \
767   template(jdk_internal_vm_ThreadDumper,           "jdk/internal/vm/ThreadDumper")                                \
768   template(dumpThreads_name,                       "dumpThreads")                                                 \
769   template(dumpThreadsToJson_name,                 "dumpThreadsToJson")                                           \
770 
771   /*end*/
772 
773 // enum for figuring positions and size of Symbol::_vm_symbols[]
774 enum class vmSymbolID : int {
775   // [FIRST_SID ... LAST_SID] is the iteration range for the *valid* symbols.
776   // NO_SID is used to indicate an invalid symbol. Some implementation code
777   // *may* read _vm_symbols[NO_SID], so it must be a valid array index.
778   NO_SID = 0,                // exclusive lower limit
779 
780   #define VM_SYMBOL_ENUM(name, string) VM_SYMBOL_ENUM_NAME_(name),
781   VM_SYMBOLS_DO(VM_SYMBOL_ENUM, VM_ALIAS_IGNORE)
782   #undef VM_SYMBOL_ENUM
783 
784   SID_LIMIT,                 // exclusive upper limit
785 
786   #define VM_ALIAS_ENUM(name, def) VM_SYMBOL_ENUM_NAME_(name) = VM_SYMBOL_ENUM_NAME_(def),
787   VM_SYMBOLS_DO(VM_SYMBOL_IGNORE, VM_ALIAS_ENUM)
788   #undef VM_ALIAS_ENUM
789 
790   FIRST_SID = NO_SID + 1,    // inclusive lower limit
< prev index next >