68 char** Arguments::_jvm_args_array = NULL;
69 int Arguments::_num_jvm_args = 0;
70 char* Arguments::_java_command = NULL;
71 SystemProperty* Arguments::_system_properties = NULL;
72 const char* Arguments::_gc_log_filename = NULL;
73 size_t Arguments::_conservative_max_heap_alignment = 0;
74 Arguments::Mode Arguments::_mode = _mixed;
75 bool Arguments::_java_compiler = false;
76 bool Arguments::_xdebug_mode = false;
77 const char* Arguments::_java_vendor_url_bug = NULL;
78 const char* Arguments::_sun_java_launcher = DEFAULT_JAVA_LAUNCHER;
79 bool Arguments::_sun_java_launcher_is_altjvm = false;
80
81 // These parameters are reset in method parse_vm_init_args()
82 bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
83 bool Arguments::_UseOnStackReplacement = UseOnStackReplacement;
84 bool Arguments::_BackgroundCompilation = BackgroundCompilation;
85 bool Arguments::_ClipInlining = ClipInlining;
86 intx Arguments::_Tier3InvokeNotifyFreqLog = Tier3InvokeNotifyFreqLog;
87 intx Arguments::_Tier4InvocationThreshold = Tier4InvocationThreshold;
88 size_t Arguments::_SharedBaseAddress = SharedBaseAddress;
89
90 bool Arguments::_enable_preview = false;
91
92 char* Arguments::SharedArchivePath = NULL;
93 char* Arguments::SharedDynamicArchivePath = NULL;
94
95 AgentLibraryList Arguments::_libraryList;
96 AgentLibraryList Arguments::_agentList;
97
98 // These are not set by the JDK's built-in launchers, but they can be set by
99 // programs that embed the JVM using JNI_CreateJavaVM. See comments around
100 // JavaVMOption in jni.h.
101 abort_hook_t Arguments::_abort_hook = NULL;
102 exit_hook_t Arguments::_exit_hook = NULL;
103 vfprintf_hook_t Arguments::_vfprintf_hook = NULL;
104
105
106 SystemProperty *Arguments::_sun_boot_library_path = NULL;
107 SystemProperty *Arguments::_java_library_path = NULL;
108 SystemProperty *Arguments::_java_home = NULL;
2220 }
2221
2222 // Parse JavaVMInitArgs structure
2223
2224 jint Arguments::parse_vm_init_args(const JavaVMInitArgs *vm_options_args,
2225 const JavaVMInitArgs *java_tool_options_args,
2226 const JavaVMInitArgs *java_options_args,
2227 const JavaVMInitArgs *cmd_line_args) {
2228 bool patch_mod_javabase = false;
2229
2230 // Save default settings for some mode flags
2231 Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
2232 Arguments::_UseOnStackReplacement = UseOnStackReplacement;
2233 Arguments::_ClipInlining = ClipInlining;
2234 Arguments::_BackgroundCompilation = BackgroundCompilation;
2235 if (TieredCompilation) {
2236 Arguments::_Tier3InvokeNotifyFreqLog = Tier3InvokeNotifyFreqLog;
2237 Arguments::_Tier4InvocationThreshold = Tier4InvocationThreshold;
2238 }
2239
2240 // CDS dumping always write the archive to the default value of SharedBaseAddress.
2241 Arguments::_SharedBaseAddress = SharedBaseAddress;
2242
2243 // Setup flags for mixed which is the default
2244 set_mode_flags(_mixed);
2245
2246 // Parse args structure generated from java.base vm options resource
2247 jint result = parse_each_vm_init_arg(vm_options_args, &patch_mod_javabase, JVMFlag::JIMAGE_RESOURCE);
2248 if (result != JNI_OK) {
2249 return result;
2250 }
2251
2252 // Parse args structure generated from JAVA_TOOL_OPTIONS environment
2253 // variable (if present).
2254 result = parse_each_vm_init_arg(java_tool_options_args, &patch_mod_javabase, JVMFlag::ENVIRON_VAR);
2255 if (result != JNI_OK) {
2256 return result;
2257 }
2258
2259 // Parse args structure generated from the command line flags.
2260 result = parse_each_vm_init_arg(cmd_line_args, &patch_mod_javabase, JVMFlag::COMMAND_LINE);
2261 if (result != JNI_OK) {
|
68 char** Arguments::_jvm_args_array = NULL;
69 int Arguments::_num_jvm_args = 0;
70 char* Arguments::_java_command = NULL;
71 SystemProperty* Arguments::_system_properties = NULL;
72 const char* Arguments::_gc_log_filename = NULL;
73 size_t Arguments::_conservative_max_heap_alignment = 0;
74 Arguments::Mode Arguments::_mode = _mixed;
75 bool Arguments::_java_compiler = false;
76 bool Arguments::_xdebug_mode = false;
77 const char* Arguments::_java_vendor_url_bug = NULL;
78 const char* Arguments::_sun_java_launcher = DEFAULT_JAVA_LAUNCHER;
79 bool Arguments::_sun_java_launcher_is_altjvm = false;
80
81 // These parameters are reset in method parse_vm_init_args()
82 bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
83 bool Arguments::_UseOnStackReplacement = UseOnStackReplacement;
84 bool Arguments::_BackgroundCompilation = BackgroundCompilation;
85 bool Arguments::_ClipInlining = ClipInlining;
86 intx Arguments::_Tier3InvokeNotifyFreqLog = Tier3InvokeNotifyFreqLog;
87 intx Arguments::_Tier4InvocationThreshold = Tier4InvocationThreshold;
88 size_t Arguments::_default_SharedBaseAddress = SharedBaseAddress;
89
90 bool Arguments::_enable_preview = false;
91
92 char* Arguments::SharedArchivePath = NULL;
93 char* Arguments::SharedDynamicArchivePath = NULL;
94
95 AgentLibraryList Arguments::_libraryList;
96 AgentLibraryList Arguments::_agentList;
97
98 // These are not set by the JDK's built-in launchers, but they can be set by
99 // programs that embed the JVM using JNI_CreateJavaVM. See comments around
100 // JavaVMOption in jni.h.
101 abort_hook_t Arguments::_abort_hook = NULL;
102 exit_hook_t Arguments::_exit_hook = NULL;
103 vfprintf_hook_t Arguments::_vfprintf_hook = NULL;
104
105
106 SystemProperty *Arguments::_sun_boot_library_path = NULL;
107 SystemProperty *Arguments::_java_library_path = NULL;
108 SystemProperty *Arguments::_java_home = NULL;
2220 }
2221
2222 // Parse JavaVMInitArgs structure
2223
2224 jint Arguments::parse_vm_init_args(const JavaVMInitArgs *vm_options_args,
2225 const JavaVMInitArgs *java_tool_options_args,
2226 const JavaVMInitArgs *java_options_args,
2227 const JavaVMInitArgs *cmd_line_args) {
2228 bool patch_mod_javabase = false;
2229
2230 // Save default settings for some mode flags
2231 Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
2232 Arguments::_UseOnStackReplacement = UseOnStackReplacement;
2233 Arguments::_ClipInlining = ClipInlining;
2234 Arguments::_BackgroundCompilation = BackgroundCompilation;
2235 if (TieredCompilation) {
2236 Arguments::_Tier3InvokeNotifyFreqLog = Tier3InvokeNotifyFreqLog;
2237 Arguments::_Tier4InvocationThreshold = Tier4InvocationThreshold;
2238 }
2239
2240 // Remember the default value of SharedBaseAddress.
2241 Arguments::_default_SharedBaseAddress = SharedBaseAddress;
2242
2243 // Setup flags for mixed which is the default
2244 set_mode_flags(_mixed);
2245
2246 // Parse args structure generated from java.base vm options resource
2247 jint result = parse_each_vm_init_arg(vm_options_args, &patch_mod_javabase, JVMFlag::JIMAGE_RESOURCE);
2248 if (result != JNI_OK) {
2249 return result;
2250 }
2251
2252 // Parse args structure generated from JAVA_TOOL_OPTIONS environment
2253 // variable (if present).
2254 result = parse_each_vm_init_arg(java_tool_options_args, &patch_mod_javabase, JVMFlag::ENVIRON_VAR);
2255 if (result != JNI_OK) {
2256 return result;
2257 }
2258
2259 // Parse args structure generated from the command line flags.
2260 result = parse_each_vm_init_arg(cmd_line_args, &patch_mod_javabase, JVMFlag::COMMAND_LINE);
2261 if (result != JNI_OK) {
|