< prev index next >

src/hotspot/share/classfile/vmSymbols.hpp

Print this page

 73   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
 74   template(java_lang_Runnable,                        "java/lang/Runnable")                       \
 75   template(jdk_internal_vm_ContinuationScope,         "jdk/internal/vm/ContinuationScope")        \
 76   template(jdk_internal_vm_StackChunk,                "jdk/internal/vm/StackChunk")               \
 77   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
 78   template(java_lang_Character,                       "java/lang/Character")                      \
 79   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
 80   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
 81   template(java_lang_Float,                           "java/lang/Float")                          \
 82   template(java_lang_Double,                          "java/lang/Double")                         \
 83   template(java_lang_Byte,                            "java/lang/Byte")                           \
 84   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
 85   template(java_lang_Short,                           "java/lang/Short")                          \
 86   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
 87   template(java_lang_Integer,                         "java/lang/Integer")                        \
 88   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
 89   template(java_lang_Long,                            "java/lang/Long")                           \
 90   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \
 91   template(java_lang_Void,                            "java/lang/Void")                           \
 92                                                                                                   \

























 93   template(jdk_internal_vm_vector_VectorSupport,      "jdk/internal/vm/vector/VectorSupport")     \
 94   template(jdk_internal_vm_vector_Float16Math,        "jdk/internal/vm/vector/Float16Math")       \
 95   template(jdk_internal_vm_vector_VectorPayload,      "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
 96   template(jdk_internal_vm_vector_Vector,             "jdk/internal/vm/vector/VectorSupport$Vector")        \
 97   template(jdk_internal_vm_vector_VectorMask,         "jdk/internal/vm/vector/VectorSupport$VectorMask")    \
 98   template(jdk_internal_vm_vector_VectorShuffle,      "jdk/internal/vm/vector/VectorSupport$VectorShuffle") \
 99   template(payload_name,                              "payload")                                            \
100   template(CTYPE_name,                                "CTYPE")                                              \
101   template(ETYPE_name,                                "ETYPE")                                              \
102   template(VLENGTH_name,                              "VLENGTH")                                            \
103                                                                                                   \
104   template(jdk_internal_vm_FillerObject,              "jdk/internal/vm/FillerObject")             \
105                                                                                                   \
106   template(java_lang_Shutdown,                        "java/lang/Shutdown")                       \
107   template(java_lang_ref_Reference,                   "java/lang/ref/Reference")                  \
108   template(java_lang_ref_SoftReference,               "java/lang/ref/SoftReference")              \
109   template(java_lang_ref_WeakReference,               "java/lang/ref/WeakReference")              \
110   template(java_lang_ref_FinalReference,              "java/lang/ref/FinalReference")             \
111   template(java_lang_ref_PhantomReference,            "java/lang/ref/PhantomReference")           \
112   template(java_lang_ref_Finalizer,                   "java/lang/ref/Finalizer")                  \

120   template(java_lang_StringBuffer,                    "java/lang/StringBuffer")                   \
121   template(java_lang_StringBuilder,                   "java/lang/StringBuilder")                  \
122   template(java_lang_ScopedValue,                     "java/lang/ScopedValue")                    \
123   template(java_lang_ScopedValue_Carrier,             "java/lang/ScopedValue$Carrier")            \
124   template(java_security_CodeSource,                  "java/security/CodeSource")                 \
125   template(java_security_ProtectionDomain,            "java/security/ProtectionDomain")           \
126   template(java_security_SecureClassLoader,           "java/security/SecureClassLoader")          \
127   template(java_net_URL,                              "java/net/URL")                             \
128   template(java_util_jar_Manifest,                    "java/util/jar/Manifest")                   \
129   template(java_io_ByteArrayInputStream,              "java/io/ByteArrayInputStream")             \
130   template(java_io_Serializable,                      "java/io/Serializable")                     \
131   template(java_nio_Buffer,                           "java/nio/Buffer")                          \
132   template(java_util_Arrays,                          "java/util/Arrays")                         \
133   template(java_util_Properties,                      "java/util/Properties")                     \
134   template(java_util_DualPivotQuicksort,              "java/util/DualPivotQuicksort")             \
135   template(jdk_internal_misc_Signal,                  "jdk/internal/misc/Signal")                 \
136   template(jdk_internal_util_Preconditions,           "jdk/internal/util/Preconditions")          \
137   template(java_lang_AssertionStatusDirectives,       "java/lang/AssertionStatusDirectives")      \
138   template(jdk_internal_vm_PostVMInitHook,            "jdk/internal/vm/PostVMInitHook")           \
139   template(java_util_Iterator,                        "java/util/Iterator")                       \
140   template(java_lang_Record,                          "java/lang/Record")                         \
141   template(sun_instrument_InstrumentationImpl,        "sun/instrument/InstrumentationImpl")       \
142   template(sun_invoke_util_ValueConversions,          "sun/invoke/util/ValueConversions")         \
143                                                                                                   \
144   template(jdk_internal_loader_NativeLibraries,       "jdk/internal/loader/NativeLibraries")      \
145   template(jdk_internal_loader_BuiltinClassLoader,    "jdk/internal/loader/BuiltinClassLoader")   \
146   template(jdk_internal_loader_ClassLoaders_AppClassLoader,      "jdk/internal/loader/ClassLoaders$AppClassLoader")      \
147   template(jdk_internal_loader_ClassLoaders_PlatformClassLoader, "jdk/internal/loader/ClassLoaders$PlatformClassLoader") \
148   template(java_lang_Deprecated,                      "Ljava/lang/Deprecated;")                   \
149   template(since,                                     "since")                                    \
150   template(for_removal,                               "forRemoval")                               \
151   /* Java runtime version access */                                                               \
152   template(java_lang_VersionProps,                    "java/lang/VersionProps")                   \
153   template(java_version_name,                         "java_version")                             \
154   template(java_runtime_name_name,                    "java_runtime_name")                        \
155   template(java_runtime_version_name,                 "java_runtime_version")                     \
156   template(java_runtime_vendor_version_name,          "VENDOR_VERSION")                           \
157   template(java_runtime_vendor_vm_bug_url_name,       "VENDOR_URL_VM_BUG")                        \
158                                                                                                   \
159   /* system initialization */                                                                     \
160   template(initPhase1_name,                           "initPhase1")                               \
161   template(initPhase2_name,                           "initPhase2")                               \
162   template(initPhase3_name,                           "initPhase3")                               \
163   template(java_lang_module_init_signature,           "(Ljava/lang/ClassLoader;Ljava/lang/String;)V") \
164                                                                                                   \
165   /* class file format tags */                                                                    \
166   template(tag_source_file,                           "SourceFile")                               \
167   template(tag_inner_classes,                         "InnerClasses")                             \
168   template(tag_nest_members,                          "NestMembers")                              \
169   template(tag_nest_host,                             "NestHost")                                 \

170   template(tag_constant_value,                        "ConstantValue")                            \
171   template(tag_code,                                  "Code")                                     \
172   template(tag_exceptions,                            "Exceptions")                               \
173   template(tag_line_number_table,                     "LineNumberTable")                          \
174   template(tag_local_variable_table,                  "LocalVariableTable")                       \
175   template(tag_local_variable_type_table,             "LocalVariableTypeTable")                   \
176   template(tag_method_parameters,                     "MethodParameters")                         \
177   template(tag_stack_map_table,                       "StackMapTable")                            \
178   template(tag_synthetic,                             "Synthetic")                                \
179   template(tag_deprecated,                            "Deprecated")                               \
180   template(tag_source_debug_extension,                "SourceDebugExtension")                     \
181   template(tag_signature,                             "Signature")                                \
182   template(tag_record,                                "Record")                                   \
183   template(tag_runtime_visible_annotations,           "RuntimeVisibleAnnotations")                \
184   template(tag_runtime_invisible_annotations,         "RuntimeInvisibleAnnotations")              \
185   template(tag_runtime_visible_parameter_annotations, "RuntimeVisibleParameterAnnotations")       \
186   template(tag_runtime_invisible_parameter_annotations,"RuntimeInvisibleParameterAnnotations")    \
187   template(tag_annotation_default,                    "AnnotationDefault")                        \
188   template(tag_runtime_visible_type_annotations,      "RuntimeVisibleTypeAnnotations")            \
189   template(tag_runtime_invisible_type_annotations,    "RuntimeInvisibleTypeAnnotations")          \
190   template(tag_enclosing_method,                      "EnclosingMethod")                          \
191   template(tag_bootstrap_methods,                     "BootstrapMethods")                         \
192   template(tag_permitted_subclasses,                  "PermittedSubclasses")                      \
193                                                                                                   \
194   /* exception klasses: at least all exceptions thrown by the VM have entries here */             \
195   template(java_lang_ArithmeticException,             "java/lang/ArithmeticException")            \
196   template(java_lang_ArrayIndexOutOfBoundsException,  "java/lang/ArrayIndexOutOfBoundsException") \
197   template(java_lang_ArrayStoreException,             "java/lang/ArrayStoreException")            \
198   template(java_lang_ClassCastException,              "java/lang/ClassCastException")             \
199   template(java_lang_ClassNotFoundException,          "java/lang/ClassNotFoundException")         \
200   template(java_lang_CloneNotSupportedException,      "java/lang/CloneNotSupportedException")     \
201   template(java_lang_IllegalAccessException,          "java/lang/IllegalAccessException")         \
202   template(java_lang_IllegalArgumentException,        "java/lang/IllegalArgumentException")       \
203   template(java_lang_IllegalCallerException,          "java/lang/IllegalCallerException")         \
204   template(java_lang_IllegalStateException,           "java/lang/IllegalStateException")          \
205   template(java_lang_IllegalMonitorStateException,    "java/lang/IllegalMonitorStateException")   \

206   template(java_lang_IllegalThreadStateException,     "java/lang/IllegalThreadStateException")    \
207   template(java_lang_IndexOutOfBoundsException,       "java/lang/IndexOutOfBoundsException")      \
208   template(java_lang_InstantiationException,          "java/lang/InstantiationException")         \
209   template(java_lang_InstantiationError,              "java/lang/InstantiationError")             \
210   template(java_lang_InterruptedException,            "java/lang/InterruptedException")           \
211   template(java_lang_BootstrapMethodError,            "java/lang/BootstrapMethodError")           \
212   template(java_lang_LinkageError,                    "java/lang/LinkageError")                   \
213   template(java_lang_NegativeArraySizeException,      "java/lang/NegativeArraySizeException")     \
214   template(java_lang_NoSuchMethodException,           "java/lang/NoSuchMethodException")          \
215   template(java_lang_NullPointerException,            "java/lang/NullPointerException")           \
216   template(java_lang_StringIndexOutOfBoundsException, "java/lang/StringIndexOutOfBoundsException")\
217   template(java_lang_UnsupportedOperationException,   "java/lang/UnsupportedOperationException")  \
218   template(java_lang_InvalidClassException,           "java/lang/InvalidClassException")          \
219   template(java_lang_reflect_InvocationTargetException, "java/lang/reflect/InvocationTargetException") \
220   template(java_lang_Exception,                       "java/lang/Exception")                      \
221   template(java_lang_RuntimeException,                "java/lang/RuntimeException")               \
222   template(java_io_IOException,                       "java/io/IOException")                      \
223   template(jdk_internal_vm_PreemptedException,        "jdk/internal/vm/PreemptedException")       \
224                                                                                                   \
225   /* error klasses: at least all errors thrown by the VM have entries here */                     \

230   template(java_lang_Error,                           "java/lang/Error")                          \
231   template(java_lang_ExceptionInInitializerError,     "java/lang/ExceptionInInitializerError")    \
232   template(java_lang_IllegalAccessError,              "java/lang/IllegalAccessError")             \
233   template(java_lang_IncompatibleClassChangeError,    "java/lang/IncompatibleClassChangeError")   \
234   template(java_lang_InternalError,                   "java/lang/InternalError")                  \
235   template(java_lang_NoClassDefFoundError,            "java/lang/NoClassDefFoundError")           \
236   template(java_lang_NoSuchFieldError,                "java/lang/NoSuchFieldError")               \
237   template(java_lang_NoSuchMethodError,               "java/lang/NoSuchMethodError")              \
238   template(java_lang_OutOfMemoryError,                "java/lang/OutOfMemoryError")               \
239   template(java_lang_UnsatisfiedLinkError,            "java/lang/UnsatisfiedLinkError")           \
240   template(java_lang_VerifyError,                     "java/lang/VerifyError")                    \
241   template(java_lang_SecurityException,               "java/lang/SecurityException")              \
242   template(java_lang_VirtualMachineError,             "java/lang/VirtualMachineError")            \
243   template(java_lang_StackOverflowError,              "java/lang/StackOverflowError")             \
244   template(java_lang_StackTraceElement,               "java/lang/StackTraceElement")              \
245                                                                                                   \
246   /* Concurrency support */                                                                       \
247   template(java_util_concurrent_locks_AbstractOwnableSynchronizer,           "java/util/concurrent/locks/AbstractOwnableSynchronizer") \
248   template(jdk_internal_vm_annotation_Contended_signature,                   "Ljdk/internal/vm/annotation/Contended;")    \
249   template(jdk_internal_vm_annotation_ReservedStackAccess_signature,         "Ljdk/internal/vm/annotation/ReservedStackAccess;") \


250   template(jdk_internal_ValueBased_signature,                                "Ljdk/internal/ValueBased;") \
251                                                                                                   \
252   /* class symbols needed by intrinsics */                                                        \
253   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, template, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
254                                                                                                   \
255   /* Support for reflection based on dynamic bytecode generation (JDK 1.4 and above) */           \
256                                                                                                   \
257   template(jdk_internal_reflect,                      "jdk/internal/reflect")                     \
258   template(reflect_MethodAccessorImpl,                "jdk/internal/reflect/MethodAccessorImpl")      \
259   template(reflect_Reflection,                        "jdk/internal/reflect/Reflection")              \
260   template(reflect_CallerSensitive,                   "jdk/internal/reflect/CallerSensitive")         \
261   template(reflect_CallerSensitive_signature,         "Ljdk/internal/reflect/CallerSensitive;")       \
262   template(reflect_DirectConstructorHandleAccessor_NativeAccessor,   "jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor") \
263   template(clazz_name,                                "clazz")                                    \
264   template(exceptionTypes_name,                       "exceptionTypes")                           \
265   template(modifiers_name,                            "modifiers")                                \
266   template(invokeBasic_name,                          "invokeBasic")                              \
267   template(linkToVirtual_name,                        "linkToVirtual")                            \
268   template(linkToStatic_name,                         "linkToStatic")                             \
269   template(linkToSpecial_name,                        "linkToSpecial")                            \
270   template(linkToInterface_name,                      "linkToInterface")                          \
271   template(linkToNative_name,                         "linkToNative")                             \
272   template(compiledLambdaForm_name,                   "<compiledLambdaForm>")  /*fake name*/      \
273   template(star_name,                                 "*") /*not really a name*/                  \
274   template(invoke_name,                               "invoke")                                   \
275   template(parameterTypes_name,                       "parameterTypes")                           \
276   template(returnType_name,                           "returnType")                               \
277   template(signature_name,                            "signature")                                \
278   template(slot_name,                                 "slot")                                     \
279   template(trusted_final_name,                        "trustedFinal")                             \
280   template(blackhole_name,                            "<blackhole>")  /*fake name*/               \
281                                                                                                   \
282   /* Support for annotations (JDK 1.5 and above) */                                               \
283                                                                                                   \
284   template(annotations_name,                          "annotations")                              \
285   template(index_name,                                "index")                                    \
286   template(executable_name,                           "executable")                               \
287   template(parameter_annotations_name,                "parameterAnnotations")                     \
288   template(annotation_default_name,                   "annotationDefault")                        \
289   template(reflect_ConstantPool,                      "jdk/internal/reflect/ConstantPool")        \
290   template(base_name,                                 "base")                                     \
291   /* Type Annotations (JDK 8 and above) */                                                        \
292   template(type_annotations_name,                     "typeAnnotations")                          \
293                                                                                                   \
294   /* Intrinsic Annotation (JDK 9 and above) */                                                    \
295   template(jdk_internal_vm_annotation_DontInline_signature,  "Ljdk/internal/vm/annotation/DontInline;")  \
296   template(jdk_internal_vm_annotation_ForceInline_signature, "Ljdk/internal/vm/annotation/ForceInline;") \
297   template(jdk_internal_vm_annotation_Hidden_signature,      "Ljdk/internal/vm/annotation/Hidden;") \
298   template(jdk_internal_misc_Scoped_signature,               "Ljdk/internal/misc/ScopedMemoryAccess$Scoped;") \
299   template(jdk_internal_vm_annotation_IntrinsicCandidate_signature, "Ljdk/internal/vm/annotation/IntrinsicCandidate;") \

479   template(input_stream_void_signature,               "(Ljava/io/InputStream;)V")                 \
480   template(input_stream_signature,                    "Ljava/io/InputStream;")                    \
481   template(print_stream_signature,                    "Ljava/io/PrintStream;")                    \
482   template(defineOrCheckPackage_name,                 "defineOrCheckPackage")                     \
483   template(defineOrCheckPackage_signature,            "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
484   template(getProtectionDomain_name,                  "getProtectionDomain")                      \
485   template(getProtectionDomain_signature,             "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
486   template(java_lang_Integer_array_signature,         "[Ljava/lang/Integer;")                     \
487   template(java_lang_Long_array_signature,            "[Ljava/lang/Long;")                        \
488   template(java_lang_Character_array_signature,       "[Ljava/lang/Character;")                   \
489   template(java_lang_Short_array_signature,           "[Ljava/lang/Short;")                       \
490   template(java_lang_Byte_array_signature,            "[Ljava/lang/Byte;")                        \
491   template(java_lang_Boolean_signature,               "Ljava/lang/Boolean;")                      \
492   template(url_code_signer_array_void_signature,      "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \
493   template(jvmti_thread_state_name,                   "jvmti_thread_state")                       \
494   template(vthread_transition_disable_count_name,     "vthread_transition_disable_count")         \
495   template(is_in_vthread_transition_name,             "is_in_vthread_transition")                 \
496   template(module_entry_name,                         "module_entry")                             \
497   template(resolved_references_name,                  "<resolved_references>")                    \
498   template(init_lock_name,                            "<init_lock>")                              \



499   template(address_size_name,                         "ADDRESS_SIZE0")                            \
500   template(page_size_name,                            "PAGE_SIZE")                                \
501   template(big_endian_name,                           "BIG_ENDIAN")                               \
502   template(use_unaligned_access_name,                 "UNALIGNED_ACCESS")                         \
503   template(data_cache_line_flush_size_name,           "DATA_CACHE_LINE_FLUSH_SIZE")               \
504   template(during_unsafe_access_name,                 "during_unsafe_access")                     \
505   template(checkIndex_name,                           "checkIndex")                               \
506   template(jfr_epoch_name,                            "jfr_epoch")                                \
507   template(maxThawingSize_name,                       "maxThawingSize")                           \
508   template(lockStackSize_name,                        "lockStackSize")                            \
509   template(objectWaiter_name,                         "objectWaiter")                             \
510   template(atKlassInit_name,                          "atKlassInit")                              \
511   template(hasArgsAtTop_name,                         "hasArgsAtTop")                             \
512                                                                                                   \
513   /* name symbols needed by intrinsics */                                                         \
514   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
515                                                                                                   \
516   /* common signatures names */                                                                   \
517   template(void_method_signature,                     "()V")                                      \
518   template(void_boolean_signature,                    "()Z")                                      \

555   template(int_array_signature,                       "[I")                                       \
556   template(runnable_signature,                        "Ljava/lang/Runnable;")                     \
557   template(continuation_signature,                    "Ljdk/internal/vm/Continuation;")           \
558   template(continuationscope_signature,               "Ljdk/internal/vm/ContinuationScope;")      \
559   template(stackchunk_signature,                      "Ljdk/internal/vm/StackChunk;")             \
560   template(vthread_signature,                         "Ljava/lang/VirtualThread;")                \
561   template(object_void_signature,                     "(Ljava/lang/Object;)V")                    \
562   template(object_int_signature,                      "(Ljava/lang/Object;)I")                    \
563   template(long_object_long_signature,                "(JLjava/lang/Object;)J")                   \
564   template(object_boolean_signature,                  "(Ljava/lang/Object;)Z")                    \
565   template(object_object_signature,                   "(Ljava/lang/Object;)Ljava/lang/Object;")   \
566   template(string_void_signature,                     "(Ljava/lang/String;)V")                    \
567   template(string_bool_byte_array_signature,          "(Ljava/lang/String;Z)[B")                  \
568   template(throwable_signature,                       "Ljava/lang/Throwable;")                    \
569   template(throwable_void_signature,                  "(Ljava/lang/Throwable;)V")                 \
570   template(void_throwable_signature,                  "()Ljava/lang/Throwable;")                  \
571   template(class_void_signature,                      "(Ljava/lang/Class;)V")                     \
572   template(class_int_signature,                       "(Ljava/lang/Class;)I")                     \
573   template(class_long_signature,                      "(Ljava/lang/Class;)J")                     \
574   template(class_boolean_signature,                   "(Ljava/lang/Class;)Z")                     \

575   template(throwable_throwable_signature,             "(Ljava/lang/Throwable;)Ljava/lang/Throwable;")             \
576   template(thread_void_signature,                     "(Ljava/lang/Thread;)V")                                    \
577   template(runnable_void_signature,                   "(Ljava/lang/Runnable;)V")                                   \
578   template(threadgroup_runnable_void_signature,       "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V")           \
579   template(threadgroup_string_void_signature,         "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V")             \
580   template(void_threadgroup_array_signature,          "()[Ljava/lang/ThreadGroup;")                               \
581   template(string_class_signature,                    "(Ljava/lang/String;)Ljava/lang/Class;")                    \
582   template(string_boolean_class_signature,            "(Ljava/lang/String;Z)Ljava/lang/Class;")                   \
583   template(object_object_object_signature,            "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \

584   template(string_string_signature,                   "(Ljava/lang/String;)Ljava/lang/String;")                   \
585   template(classloader_class_string_string_long_signature,         "(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)J")             \
586   template(byte_array_void_signature,                 "([B)V")                                                    \
587   template(long_long_void_signature,                  "(JJ)V")                                                    \
588   template(void_byte_array_signature,                 "()[B")                                                     \
589   template(void_classloader_signature,                "()Ljava/lang/ClassLoader;")                                \
590   template(void_BuiltinClassLoader_signature,         "()Ljdk/internal/loader/BuiltinClassLoader;")               \
591   template(void_object_signature,                     "()Ljava/lang/Object;")                                     \
592   template(void_class_signature,                      "()Ljava/lang/Class;")                                      \
593   template(void_class_array_signature,                "()[Ljava/lang/Class;")                                     \
594   template(void_string_signature,                     "()Ljava/lang/String;")                                     \
595   template(object_array_object_signature,             "([Ljava/lang/Object;)Ljava/lang/Object;")                  \

596   template(object_object_array_object_signature,      "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
597   template(thread_signature,                          "Ljava/lang/Thread;")                                       \
598   template(thread_fieldholder_signature,              "Ljava/lang/Thread$FieldHolder;")                           \
599   template(threadgroup_signature,                     "Ljava/lang/ThreadGroup;")                                  \
600   template(threadgroup_array_signature,               "[Ljava/lang/ThreadGroup;")                                 \
601   template(class_array_signature,                     "[Ljava/lang/Class;")                                       \
602   template(classloader_signature,                     "Ljava/lang/ClassLoader;")                                  \
603   template(object_signature,                          "Ljava/lang/Object;")                                       \
604   template(object_array_signature,                    "[Ljava/lang/Object;")                                      \
605   template(class_signature,                           "Ljava/lang/Class;")                                        \
606   template(string_signature,                          "Ljava/lang/String;")                                       \
607   template(string_array_signature,                    "[Ljava/lang/String;")                                      \
608   template(reference_signature,                       "Ljava/lang/ref/Reference;")                                \
609   template(referencequeue_signature,                  "Ljava/lang/ref/ReferenceQueue;")                           \
610   template(executable_signature,                      "Ljava/lang/reflect/Executable;")                           \
611   template(module_signature,                          "Ljava/lang/Module;")                                       \
612   template(concurrenthashmap_signature,               "Ljava/util/concurrent/ConcurrentHashMap;")                 \
613   template(String_StringBuilder_signature,            "(Ljava/lang/String;)Ljava/lang/StringBuilder;")            \
614   template(int_StringBuilder_signature,               "(I)Ljava/lang/StringBuilder;")                             \
615   template(char_StringBuilder_signature,              "(C)Ljava/lang/StringBuilder;")                             \

686   template(addReads_signature,                         "(Ljava/lang/Module;Ljava/lang/Module;)V")                 \
687   template(addExports_name,                            "addExports")                                              \
688   template(addOpens_name,                              "addOpens")                                                \
689   template(addExports_signature,                       "(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V") \
690   template(addUses_name,                               "addUses")                                                 \
691   template(addUses_signature,                          "(Ljava/lang/Module;Ljava/lang/Class;)V")                  \
692   template(addProvides_name,                           "addProvides")                                             \
693   template(addProvides_signature,                      "(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \
694   template(loadModule_name,                            "loadModule")                                              \
695   template(loadModule_signature,                       "(Ljava/lang/String;)Ljava/lang/Module;")                  \
696   template(transformedByAgent_name,                    "transformedByAgent")                                      \
697   template(transformedByAgent_signature,               "(Ljava/lang/Module;)V")                                   \
698   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
699   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
700   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \
701   template(serializeSecurityPropertiesToByteArray_name, "serializeSecurityPropertiesToByteArray")                 \
702   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
703   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
704   template(classLoader_name,                           "classLoader")                                             \
705   template(componentType_name,                         "componentType")                                           \


706                                                                                                                   \
707   /* forEachRemaining support */                                                                                  \
708   template(java_util_stream_StreamsRangeIntSpliterator,          "java/util/stream/Streams$RangeIntSpliterator")  \
709                                                                                                                   \
710   /* jfr signatures */                                                                                            \
711   JFR_TEMPLATES(template)                                                                                         \
712                                                                                                                   \
713   /* CDS */                                                                                                       \
714   template(dumpSharedArchive,                               "dumpSharedArchive")                                  \
715   template(dumpSharedArchive_signature,                     "(ZLjava/lang/String;)Ljava/lang/String;")            \
716   template(generateLambdaFormHolderClasses,                 "generateLambdaFormHolderClasses")                    \
717   template(generateLambdaFormHolderClasses_signature,       "([Ljava/lang/String;)[Ljava/lang/Object;")           \
718   template(getResourceAsByteArray_name,                     "getResourceAsByteArray")                             \
719   template(getResourceAsByteArray_signature,                "(Ljava/lang/String;)[B")                             \
720   template(java_lang_Enum,                                  "java/lang/Enum")                                     \
721   template(java_lang_invoke_Invokers_Holder,                "java/lang/invoke/Invokers$Holder")                   \
722   template(java_lang_invoke_DirectMethodHandle_Holder,      "java/lang/invoke/DirectMethodHandle$Holder")         \
723   template(java_lang_invoke_LambdaForm_Holder,              "java/lang/invoke/LambdaForm$Holder")                 \
724   template(java_lang_invoke_DelegatingMethodHandle_Holder,  "java/lang/invoke/DelegatingMethodHandle$Holder")     \
725   template(jdk_internal_loader_ClassLoaders,                "jdk/internal/loader/ClassLoaders")                   \
726   template(jdk_internal_misc_CDS,                           "jdk/internal/misc/CDS")                              \
727   template(jdk_internal_vm_annotation_AOTSafeClassInitializer_signature, "Ljdk/internal/vm/annotation/AOTSafeClassInitializer;")\
728   template(java_util_concurrent_ConcurrentHashMap,          "java/util/concurrent/ConcurrentHashMap")             \
729   template(java_util_ArrayList,                             "java/util/ArrayList")                                \
730   template(jdk_internal_vm_annotation_AOTRuntimeSetup_signature, "Ljdk/internal/vm/annotation/AOTRuntimeSetup;")  \
731   template(runtimeSetup,                                    "runtimeSetup")                                       \
732   template(toFileURL_name,                                  "toFileURL")                                          \
733   template(toFileURL_signature,                             "(Ljava/lang/String;)Ljava/net/URL;")                 \
734                                                                                                                   \





735   /* jcmd Thread.dump_to_file */                                                                                  \
736   template(jdk_internal_vm_ThreadDumper,           "jdk/internal/vm/ThreadDumper")                                \
737   template(dumpThreads_name,                       "dumpThreads")                                                 \
738   template(dumpThreadsToJson_name,                 "dumpThreadsToJson")                                           \
739   template(jdk_internal_vm_ThreadSnapshot,         "jdk/internal/vm/ThreadSnapshot")                              \
740   template(jdk_internal_vm_ThreadLock,             "jdk/internal/vm/ThreadSnapshot$ThreadLock")                   \
741   template(jdk_internal_vm_ThreadLock_signature,   "Ljdk/internal/vm/ThreadSnapshot$ThreadLock;")                 \
742   template(jdk_internal_vm_ThreadLock_array,       "[Ljdk/internal/vm/ThreadSnapshot$ThreadLock;")                \
743                                                                                                                   \
744   /* jcmd Thread.vthread_scheduler and Thread.vthread_pollers */                                                  \
745   template(jdk_internal_vm_JcmdVThreadCommands,    "jdk/internal/vm/JcmdVThreadCommands")                         \
746   template(printScheduler_name,                    "printScheduler")                                              \
747   template(printPollers_name,                      "printPollers")                                                \
748 
749   /*end*/
750 
751 // enum for figuring positions and size of Symbol::_vm_symbols[]
752 enum class vmSymbolID : int {
753   // [FIRST_SID ... LAST_SID] is the iteration range for the *valid* symbols.
754   // NO_SID is used to indicate an invalid symbol. Some implementation code

795 
796   static constexpr int as_int(vmSymbolID sid) {
797     assert(is_valid_id(sid), "must be");
798     return static_cast<int>(sid);
799   }
800 
801   static constexpr int number_of_symbols() {
802     static_assert(NO_SID == 0, "must be a valid array index");
803     static_assert(FIRST_SID == 1, "must not be the same as NO_SID");
804     return SID_LIMIT;
805   }
806 
807   enum {
808     log2_SID_LIMIT = 11         // checked by an assert at start-up
809   };
810 
811  private:
812 
813   // Field signatures indexed by BasicType.
814   static Symbol* _type_signatures[T_VOID+1];




815 
816  public:
817   // Initialization
818   static void initialize();
819   // Accessing
820   #define VM_SYMBOL_DECLARE(name, ignore)                 \
821     static Symbol* name() {                               \
822       return Symbol::_vm_symbols[static_cast<int>(VM_SYMBOL_ENUM_NAME(name))]; \
823     }
824   VM_SYMBOLS_DO(VM_SYMBOL_DECLARE, VM_SYMBOL_DECLARE)
825   #undef VM_SYMBOL_DECLARE
826 
827   // Sharing support
828   static void symbols_do(SymbolClosure* f);
829   static void metaspace_pointers_do(MetaspaceClosure *it);
830   static void serialize(SerializeClosure* soc);
831 
832   static Symbol* type_signature(BasicType t) {
833     assert((uint)t < T_VOID+1, "range check");
834     assert(_type_signatures[t] != nullptr, "domain check");
835     return _type_signatures[t];
836   }
837 
838   static Symbol* symbol_at(vmSymbolID id) {
839     return Symbol::vm_symbol_at(id);
840   }
841 
842   // Returns symbol's vmSymbolID if one is assigned, else vmSymbolID::NO_SID.
843   static vmSymbolID find_sid(const Symbol* symbol);
844   static vmSymbolID find_sid(const char* symbol_name);
845 
846 #ifndef PRODUCT
847   // No need for this in the product:
848   static const char* name_for(vmSymbolID sid);
849 #endif //PRODUCT







850 };
851 
852 #endif // SHARE_CLASSFILE_VMSYMBOLS_HPP

 73   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
 74   template(java_lang_Runnable,                        "java/lang/Runnable")                       \
 75   template(jdk_internal_vm_ContinuationScope,         "jdk/internal/vm/ContinuationScope")        \
 76   template(jdk_internal_vm_StackChunk,                "jdk/internal/vm/StackChunk")               \
 77   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
 78   template(java_lang_Character,                       "java/lang/Character")                      \
 79   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
 80   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
 81   template(java_lang_Float,                           "java/lang/Float")                          \
 82   template(java_lang_Double,                          "java/lang/Double")                         \
 83   template(java_lang_Byte,                            "java/lang/Byte")                           \
 84   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
 85   template(java_lang_Short,                           "java/lang/Short")                          \
 86   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
 87   template(java_lang_Integer,                         "java/lang/Integer")                        \
 88   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
 89   template(java_lang_Long,                            "java/lang/Long")                           \
 90   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \
 91   template(java_lang_Void,                            "java/lang/Void")                           \
 92                                                                                                   \
 93   /* Valhalla migrated classes. */                                                                \
 94   template(java_lang_Number,                          "java/lang/Number")                         \
 95   template(java_lang_Record,                          "java/lang/Record")                         \
 96   template(java_util_Optional,                        "java/util/Optional")                       \
 97   template(java_util_OptionalInt,                     "java/util/OptionalInt")                    \
 98   template(java_util_OptionalLong,                    "java/util/OptionalLong")                   \
 99   template(java_util_OptionalDouble,                  "java/util/OptionalDouble")                 \
100   template(java_time_LocalDate,                       "java/time/LocalDate")                      \
101   template(java_time_LocalDateTime,                   "java/time/LocalDateTime")                  \
102   template(java_time_LocalTime,                       "java/time/LocalTime")                      \
103   template(java_time_Duration,                        "java/time/Duration")                       \
104   template(java_time_Instant,                         "java/time/Instant")                        \
105   template(java_time_MonthDay,                        "java/time/MonthDay")                       \
106   template(java_time_ZonedDateTime,                   "java/time/ZonedDateTime")                  \
107   template(java_time_OffsetDateTime,                  "java/time/OffsetDateTime")                 \
108   template(java_time_OffsetTime,                      "java/time/OffsetTime")                     \
109   template(java_time_YearMonth,                       "java/time/YearMonth")                      \
110   template(java_time_Year,                            "java/time/Year")                           \
111   template(java_time_Period,                          "java/time/Period")                         \
112   template(java_time_chrono_ChronoLocalDateImpl,      "java/time/chrono/ChronoLocalDateImpl")     \
113   template(java_time_chrono_MinguoDate,               "java/time/chrono/MinguoDate")              \
114   template(java_time_chrono_HijrahDate,               "java/time/chrono/HijrahDate")              \
115   template(java_time_chrono_JapaneseDate,             "java/time/chrono/JapaneseDate")            \
116   template(java_time_chrono_ThaiBuddhistDate,         "java/time/chrono/ThaiBuddhistDate")        \
117                                                                                                   \
118   template(jdk_internal_vm_vector_VectorSupport,      "jdk/internal/vm/vector/VectorSupport")     \
119   template(jdk_internal_vm_vector_Float16Math,        "jdk/internal/vm/vector/Float16Math")       \
120   template(jdk_internal_vm_vector_VectorPayload,      "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
121   template(jdk_internal_vm_vector_Vector,             "jdk/internal/vm/vector/VectorSupport$Vector")        \
122   template(jdk_internal_vm_vector_VectorMask,         "jdk/internal/vm/vector/VectorSupport$VectorMask")    \
123   template(jdk_internal_vm_vector_VectorShuffle,      "jdk/internal/vm/vector/VectorSupport$VectorShuffle") \
124   template(payload_name,                              "payload")                                            \
125   template(CTYPE_name,                                "CTYPE")                                              \
126   template(ETYPE_name,                                "ETYPE")                                              \
127   template(VLENGTH_name,                              "VLENGTH")                                            \
128                                                                                                   \
129   template(jdk_internal_vm_FillerObject,              "jdk/internal/vm/FillerObject")             \
130                                                                                                   \
131   template(java_lang_Shutdown,                        "java/lang/Shutdown")                       \
132   template(java_lang_ref_Reference,                   "java/lang/ref/Reference")                  \
133   template(java_lang_ref_SoftReference,               "java/lang/ref/SoftReference")              \
134   template(java_lang_ref_WeakReference,               "java/lang/ref/WeakReference")              \
135   template(java_lang_ref_FinalReference,              "java/lang/ref/FinalReference")             \
136   template(java_lang_ref_PhantomReference,            "java/lang/ref/PhantomReference")           \
137   template(java_lang_ref_Finalizer,                   "java/lang/ref/Finalizer")                  \

145   template(java_lang_StringBuffer,                    "java/lang/StringBuffer")                   \
146   template(java_lang_StringBuilder,                   "java/lang/StringBuilder")                  \
147   template(java_lang_ScopedValue,                     "java/lang/ScopedValue")                    \
148   template(java_lang_ScopedValue_Carrier,             "java/lang/ScopedValue$Carrier")            \
149   template(java_security_CodeSource,                  "java/security/CodeSource")                 \
150   template(java_security_ProtectionDomain,            "java/security/ProtectionDomain")           \
151   template(java_security_SecureClassLoader,           "java/security/SecureClassLoader")          \
152   template(java_net_URL,                              "java/net/URL")                             \
153   template(java_util_jar_Manifest,                    "java/util/jar/Manifest")                   \
154   template(java_io_ByteArrayInputStream,              "java/io/ByteArrayInputStream")             \
155   template(java_io_Serializable,                      "java/io/Serializable")                     \
156   template(java_nio_Buffer,                           "java/nio/Buffer")                          \
157   template(java_util_Arrays,                          "java/util/Arrays")                         \
158   template(java_util_Properties,                      "java/util/Properties")                     \
159   template(java_util_DualPivotQuicksort,              "java/util/DualPivotQuicksort")             \
160   template(jdk_internal_misc_Signal,                  "jdk/internal/misc/Signal")                 \
161   template(jdk_internal_util_Preconditions,           "jdk/internal/util/Preconditions")          \
162   template(java_lang_AssertionStatusDirectives,       "java/lang/AssertionStatusDirectives")      \
163   template(jdk_internal_vm_PostVMInitHook,            "jdk/internal/vm/PostVMInitHook")           \
164   template(java_util_Iterator,                        "java/util/Iterator")                       \

165   template(sun_instrument_InstrumentationImpl,        "sun/instrument/InstrumentationImpl")       \
166   template(sun_invoke_util_ValueConversions,          "sun/invoke/util/ValueConversions")         \
167                                                                                                   \
168   template(jdk_internal_loader_NativeLibraries,       "jdk/internal/loader/NativeLibraries")      \
169   template(jdk_internal_loader_BuiltinClassLoader,    "jdk/internal/loader/BuiltinClassLoader")   \
170   template(jdk_internal_loader_ClassLoaders_AppClassLoader,      "jdk/internal/loader/ClassLoaders$AppClassLoader")      \
171   template(jdk_internal_loader_ClassLoaders_PlatformClassLoader, "jdk/internal/loader/ClassLoaders$PlatformClassLoader") \
172   template(java_lang_Deprecated,                      "Ljava/lang/Deprecated;")                   \
173   template(since,                                     "since")                                    \
174   template(for_removal,                               "forRemoval")                               \
175   /* Java runtime version access */                                                               \
176   template(java_lang_VersionProps,                    "java/lang/VersionProps")                   \
177   template(java_version_name,                         "java_version")                             \
178   template(java_runtime_name_name,                    "java_runtime_name")                        \
179   template(java_runtime_version_name,                 "java_runtime_version")                     \
180   template(java_runtime_vendor_version_name,          "VENDOR_VERSION")                           \
181   template(java_runtime_vendor_vm_bug_url_name,       "VENDOR_URL_VM_BUG")                        \
182                                                                                                   \
183   /* system initialization */                                                                     \
184   template(initPhase1_name,                           "initPhase1")                               \
185   template(initPhase2_name,                           "initPhase2")                               \
186   template(initPhase3_name,                           "initPhase3")                               \
187   template(java_lang_module_init_signature,           "(Ljava/lang/ClassLoader;Ljava/lang/String;)V") \
188                                                                                                   \
189   /* class file format tags */                                                                    \
190   template(tag_source_file,                           "SourceFile")                               \
191   template(tag_inner_classes,                         "InnerClasses")                             \
192   template(tag_nest_members,                          "NestMembers")                              \
193   template(tag_nest_host,                             "NestHost")                                 \
194   template(tag_loadable_descriptors,                  "LoadableDescriptors")                      \
195   template(tag_constant_value,                        "ConstantValue")                            \
196   template(tag_code,                                  "Code")                                     \
197   template(tag_exceptions,                            "Exceptions")                               \
198   template(tag_line_number_table,                     "LineNumberTable")                          \
199   template(tag_local_variable_table,                  "LocalVariableTable")                       \
200   template(tag_local_variable_type_table,             "LocalVariableTypeTable")                   \
201   template(tag_method_parameters,                     "MethodParameters")                         \
202   template(tag_stack_map_table,                       "StackMapTable")                            \
203   template(tag_synthetic,                             "Synthetic")                                \
204   template(tag_deprecated,                            "Deprecated")                               \
205   template(tag_source_debug_extension,                "SourceDebugExtension")                     \
206   template(tag_signature,                             "Signature")                                \
207   template(tag_record,                                "Record")                                   \
208   template(tag_runtime_visible_annotations,           "RuntimeVisibleAnnotations")                \
209   template(tag_runtime_invisible_annotations,         "RuntimeInvisibleAnnotations")              \
210   template(tag_runtime_visible_parameter_annotations, "RuntimeVisibleParameterAnnotations")       \
211   template(tag_runtime_invisible_parameter_annotations,"RuntimeInvisibleParameterAnnotations")    \
212   template(tag_annotation_default,                    "AnnotationDefault")                        \
213   template(tag_runtime_visible_type_annotations,      "RuntimeVisibleTypeAnnotations")            \
214   template(tag_runtime_invisible_type_annotations,    "RuntimeInvisibleTypeAnnotations")          \
215   template(tag_enclosing_method,                      "EnclosingMethod")                          \
216   template(tag_bootstrap_methods,                     "BootstrapMethods")                         \
217   template(tag_permitted_subclasses,                  "PermittedSubclasses")                      \
218                                                                                                   \
219   /* exception klasses: at least all exceptions thrown by the VM have entries here */             \
220   template(java_lang_ArithmeticException,             "java/lang/ArithmeticException")            \
221   template(java_lang_ArrayIndexOutOfBoundsException,  "java/lang/ArrayIndexOutOfBoundsException") \
222   template(java_lang_ArrayStoreException,             "java/lang/ArrayStoreException")            \
223   template(java_lang_ClassCastException,              "java/lang/ClassCastException")             \
224   template(java_lang_ClassNotFoundException,          "java/lang/ClassNotFoundException")         \
225   template(java_lang_CloneNotSupportedException,      "java/lang/CloneNotSupportedException")     \
226   template(java_lang_IllegalAccessException,          "java/lang/IllegalAccessException")         \
227   template(java_lang_IllegalArgumentException,        "java/lang/IllegalArgumentException")       \
228   template(java_lang_IllegalCallerException,          "java/lang/IllegalCallerException")         \
229   template(java_lang_IllegalStateException,           "java/lang/IllegalStateException")          \
230   template(java_lang_IllegalMonitorStateException,    "java/lang/IllegalMonitorStateException")   \
231   template(java_lang_IdentityException,               "java/lang/IdentityException")              \
232   template(java_lang_IllegalThreadStateException,     "java/lang/IllegalThreadStateException")    \
233   template(java_lang_IndexOutOfBoundsException,       "java/lang/IndexOutOfBoundsException")      \
234   template(java_lang_InstantiationException,          "java/lang/InstantiationException")         \
235   template(java_lang_InstantiationError,              "java/lang/InstantiationError")             \
236   template(java_lang_InterruptedException,            "java/lang/InterruptedException")           \
237   template(java_lang_BootstrapMethodError,            "java/lang/BootstrapMethodError")           \
238   template(java_lang_LinkageError,                    "java/lang/LinkageError")                   \
239   template(java_lang_NegativeArraySizeException,      "java/lang/NegativeArraySizeException")     \
240   template(java_lang_NoSuchMethodException,           "java/lang/NoSuchMethodException")          \
241   template(java_lang_NullPointerException,            "java/lang/NullPointerException")           \
242   template(java_lang_StringIndexOutOfBoundsException, "java/lang/StringIndexOutOfBoundsException")\
243   template(java_lang_UnsupportedOperationException,   "java/lang/UnsupportedOperationException")  \
244   template(java_lang_InvalidClassException,           "java/lang/InvalidClassException")          \
245   template(java_lang_reflect_InvocationTargetException, "java/lang/reflect/InvocationTargetException") \
246   template(java_lang_Exception,                       "java/lang/Exception")                      \
247   template(java_lang_RuntimeException,                "java/lang/RuntimeException")               \
248   template(java_io_IOException,                       "java/io/IOException")                      \
249   template(jdk_internal_vm_PreemptedException,        "jdk/internal/vm/PreemptedException")       \
250                                                                                                   \
251   /* error klasses: at least all errors thrown by the VM have entries here */                     \

256   template(java_lang_Error,                           "java/lang/Error")                          \
257   template(java_lang_ExceptionInInitializerError,     "java/lang/ExceptionInInitializerError")    \
258   template(java_lang_IllegalAccessError,              "java/lang/IllegalAccessError")             \
259   template(java_lang_IncompatibleClassChangeError,    "java/lang/IncompatibleClassChangeError")   \
260   template(java_lang_InternalError,                   "java/lang/InternalError")                  \
261   template(java_lang_NoClassDefFoundError,            "java/lang/NoClassDefFoundError")           \
262   template(java_lang_NoSuchFieldError,                "java/lang/NoSuchFieldError")               \
263   template(java_lang_NoSuchMethodError,               "java/lang/NoSuchMethodError")              \
264   template(java_lang_OutOfMemoryError,                "java/lang/OutOfMemoryError")               \
265   template(java_lang_UnsatisfiedLinkError,            "java/lang/UnsatisfiedLinkError")           \
266   template(java_lang_VerifyError,                     "java/lang/VerifyError")                    \
267   template(java_lang_SecurityException,               "java/lang/SecurityException")              \
268   template(java_lang_VirtualMachineError,             "java/lang/VirtualMachineError")            \
269   template(java_lang_StackOverflowError,              "java/lang/StackOverflowError")             \
270   template(java_lang_StackTraceElement,               "java/lang/StackTraceElement")              \
271                                                                                                   \
272   /* Concurrency support */                                                                       \
273   template(java_util_concurrent_locks_AbstractOwnableSynchronizer,           "java/util/concurrent/locks/AbstractOwnableSynchronizer") \
274   template(jdk_internal_vm_annotation_Contended_signature,                   "Ljdk/internal/vm/annotation/Contended;")    \
275   template(jdk_internal_vm_annotation_ReservedStackAccess_signature,         "Ljdk/internal/vm/annotation/ReservedStackAccess;") \
276   template(jdk_internal_vm_annotation_LooselyConsistentValue_signature,      "Ljdk/internal/vm/annotation/LooselyConsistentValue;") \
277   template(jdk_internal_vm_annotation_NullRestricted_signature,              "Ljdk/internal/vm/annotation/NullRestricted;") \
278   template(jdk_internal_ValueBased_signature,                                "Ljdk/internal/ValueBased;") \
279                                                                                                   \
280   /* class symbols needed by intrinsics */                                                        \
281   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, template, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
282                                                                                                   \
283   /* Support for reflection based on dynamic bytecode generation (JDK 1.4 and above) */           \
284                                                                                                   \
285   template(jdk_internal_reflect,                      "jdk/internal/reflect")                     \
286   template(reflect_MethodAccessorImpl,                "jdk/internal/reflect/MethodAccessorImpl")      \
287   template(reflect_Reflection,                        "jdk/internal/reflect/Reflection")              \
288   template(reflect_CallerSensitive,                   "jdk/internal/reflect/CallerSensitive")         \
289   template(reflect_CallerSensitive_signature,         "Ljdk/internal/reflect/CallerSensitive;")       \
290   template(reflect_DirectConstructorHandleAccessor_NativeAccessor,   "jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor") \
291   template(clazz_name,                                "clazz")                                    \
292   template(exceptionTypes_name,                       "exceptionTypes")                           \
293   template(modifiers_name,                            "modifiers")                                \
294   template(invokeBasic_name,                          "invokeBasic")                              \
295   template(linkToVirtual_name,                        "linkToVirtual")                            \
296   template(linkToStatic_name,                         "linkToStatic")                             \
297   template(linkToSpecial_name,                        "linkToSpecial")                            \
298   template(linkToInterface_name,                      "linkToInterface")                          \
299   template(linkToNative_name,                         "linkToNative")                             \
300   template(compiledLambdaForm_name,                   "<compiledLambdaForm>")  /*fake name*/      \
301   template(star_name,                                 "*") /*not really a name*/                  \
302   template(invoke_name,                               "invoke")                                   \
303   template(parameterTypes_name,                       "parameterTypes")                           \
304   template(returnType_name,                           "returnType")                               \
305   template(signature_name,                            "signature")                                \
306   template(slot_name,                                 "slot")                                     \

307   template(blackhole_name,                            "<blackhole>")  /*fake name*/               \
308                                                                                                   \
309   /* Support for annotations (JDK 1.5 and above) */                                               \
310                                                                                                   \
311   template(annotations_name,                          "annotations")                              \
312   template(index_name,                                "index")                                    \
313   template(executable_name,                           "executable")                               \
314   template(parameter_annotations_name,                "parameterAnnotations")                     \
315   template(annotation_default_name,                   "annotationDefault")                        \
316   template(reflect_ConstantPool,                      "jdk/internal/reflect/ConstantPool")        \
317   template(base_name,                                 "base")                                     \
318   /* Type Annotations (JDK 8 and above) */                                                        \
319   template(type_annotations_name,                     "typeAnnotations")                          \
320                                                                                                   \
321   /* Intrinsic Annotation (JDK 9 and above) */                                                    \
322   template(jdk_internal_vm_annotation_DontInline_signature,  "Ljdk/internal/vm/annotation/DontInline;")  \
323   template(jdk_internal_vm_annotation_ForceInline_signature, "Ljdk/internal/vm/annotation/ForceInline;") \
324   template(jdk_internal_vm_annotation_Hidden_signature,      "Ljdk/internal/vm/annotation/Hidden;") \
325   template(jdk_internal_misc_Scoped_signature,               "Ljdk/internal/misc/ScopedMemoryAccess$Scoped;") \
326   template(jdk_internal_vm_annotation_IntrinsicCandidate_signature, "Ljdk/internal/vm/annotation/IntrinsicCandidate;") \

506   template(input_stream_void_signature,               "(Ljava/io/InputStream;)V")                 \
507   template(input_stream_signature,                    "Ljava/io/InputStream;")                    \
508   template(print_stream_signature,                    "Ljava/io/PrintStream;")                    \
509   template(defineOrCheckPackage_name,                 "defineOrCheckPackage")                     \
510   template(defineOrCheckPackage_signature,            "(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;") \
511   template(getProtectionDomain_name,                  "getProtectionDomain")                      \
512   template(getProtectionDomain_signature,             "(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;") \
513   template(java_lang_Integer_array_signature,         "[Ljava/lang/Integer;")                     \
514   template(java_lang_Long_array_signature,            "[Ljava/lang/Long;")                        \
515   template(java_lang_Character_array_signature,       "[Ljava/lang/Character;")                   \
516   template(java_lang_Short_array_signature,           "[Ljava/lang/Short;")                       \
517   template(java_lang_Byte_array_signature,            "[Ljava/lang/Byte;")                        \
518   template(java_lang_Boolean_signature,               "Ljava/lang/Boolean;")                      \
519   template(url_code_signer_array_void_signature,      "(Ljava/net/URL;[Ljava/security/CodeSigner;)V") \
520   template(jvmti_thread_state_name,                   "jvmti_thread_state")                       \
521   template(vthread_transition_disable_count_name,     "vthread_transition_disable_count")         \
522   template(is_in_vthread_transition_name,             "is_in_vthread_transition")                 \
523   template(module_entry_name,                         "module_entry")                             \
524   template(resolved_references_name,                  "<resolved_references>")                    \
525   template(init_lock_name,                            "<init_lock>")                              \
526   template(null_reset_value_name,                     ".null_reset")                              \
527   template(acmp_maps_name,                            ".acmp_maps")                               \
528   template(empty_marker_name,                         ".empty")                                   \
529   template(address_size_name,                         "ADDRESS_SIZE0")                            \
530   template(page_size_name,                            "PAGE_SIZE")                                \
531   template(big_endian_name,                           "BIG_ENDIAN")                               \
532   template(use_unaligned_access_name,                 "UNALIGNED_ACCESS")                         \
533   template(data_cache_line_flush_size_name,           "DATA_CACHE_LINE_FLUSH_SIZE")               \
534   template(during_unsafe_access_name,                 "during_unsafe_access")                     \
535   template(checkIndex_name,                           "checkIndex")                               \
536   template(jfr_epoch_name,                            "jfr_epoch")                                \
537   template(maxThawingSize_name,                       "maxThawingSize")                           \
538   template(lockStackSize_name,                        "lockStackSize")                            \
539   template(objectWaiter_name,                         "objectWaiter")                             \
540   template(atKlassInit_name,                          "atKlassInit")                              \
541   template(hasArgsAtTop_name,                         "hasArgsAtTop")                             \
542                                                                                                   \
543   /* name symbols needed by intrinsics */                                                         \
544   VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \
545                                                                                                   \
546   /* common signatures names */                                                                   \
547   template(void_method_signature,                     "()V")                                      \
548   template(void_boolean_signature,                    "()Z")                                      \

585   template(int_array_signature,                       "[I")                                       \
586   template(runnable_signature,                        "Ljava/lang/Runnable;")                     \
587   template(continuation_signature,                    "Ljdk/internal/vm/Continuation;")           \
588   template(continuationscope_signature,               "Ljdk/internal/vm/ContinuationScope;")      \
589   template(stackchunk_signature,                      "Ljdk/internal/vm/StackChunk;")             \
590   template(vthread_signature,                         "Ljava/lang/VirtualThread;")                \
591   template(object_void_signature,                     "(Ljava/lang/Object;)V")                    \
592   template(object_int_signature,                      "(Ljava/lang/Object;)I")                    \
593   template(long_object_long_signature,                "(JLjava/lang/Object;)J")                   \
594   template(object_boolean_signature,                  "(Ljava/lang/Object;)Z")                    \
595   template(object_object_signature,                   "(Ljava/lang/Object;)Ljava/lang/Object;")   \
596   template(string_void_signature,                     "(Ljava/lang/String;)V")                    \
597   template(string_bool_byte_array_signature,          "(Ljava/lang/String;Z)[B")                  \
598   template(throwable_signature,                       "Ljava/lang/Throwable;")                    \
599   template(throwable_void_signature,                  "(Ljava/lang/Throwable;)V")                 \
600   template(void_throwable_signature,                  "()Ljava/lang/Throwable;")                  \
601   template(class_void_signature,                      "(Ljava/lang/Class;)V")                     \
602   template(class_int_signature,                       "(Ljava/lang/Class;)I")                     \
603   template(class_long_signature,                      "(Ljava/lang/Class;)J")                     \
604   template(class_boolean_signature,                   "(Ljava/lang/Class;)Z")                     \
605   template(class_class_signature,                     "(Ljava/lang/Class;)Ljava/lang/Class;")     \
606   template(throwable_throwable_signature,             "(Ljava/lang/Throwable;)Ljava/lang/Throwable;")             \
607   template(thread_void_signature,                     "(Ljava/lang/Thread;)V")                                    \
608   template(runnable_void_signature,                   "(Ljava/lang/Runnable;)V")                                   \
609   template(threadgroup_runnable_void_signature,       "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V")           \
610   template(threadgroup_string_void_signature,         "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V")             \
611   template(void_threadgroup_array_signature,          "()[Ljava/lang/ThreadGroup;")                               \
612   template(string_class_signature,                    "(Ljava/lang/String;)Ljava/lang/Class;")                    \
613   template(string_boolean_class_signature,            "(Ljava/lang/String;Z)Ljava/lang/Class;")                   \
614   template(object_object_object_signature,            "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \
615   template(object_object_boolean_signature,           "(Ljava/lang/Object;Ljava/lang/Object;)Z")                  \
616   template(string_string_signature,                   "(Ljava/lang/String;)Ljava/lang/String;")                   \
617   template(classloader_class_string_string_long_signature,         "(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)J")             \
618   template(byte_array_void_signature,                 "([B)V")                                                    \
619   template(long_long_void_signature,                  "(JJ)V")                                                    \
620   template(void_byte_array_signature,                 "()[B")                                                     \
621   template(void_classloader_signature,                "()Ljava/lang/ClassLoader;")                                \
622   template(void_BuiltinClassLoader_signature,         "()Ljdk/internal/loader/BuiltinClassLoader;")               \
623   template(void_object_signature,                     "()Ljava/lang/Object;")                                     \
624   template(void_class_signature,                      "()Ljava/lang/Class;")                                      \
625   template(void_class_array_signature,                "()[Ljava/lang/Class;")                                     \
626   template(void_string_signature,                     "()Ljava/lang/String;")                                     \
627   template(object_array_object_signature,             "([Ljava/lang/Object;)Ljava/lang/Object;")                  \
628   template(object_array_boolean_signature,            "([Ljava/lang/Object;)Z")                                   \
629   template(object_object_array_object_signature,      "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\
630   template(thread_signature,                          "Ljava/lang/Thread;")                                       \
631   template(thread_fieldholder_signature,              "Ljava/lang/Thread$FieldHolder;")                           \
632   template(threadgroup_signature,                     "Ljava/lang/ThreadGroup;")                                  \
633   template(threadgroup_array_signature,               "[Ljava/lang/ThreadGroup;")                                 \
634   template(class_array_signature,                     "[Ljava/lang/Class;")                                       \
635   template(classloader_signature,                     "Ljava/lang/ClassLoader;")                                  \
636   template(object_signature,                          "Ljava/lang/Object;")                                       \
637   template(object_array_signature,                    "[Ljava/lang/Object;")                                      \
638   template(class_signature,                           "Ljava/lang/Class;")                                        \
639   template(string_signature,                          "Ljava/lang/String;")                                       \
640   template(string_array_signature,                    "[Ljava/lang/String;")                                      \
641   template(reference_signature,                       "Ljava/lang/ref/Reference;")                                \
642   template(referencequeue_signature,                  "Ljava/lang/ref/ReferenceQueue;")                           \
643   template(executable_signature,                      "Ljava/lang/reflect/Executable;")                           \
644   template(module_signature,                          "Ljava/lang/Module;")                                       \
645   template(concurrenthashmap_signature,               "Ljava/util/concurrent/ConcurrentHashMap;")                 \
646   template(String_StringBuilder_signature,            "(Ljava/lang/String;)Ljava/lang/StringBuilder;")            \
647   template(int_StringBuilder_signature,               "(I)Ljava/lang/StringBuilder;")                             \
648   template(char_StringBuilder_signature,              "(C)Ljava/lang/StringBuilder;")                             \

719   template(addReads_signature,                         "(Ljava/lang/Module;Ljava/lang/Module;)V")                 \
720   template(addExports_name,                            "addExports")                                              \
721   template(addOpens_name,                              "addOpens")                                                \
722   template(addExports_signature,                       "(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V") \
723   template(addUses_name,                               "addUses")                                                 \
724   template(addUses_signature,                          "(Ljava/lang/Module;Ljava/lang/Class;)V")                  \
725   template(addProvides_name,                           "addProvides")                                             \
726   template(addProvides_signature,                      "(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V") \
727   template(loadModule_name,                            "loadModule")                                              \
728   template(loadModule_signature,                       "(Ljava/lang/String;)Ljava/lang/Module;")                  \
729   template(transformedByAgent_name,                    "transformedByAgent")                                      \
730   template(transformedByAgent_signature,               "(Ljava/lang/Module;)V")                                   \
731   template(appendToClassPathForInstrumentation_name,   "appendToClassPathForInstrumentation")                     \
732   do_alias(appendToClassPathForInstrumentation_signature, string_void_signature)                                  \
733   template(serializePropertiesToByteArray_name,        "serializePropertiesToByteArray")                          \
734   template(serializeSecurityPropertiesToByteArray_name, "serializeSecurityPropertiesToByteArray")                 \
735   template(serializeAgentPropertiesToByteArray_name,   "serializeAgentPropertiesToByteArray")                     \
736   template(classRedefinedCount_name,                   "classRedefinedCount")                                     \
737   template(classLoader_name,                           "classLoader")                                             \
738   template(componentType_name,                         "componentType")                                           \
739   template(primaryType_name,                           "primaryType")                                             \
740   template(secondaryType_name,                         "secondaryType")                                           \
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(getResourceAsByteArray_name,                     "getResourceAsByteArray")                             \
754   template(getResourceAsByteArray_signature,                "(Ljava/lang/String;)[B")                             \
755   template(java_lang_Enum,                                  "java/lang/Enum")                                     \
756   template(java_lang_invoke_Invokers_Holder,                "java/lang/invoke/Invokers$Holder")                   \
757   template(java_lang_invoke_DirectMethodHandle_Holder,      "java/lang/invoke/DirectMethodHandle$Holder")         \
758   template(java_lang_invoke_LambdaForm_Holder,              "java/lang/invoke/LambdaForm$Holder")                 \
759   template(java_lang_invoke_DelegatingMethodHandle_Holder,  "java/lang/invoke/DelegatingMethodHandle$Holder")     \
760   template(jdk_internal_loader_ClassLoaders,                "jdk/internal/loader/ClassLoaders")                   \
761   template(jdk_internal_misc_CDS,                           "jdk/internal/misc/CDS")                              \
762   template(jdk_internal_vm_annotation_AOTSafeClassInitializer_signature, "Ljdk/internal/vm/annotation/AOTSafeClassInitializer;")\
763   template(java_util_concurrent_ConcurrentHashMap,          "java/util/concurrent/ConcurrentHashMap")             \
764   template(java_util_ArrayList,                             "java/util/ArrayList")                                \
765   template(jdk_internal_vm_annotation_AOTRuntimeSetup_signature, "Ljdk/internal/vm/annotation/AOTRuntimeSetup;")  \
766   template(runtimeSetup,                                    "runtimeSetup")                                       \
767   template(toFileURL_name,                                  "toFileURL")                                          \
768   template(toFileURL_signature,                             "(Ljava/lang/String;)Ljava/net/URL;")                 \
769                                                                                                                   \
770   template(java_lang_runtime_ValueObjectMethods,            "java/lang/runtime/ValueObjectMethods")               \
771   template(isSubstitutable_name,                            "isSubstitutable")                                    \
772   template(valueObjectHashCode_name,                        "valueObjectHashCode")                                \
773   template(jdk_internal_value_ValueClass,                   "jdk/internal/value/ValueClass")                      \
774                                                                                                                   \
775   /* jcmd Thread.dump_to_file */                                                                                  \
776   template(jdk_internal_vm_ThreadDumper,           "jdk/internal/vm/ThreadDumper")                                \
777   template(dumpThreads_name,                       "dumpThreads")                                                 \
778   template(dumpThreadsToJson_name,                 "dumpThreadsToJson")                                           \
779   template(jdk_internal_vm_ThreadSnapshot,         "jdk/internal/vm/ThreadSnapshot")                              \
780   template(jdk_internal_vm_ThreadLock,             "jdk/internal/vm/ThreadSnapshot$ThreadLock")                   \
781   template(jdk_internal_vm_ThreadLock_signature,   "Ljdk/internal/vm/ThreadSnapshot$ThreadLock;")                 \
782   template(jdk_internal_vm_ThreadLock_array,       "[Ljdk/internal/vm/ThreadSnapshot$ThreadLock;")                \
783                                                                                                                   \
784   /* jcmd Thread.vthread_scheduler and Thread.vthread_pollers */                                                  \
785   template(jdk_internal_vm_JcmdVThreadCommands,    "jdk/internal/vm/JcmdVThreadCommands")                         \
786   template(printScheduler_name,                    "printScheduler")                                              \
787   template(printPollers_name,                      "printPollers")                                                \
788 
789   /*end*/
790 
791 // enum for figuring positions and size of Symbol::_vm_symbols[]
792 enum class vmSymbolID : int {
793   // [FIRST_SID ... LAST_SID] is the iteration range for the *valid* symbols.
794   // NO_SID is used to indicate an invalid symbol. Some implementation code

835 
836   static constexpr int as_int(vmSymbolID sid) {
837     assert(is_valid_id(sid), "must be");
838     return static_cast<int>(sid);
839   }
840 
841   static constexpr int number_of_symbols() {
842     static_assert(NO_SID == 0, "must be a valid array index");
843     static_assert(FIRST_SID == 1, "must not be the same as NO_SID");
844     return SID_LIMIT;
845   }
846 
847   enum {
848     log2_SID_LIMIT = 11         // checked by an assert at start-up
849   };
850 
851  private:
852 
853   // Field signatures indexed by BasicType.
854   static Symbol* _type_signatures[T_VOID+1];
855   static void initialize_migrated_class_names();
856 
857   static const int _migrated_class_names_length = 31;
858   static Symbol* _migrated_class_names[_migrated_class_names_length];
859 
860  public:
861   // Initialization
862   static void initialize();
863   // Accessing
864   #define VM_SYMBOL_DECLARE(name, ignore)                 \
865     static Symbol* name() {                               \
866       return Symbol::_vm_symbols[static_cast<int>(VM_SYMBOL_ENUM_NAME(name))]; \
867     }
868   VM_SYMBOLS_DO(VM_SYMBOL_DECLARE, VM_SYMBOL_DECLARE)
869   #undef VM_SYMBOL_DECLARE
870 
871   // Sharing support
872   static void symbols_do(SymbolClosure* f);
873   static void metaspace_pointers_do(MetaspaceClosure *it);
874   static void serialize(SerializeClosure* soc);
875 
876   static Symbol* type_signature(BasicType t) {
877     assert((uint)t < T_VOID+1, "range check");
878     assert(_type_signatures[t] != nullptr, "domain check");
879     return _type_signatures[t];
880   }
881 
882   static Symbol* symbol_at(vmSymbolID id) {
883     return Symbol::vm_symbol_at(id);
884   }
885 
886   // Returns symbol's vmSymbolID if one is assigned, else vmSymbolID::NO_SID.
887   static vmSymbolID find_sid(const Symbol* symbol);
888   static vmSymbolID find_sid(const char* symbol_name);
889 
890 #ifndef PRODUCT
891   // No need for this in the product:
892   static const char* name_for(vmSymbolID sid);
893 #endif //PRODUCT
894 
895   template<typename Function>
896   static void migrated_class_names_do(Function f) {
897      for (int i = 0; i < _migrated_class_names_length; i++) {
898        f(_migrated_class_names[i]);
899      }
900   }
901 };
902 
903 #endif // SHARE_CLASSFILE_VMSYMBOLS_HPP
< prev index next >