408 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
409 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
410 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
411 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
412 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
413 static jint parse_xss(const JavaVMOption* option, const char* tail, intx* out_ThreadStackSize);
414 static jint insert_vm_options_file(const JavaVMInitArgs* args,
415 const char* vm_options_file,
416 const int vm_options_file_pos,
417 ScopedVMInitArgs* vm_options_file_args,
418 ScopedVMInitArgs* args_out);
419 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
420 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
421 ScopedVMInitArgs* mod_args,
422 JavaVMInitArgs** args_out);
423 static jint match_special_option_and_act(const JavaVMInitArgs* args,
424 ScopedVMInitArgs* args_out);
425
426 static bool handle_deprecated_print_gc_flags();
427
428 static void handle_extra_cms_flags(const char* msg);
429
430 static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
431 const JavaVMInitArgs *java_options_args,
432 const JavaVMInitArgs *cmd_line_args);
433 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_mod_javabase, JVMFlag::Flags origin);
434 static jint finalize_vm_init_args(bool patch_mod_javabase);
435 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
436
437 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
438 return is_bad_option(option, ignore, NULL);
439 }
440
441 static void describe_range_error(ArgsRange errcode);
442 static ArgsRange check_memory_size(julong size, julong min_size, julong max_size);
443 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
444 julong min_size, julong max_size = max_uintx);
445 // Parse a string for a unsigned integer. Returns true if value
446 // is an unsigned integer greater than or equal to the minimum
447 // parameter passed and returns the value in uintx_arg. Returns
448 // false otherwise, with uintx_arg undefined.
449 static bool parse_uintx(const char* value, uintx* uintx_arg,
|
408 static jint parse_options_environment_variable(const char* name, ScopedVMInitArgs* vm_args);
409 static jint parse_java_tool_options_environment_variable(ScopedVMInitArgs* vm_args);
410 static jint parse_java_options_environment_variable(ScopedVMInitArgs* vm_args);
411 static jint parse_vm_options_file(const char* file_name, ScopedVMInitArgs* vm_args);
412 static jint parse_options_buffer(const char* name, char* buffer, const size_t buf_len, ScopedVMInitArgs* vm_args);
413 static jint parse_xss(const JavaVMOption* option, const char* tail, intx* out_ThreadStackSize);
414 static jint insert_vm_options_file(const JavaVMInitArgs* args,
415 const char* vm_options_file,
416 const int vm_options_file_pos,
417 ScopedVMInitArgs* vm_options_file_args,
418 ScopedVMInitArgs* args_out);
419 static bool args_contains_vm_options_file_arg(const JavaVMInitArgs* args);
420 static jint expand_vm_options_as_needed(const JavaVMInitArgs* args_in,
421 ScopedVMInitArgs* mod_args,
422 JavaVMInitArgs** args_out);
423 static jint match_special_option_and_act(const JavaVMInitArgs* args,
424 ScopedVMInitArgs* args_out);
425
426 static bool handle_deprecated_print_gc_flags();
427
428 static jint parse_vm_init_args(const JavaVMInitArgs *java_tool_options_args,
429 const JavaVMInitArgs *java_options_args,
430 const JavaVMInitArgs *cmd_line_args);
431 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_mod_javabase, JVMFlag::Flags origin);
432 static jint finalize_vm_init_args(bool patch_mod_javabase);
433 static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
434
435 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
436 return is_bad_option(option, ignore, NULL);
437 }
438
439 static void describe_range_error(ArgsRange errcode);
440 static ArgsRange check_memory_size(julong size, julong min_size, julong max_size);
441 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
442 julong min_size, julong max_size = max_uintx);
443 // Parse a string for a unsigned integer. Returns true if value
444 // is an unsigned integer greater than or equal to the minimum
445 // parameter passed and returns the value in uintx_arg. Returns
446 // false otherwise, with uintx_arg undefined.
447 static bool parse_uintx(const char* value, uintx* uintx_arg,
|