321
322 // Argument parsing
323 static void do_pd_flag_adjustments();
324 static bool parse_argument(const char* arg, FlagValueOrigin origin);
325 static bool process_argument(const char* arg, jboolean ignore_unrecognized, FlagValueOrigin origin);
326 static void process_java_launcher_argument(const char*, void*);
327 static void process_java_compiler_argument(char* arg);
328 static jint parse_options_environment_variable(const char* name, SysClassPath* scp_p, bool* scp_assembly_required_p);
329 static jint parse_java_tool_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
330 static jint parse_java_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
331 static jint parse_vm_init_args(const JavaVMInitArgs* args);
332 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, FlagValueOrigin origin);
333 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
334 static bool is_bad_option(const JavaVMOption* option, jboolean ignore,
335 const char* option_type);
336 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
337 return is_bad_option(option, ignore, NULL);
338 }
339 static bool verify_interval(uintx val, uintx min,
340 uintx max, const char* name);
341 static bool verify_percentage(uintx value, const char* name);
342 static void describe_range_error(ArgsRange errcode);
343 static ArgsRange check_memory_size(julong size, julong min_size);
344 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
345 julong min_size);
346 // Parse a string for a unsigned integer. Returns true if value
347 // is an unsigned integer greater than or equal to the minimum
348 // parameter passed and returns the value in uintx_arg. Returns
349 // false otherwise, with uintx_arg undefined.
350 static bool parse_uintx(const char* value, uintx* uintx_arg,
351 uintx min_size);
352
353 // methods to build strings from individual args
354 static void build_jvm_args(const char* arg);
355 static void build_jvm_flags(const char* arg);
356 static void add_string(char*** bldarray, int* count, const char* arg);
357 static const char* build_resource_string(char** args, int count);
358
359 static bool methodExists(
360 char* className, char* methodName,
383 static short CompileOnlyMethodsMax;
384 static char** CompileOnlyMethods;
385 static bool* CompileOnlyAllClasses;
386
387 static short InterpretOnlyClassesNum;
388 static short InterpretOnlyClassesMax;
389 static char** InterpretOnlyClasses;
390 static bool* InterpretOnlyAllMethods;
391
392 static bool CheckCompileOnly;
393
394 static char* SharedArchivePath;
395
396 public:
397 // Parses the arguments
398 static jint parse(const JavaVMInitArgs* args);
399 // Check for consistency in the selection of the garbage collector.
400 static bool check_gc_consistency();
401 // Check consistecy or otherwise of VM argument settings
402 static bool check_vm_args_consistency();
403 // Used by os_solaris
404 static bool process_settings_file(const char* file_name, bool should_exist, jboolean ignore_unrecognized);
405
406 // return a char* array containing all options
407 static char** jvm_flags_array() { return _jvm_flags_array; }
408 static char** jvm_args_array() { return _jvm_args_array; }
409 static int num_jvm_flags() { return _num_jvm_flags; }
410 static int num_jvm_args() { return _num_jvm_args; }
411 // return the arguments passed to the Java application
412 static const char* java_command() { return _java_command; }
413
414 // print jvm_flags, jvm_args and java_command
415 static void print_on(outputStream* st);
416
417 // convenient methods to obtain / print jvm_flags and jvm_args
418 static const char* jvm_flags() { return build_resource_string(_jvm_flags_array, _num_jvm_flags); }
419 static const char* jvm_args() { return build_resource_string(_jvm_args_array, _num_jvm_args); }
420 static void print_jvm_flags_on(outputStream* st);
421 static void print_jvm_args_on(outputStream* st);
422
|
321
322 // Argument parsing
323 static void do_pd_flag_adjustments();
324 static bool parse_argument(const char* arg, FlagValueOrigin origin);
325 static bool process_argument(const char* arg, jboolean ignore_unrecognized, FlagValueOrigin origin);
326 static void process_java_launcher_argument(const char*, void*);
327 static void process_java_compiler_argument(char* arg);
328 static jint parse_options_environment_variable(const char* name, SysClassPath* scp_p, bool* scp_assembly_required_p);
329 static jint parse_java_tool_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
330 static jint parse_java_options_environment_variable(SysClassPath* scp_p, bool* scp_assembly_required_p);
331 static jint parse_vm_init_args(const JavaVMInitArgs* args);
332 static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, FlagValueOrigin origin);
333 static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
334 static bool is_bad_option(const JavaVMOption* option, jboolean ignore,
335 const char* option_type);
336 static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
337 return is_bad_option(option, ignore, NULL);
338 }
339 static bool verify_interval(uintx val, uintx min,
340 uintx max, const char* name);
341 static bool verify_min_value(intx val, intx min, const char* name);
342 static bool verify_percentage(uintx value, const char* name);
343 static void describe_range_error(ArgsRange errcode);
344 static ArgsRange check_memory_size(julong size, julong min_size);
345 static ArgsRange parse_memory_size(const char* s, julong* long_arg,
346 julong min_size);
347 // Parse a string for a unsigned integer. Returns true if value
348 // is an unsigned integer greater than or equal to the minimum
349 // parameter passed and returns the value in uintx_arg. Returns
350 // false otherwise, with uintx_arg undefined.
351 static bool parse_uintx(const char* value, uintx* uintx_arg,
352 uintx min_size);
353
354 // methods to build strings from individual args
355 static void build_jvm_args(const char* arg);
356 static void build_jvm_flags(const char* arg);
357 static void add_string(char*** bldarray, int* count, const char* arg);
358 static const char* build_resource_string(char** args, int count);
359
360 static bool methodExists(
361 char* className, char* methodName,
384 static short CompileOnlyMethodsMax;
385 static char** CompileOnlyMethods;
386 static bool* CompileOnlyAllClasses;
387
388 static short InterpretOnlyClassesNum;
389 static short InterpretOnlyClassesMax;
390 static char** InterpretOnlyClasses;
391 static bool* InterpretOnlyAllMethods;
392
393 static bool CheckCompileOnly;
394
395 static char* SharedArchivePath;
396
397 public:
398 // Parses the arguments
399 static jint parse(const JavaVMInitArgs* args);
400 // Check for consistency in the selection of the garbage collector.
401 static bool check_gc_consistency();
402 // Check consistecy or otherwise of VM argument settings
403 static bool check_vm_args_consistency();
404 // Check stack pages settings
405 static bool check_stack_pages();
406 // Used by os_solaris
407 static bool process_settings_file(const char* file_name, bool should_exist, jboolean ignore_unrecognized);
408
409 // return a char* array containing all options
410 static char** jvm_flags_array() { return _jvm_flags_array; }
411 static char** jvm_args_array() { return _jvm_args_array; }
412 static int num_jvm_flags() { return _num_jvm_flags; }
413 static int num_jvm_args() { return _num_jvm_args; }
414 // return the arguments passed to the Java application
415 static const char* java_command() { return _java_command; }
416
417 // print jvm_flags, jvm_args and java_command
418 static void print_on(outputStream* st);
419
420 // convenient methods to obtain / print jvm_flags and jvm_args
421 static const char* jvm_flags() { return build_resource_string(_jvm_flags_array, _num_jvm_flags); }
422 static const char* jvm_args() { return build_resource_string(_jvm_args_array, _num_jvm_args); }
423 static void print_jvm_flags_on(outputStream* st);
424 static void print_jvm_args_on(outputStream* st);
425
|