277
278 // temporary: to emit warning if the default ext dirs are not empty.
279 // remove this variable when the warning is no longer needed.
280 static char* _ext_dirs;
281
282 // java.vendor.url.bug, bug reporting URL for fatal errors.
283 static const char* _java_vendor_url_bug;
284
285 // sun.java.launcher, private property to provide information about
286 // java launcher
287 static const char* _sun_java_launcher;
288
289 // sun.java.launcher.pid, private property
290 static int _sun_java_launcher_pid;
291
292 // was this VM created via the -XXaltjvm=<path> option
293 static bool _sun_java_launcher_is_altjvm;
294
295 // Option flags
296 static bool _has_profile;
297 // Value of the conservative maximum heap alignment needed
298 static size_t _conservative_max_heap_alignment;
299
300 static uintx _min_heap_size;
301
302 // -Xrun arguments
303 static AgentLibraryList _libraryList;
304 static void add_init_library(const char* name, char* options)
305 { _libraryList.add(new AgentLibrary(name, options, false, NULL)); }
306
307 // -agentlib and -agentpath arguments
308 static AgentLibraryList _agentList;
309 static void add_init_agent(const char* name, char* options, bool absolute_path)
310 { _agentList.add(new AgentLibrary(name, options, absolute_path, NULL)); }
311
312 // Late-binding agents not started via arguments
313 static void add_loaded_agent(AgentLibrary *agentLib)
314 { _agentList.add(agentLib); }
315 static void add_loaded_agent(const char* name, char* options, bool absolute_path, void* os_lib)
316 { _agentList.add(new AgentLibrary(name, options, absolute_path, os_lib)); }
382 static bool parse_argument(const char* arg, Flag::Flags origin);
383 static bool process_argument(const char* arg, jboolean ignore_unrecognized, Flag::Flags origin);
384 static void process_java_launcher_argument(const char*, void*);
385 static void process_java_compiler_argument(const char* arg);
386 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
387 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
388 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
389 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
390 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
391 static jint insert_vm_options_file(const JavaVMInitArgs* args,
392 const char* vm_options_file,
393 const int vm_options_file_pos,
394 ScopedVMInitArgs* vm_options_file_args,
395 ScopedVMInitArgs* args_out);
396 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
397 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
398 ScopedVMInitArgs* mod_args,
399 JavaVMInitArgs** args_out);
400 static jint match_special_option_and_act(const JavaVMInitArgs* args,
401 ScopedVMInitArgs* args_out);
402
403 static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
404 const JavaVMInitArgs *java_options_args,
405 const JavaVMInitArgs *cmd_line_args);
406 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin);
407 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
408 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
409
410 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
411 return is_bad_option(option, ignore, NULL);
412 }
413
414 static void describe_range_error(ArgsRange errcode);
415 static ArgsRange check_memory_size(julong size, julong min_size);
416 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
417 julong min_size);
418 // Parse a string for a unsigned integer. Returns true if value
419 // is an unsigned integer greater than or equal to the minimum
420 // parameter passed and returns the value in uintx_arg. Returns
421 // false otherwise, with uintx_arg undefined.
|
277
278 // temporary: to emit warning if the default ext dirs are not empty.
279 // remove this variable when the warning is no longer needed.
280 static char* _ext_dirs;
281
282 // java.vendor.url.bug, bug reporting URL for fatal errors.
283 static const char* _java_vendor_url_bug;
284
285 // sun.java.launcher, private property to provide information about
286 // java launcher
287 static const char* _sun_java_launcher;
288
289 // sun.java.launcher.pid, private property
290 static int _sun_java_launcher_pid;
291
292 // was this VM created via the -XXaltjvm=<path> option
293 static bool _sun_java_launcher_is_altjvm;
294
295 // Option flags
296 static bool _has_profile;
297 static const char* _gc_log_filename;
298 // Value of the conservative maximum heap alignment needed
299 static size_t _conservative_max_heap_alignment;
300
301 static uintx _min_heap_size;
302
303 // -Xrun arguments
304 static AgentLibraryList _libraryList;
305 static void add_init_library(const char* name, char* options)
306 { _libraryList.add(new AgentLibrary(name, options, false, NULL)); }
307
308 // -agentlib and -agentpath arguments
309 static AgentLibraryList _agentList;
310 static void add_init_agent(const char* name, char* options, bool absolute_path)
311 { _agentList.add(new AgentLibrary(name, options, absolute_path, NULL)); }
312
313 // Late-binding agents not started via arguments
314 static void add_loaded_agent(AgentLibrary *agentLib)
315 { _agentList.add(agentLib); }
316 static void add_loaded_agent(const char* name, char* options, bool absolute_path, void* os_lib)
317 { _agentList.add(new AgentLibrary(name, options, absolute_path, os_lib)); }
383 static bool parse_argument(const char* arg, Flag::Flags origin);
384 static bool process_argument(const char* arg, jboolean ignore_unrecognized, Flag::Flags origin);
385 static void process_java_launcher_argument(const char*, void*);
386 static void process_java_compiler_argument(const char* arg);
387 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
388 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
389 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
390 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
391 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
392 static jint insert_vm_options_file(const JavaVMInitArgs* args,
393 const char* vm_options_file,
394 const int vm_options_file_pos,
395 ScopedVMInitArgs* vm_options_file_args,
396 ScopedVMInitArgs* args_out);
397 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
398 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
399 ScopedVMInitArgs* mod_args,
400 JavaVMInitArgs** args_out);
401 static jint match_special_option_and_act(const JavaVMInitArgs* args,
402 ScopedVMInitArgs* args_out);
403
404 static bool handle_deprecated_print_gc_flags();
405
406 static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
407 const JavaVMInitArgs *java_options_args,
408 const JavaVMInitArgs *cmd_line_args);
409 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin);
410 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
411 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
412
413 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
414 return is_bad_option(option, ignore, NULL);
415 }
416
417 static void describe_range_error(ArgsRange errcode);
418 static ArgsRange check_memory_size(julong size, julong min_size);
419 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
420 julong min_size);
421 // Parse a string for a unsigned integer. Returns true if value
422 // is an unsigned integer greater than or equal to the minimum
423 // parameter passed and returns the value in uintx_arg. Returns
424 // false otherwise, with uintx_arg undefined.
|