124 WB_ENTRY(jlong, WB_NMTMalloc(JNIEnv* env, jobject o, jlong size)) 125 jlong addr = 0; 126 127 if (MemTracker::is_on() && !MemTracker::shutdown_in_progress()) { 128 addr = (jlong)(uintptr_t)os::malloc(size, mtTest); 129 } 130 131 return addr; 132 WB_END 133 134 // Free the memory allocated by NMTAllocTest 135 WB_ENTRY(void, WB_NMTFree(JNIEnv* env, jobject o, jlong mem)) 136 os::free((void*)(uintptr_t)mem, mtTest); 137 WB_END 138 139 WB_ENTRY(jlong, WB_NMTReserveMemory(JNIEnv* env, jobject o, jlong size)) 140 jlong addr = 0; 141 142 if (MemTracker::is_on() && !MemTracker::shutdown_in_progress()) { 143 addr = (jlong)(uintptr_t)os::reserve_memory(size); 144 MemTracker::record_virtual_memory_type((address)addr, mtTest); 145 } 146 147 return addr; 148 WB_END 149 150 151 WB_ENTRY(void, WB_NMTCommitMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 152 os::commit_memory((char *)(uintptr_t)addr, size); 153 MemTracker::record_virtual_memory_type((address)(uintptr_t)addr, mtTest); 154 WB_END 155 156 WB_ENTRY(void, WB_NMTUncommitMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 157 os::uncommit_memory((char *)(uintptr_t)addr, size); 158 WB_END 159 160 WB_ENTRY(void, WB_NMTReleaseMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 161 os::release_memory((char *)(uintptr_t)addr, size); 162 WB_END 163 164 // Block until the current generation of NMT data to be merged, used to reliably test the NMT feature 165 WB_ENTRY(jboolean, WB_NMTWaitForDataMerge(JNIEnv* env)) 166 167 if (!MemTracker::is_on() || MemTracker::shutdown_in_progress()) { 168 return false; 169 } 170 171 return MemTracker::wbtest_wait_for_data_merge(); 172 WB_END 173 | 124 WB_ENTRY(jlong, WB_NMTMalloc(JNIEnv* env, jobject o, jlong size)) 125 jlong addr = 0; 126 127 if (MemTracker::is_on() && !MemTracker::shutdown_in_progress()) { 128 addr = (jlong)(uintptr_t)os::malloc(size, mtTest); 129 } 130 131 return addr; 132 WB_END 133 134 // Free the memory allocated by NMTAllocTest 135 WB_ENTRY(void, WB_NMTFree(JNIEnv* env, jobject o, jlong mem)) 136 os::free((void*)(uintptr_t)mem, mtTest); 137 WB_END 138 139 WB_ENTRY(jlong, WB_NMTReserveMemory(JNIEnv* env, jobject o, jlong size)) 140 jlong addr = 0; 141 142 if (MemTracker::is_on() && !MemTracker::shutdown_in_progress()) { 143 addr = (jlong)(uintptr_t)os::reserve_memory(size); 144 if (addr) { 145 NMTTrackOp op(NMTTrackOp::TypeOp); 146 op.execute_op((address)addr, 0, mtTest); 147 } 148 } 149 150 return addr; 151 WB_END 152 153 154 WB_ENTRY(void, WB_NMTCommitMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 155 os::commit_memory((char *)(uintptr_t)addr, size); 156 WB_END 157 158 WB_ENTRY(void, WB_NMTUncommitMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 159 os::uncommit_memory((char *)(uintptr_t)addr, size); 160 WB_END 161 162 WB_ENTRY(void, WB_NMTReleaseMemory(JNIEnv* env, jobject o, jlong addr, jlong size)) 163 os::release_memory((char *)(uintptr_t)addr, size); 164 WB_END 165 166 // Block until the current generation of NMT data to be merged, used to reliably test the NMT feature 167 WB_ENTRY(jboolean, WB_NMTWaitForDataMerge(JNIEnv* env)) 168 169 if (!MemTracker::is_on() || MemTracker::shutdown_in_progress()) { 170 return false; 171 } 172 173 return MemTracker::wbtest_wait_for_data_merge(); 174 WB_END 175 |