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