649 650 // Returns true if we are running in a headless jre. 651 static bool is_headless_jre(); 652 653 // JNI names 654 static void print_jni_name_prefix_on(outputStream* st, int args_size); 655 static void print_jni_name_suffix_on(outputStream* st, int args_size); 656 657 // Init os specific system properties values 658 static void init_system_properties_values(); 659 660 // IO operations, non-JVM_ version. 661 static int stat(const char* path, struct stat* sbuf); 662 static bool dir_is_empty(const char* path); 663 664 // IO operations on binary files 665 static int create_binary_file(const char* path, bool rewrite_existing); 666 static jlong current_file_offset(int fd); 667 static jlong seek_to_file_offset(int fd, jlong offset); 668 669 // Thread Local Storage 670 static int allocate_thread_local_storage(); 671 static void thread_local_storage_at_put(int index, void* value); 672 static void* thread_local_storage_at(int index); 673 static void free_thread_local_storage(int index); 674 675 // Retrieve native stack frames. 676 // Parameter: 677 // stack: an array to storage stack pointers. 678 // frames: size of above array. 679 // toSkip: number of stack frames to skip at the beginning. 680 // Return: number of stack frames captured. 681 static int get_native_stack(address* stack, int size, int toSkip = 0); 682 683 // General allocation (must be MT-safe) 684 static void* malloc (size_t size, MEMFLAGS flags, const NativeCallStack& stack); 685 static void* malloc (size_t size, MEMFLAGS flags); 686 static void* realloc (void *memblock, size_t size, MEMFLAGS flag, const NativeCallStack& stack); 687 static void* realloc (void *memblock, size_t size, MEMFLAGS flag); 688 689 static void free (void *memblock); 690 static bool check_heap(bool force = false); // verify C heap integrity 691 static char* strdup(const char *, MEMFLAGS flags = mtInternal); // Like strdup 692 // Like strdup, but exit VM when strdup() returns NULL 693 static char* strdup_check_oom(const char*, MEMFLAGS flags = mtInternal); 694 | 649 650 // Returns true if we are running in a headless jre. 651 static bool is_headless_jre(); 652 653 // JNI names 654 static void print_jni_name_prefix_on(outputStream* st, int args_size); 655 static void print_jni_name_suffix_on(outputStream* st, int args_size); 656 657 // Init os specific system properties values 658 static void init_system_properties_values(); 659 660 // IO operations, non-JVM_ version. 661 static int stat(const char* path, struct stat* sbuf); 662 static bool dir_is_empty(const char* path); 663 664 // IO operations on binary files 665 static int create_binary_file(const char* path, bool rewrite_existing); 666 static jlong current_file_offset(int fd); 667 static jlong seek_to_file_offset(int fd, jlong offset); 668 669 // Retrieve native stack frames. 670 // Parameter: 671 // stack: an array to storage stack pointers. 672 // frames: size of above array. 673 // toSkip: number of stack frames to skip at the beginning. 674 // Return: number of stack frames captured. 675 static int get_native_stack(address* stack, int size, int toSkip = 0); 676 677 // General allocation (must be MT-safe) 678 static void* malloc (size_t size, MEMFLAGS flags, const NativeCallStack& stack); 679 static void* malloc (size_t size, MEMFLAGS flags); 680 static void* realloc (void *memblock, size_t size, MEMFLAGS flag, const NativeCallStack& stack); 681 static void* realloc (void *memblock, size_t size, MEMFLAGS flag); 682 683 static void free (void *memblock); 684 static bool check_heap(bool force = false); // verify C heap integrity 685 static char* strdup(const char *, MEMFLAGS flags = mtInternal); // Like strdup 686 // Like strdup, but exit VM when strdup() returns NULL 687 static char* strdup_check_oom(const char*, MEMFLAGS flags = mtInternal); 688 |