< prev index next >

src/share/vm/prims/whitebox.cpp

Print this page
rev 12504 : [mq]: whitebox


 338 #endif // INCLUDE_ALL_GCS
 339   GenCollectedHeap* gch = GenCollectedHeap::heap();
 340   return !gch->is_in_young(p);
 341 WB_END
 342 
 343 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 344   oop p = JNIHandles::resolve(obj);
 345   return p->size() * HeapWordSize;
 346 WB_END
 347 
 348 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 349   size_t alignment = Universe::heap()->collector_policy()->space_alignment();
 350   return (jlong)alignment;
 351 WB_END
 352 
 353 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
 354   size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
 355   return (jlong)alignment;
 356 WB_END
 357 











 358 #if INCLUDE_ALL_GCS
 359 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj))
 360   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 361   oop result = JNIHandles::resolve(obj);
 362   const HeapRegion* hr = g1->heap_region_containing(result);
 363   return hr->is_humongous();
 364 WB_END
 365 
 366 WB_ENTRY(jboolean, WB_G1BelongsToHumongousRegion(JNIEnv* env, jobject o, jlong addr))
 367   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 368   const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 369   return hr->is_humongous();
 370 WB_END
 371 
 372 WB_ENTRY(jboolean, WB_G1BelongsToFreeRegion(JNIEnv* env, jobject o, jlong addr))
 373   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 374   const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 375   return hr->is_free();
 376 WB_END
 377 


1888                                                       (void*)&WB_GetMethodIntxOption},
1889   {CC"getMethodUintxOption",
1890       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/Long;",
1891                                                       (void*)&WB_GetMethodUintxOption},
1892   {CC"getMethodDoubleOption",
1893       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/Double;",
1894                                                       (void*)&WB_GetMethodDoubleOption},
1895   {CC"getMethodStringOption",
1896       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/String;",
1897                                                       (void*)&WB_GetMethodStringOption},
1898   {CC"isShared",           CC"(Ljava/lang/Object;)Z", (void*)&WB_IsShared },
1899   {CC"isSharedClass",      CC"(Ljava/lang/Class;)Z",  (void*)&WB_IsSharedClass },
1900   {CC"areSharedStringsIgnored",           CC"()Z",    (void*)&WB_AreSharedStringsIgnored },
1901   {CC"clearInlineCaches0",  CC"(Z)V",                 (void*)&WB_ClearInlineCaches },
1902   {CC"addCompilerDirective",    CC"(Ljava/lang/String;)I",
1903                                                       (void*)&WB_AddCompilerDirective },
1904   {CC"removeCompilerDirective",   CC"(I)V",             (void*)&WB_RemoveCompilerDirective },
1905   {CC"currentGC",                 CC"()I",            (void*)&WB_CurrentGC},
1906   {CC"allSupportedGC",            CC"()I",            (void*)&WB_AllSupportedGC},
1907   {CC"gcSelectedByErgo",          CC"()Z",            (void*)&WB_GCSelectedByErgo},



1908 };
1909 
1910 #undef CC
1911 
1912 JVM_ENTRY(void, JVM_RegisterWhiteBoxMethods(JNIEnv* env, jclass wbclass))
1913   {
1914     if (WhiteBoxAPI) {
1915       // Make sure that wbclass is loaded by the null classloader
1916       instanceKlassHandle ikh = instanceKlassHandle(JNIHandles::resolve(wbclass)->klass());
1917       Handle loader(THREAD, ikh->class_loader());
1918       if (loader.is_null()) {
1919         WhiteBox::register_methods(env, wbclass, thread, methods, sizeof(methods) / sizeof(methods[0]));
1920         WhiteBox::register_extended(env, wbclass, thread);
1921         WhiteBox::set_used();
1922       }
1923     }
1924   }
1925 JVM_END


 338 #endif // INCLUDE_ALL_GCS
 339   GenCollectedHeap* gch = GenCollectedHeap::heap();
 340   return !gch->is_in_young(p);
 341 WB_END
 342 
 343 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 344   oop p = JNIHandles::resolve(obj);
 345   return p->size() * HeapWordSize;
 346 WB_END
 347 
 348 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 349   size_t alignment = Universe::heap()->collector_policy()->space_alignment();
 350   return (jlong)alignment;
 351 WB_END
 352 
 353 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
 354   size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
 355   return (jlong)alignment;
 356 WB_END
 357 
 358 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
 359   return Universe::heap()->supports_concurrent_phase_control();
 360 WB_END
 361 
 362 WB_ENTRY(jboolean, WB_RequestConcurrentGCPhase(JNIEnv* env, jobject o, jstring name))
 363   Handle h_name(THREAD, JNIHandles::resolve(name));
 364   ResourceMark rm;
 365   const char* c_name = java_lang_String::as_utf8_string(h_name());
 366   return Universe::heap()->request_concurrent_phase(c_name);
 367 WB_END
 368 
 369 #if INCLUDE_ALL_GCS
 370 WB_ENTRY(jboolean, WB_G1IsHumongous(JNIEnv* env, jobject o, jobject obj))
 371   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 372   oop result = JNIHandles::resolve(obj);
 373   const HeapRegion* hr = g1->heap_region_containing(result);
 374   return hr->is_humongous();
 375 WB_END
 376 
 377 WB_ENTRY(jboolean, WB_G1BelongsToHumongousRegion(JNIEnv* env, jobject o, jlong addr))
 378   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 379   const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 380   return hr->is_humongous();
 381 WB_END
 382 
 383 WB_ENTRY(jboolean, WB_G1BelongsToFreeRegion(JNIEnv* env, jobject o, jlong addr))
 384   G1CollectedHeap* g1 = G1CollectedHeap::heap();
 385   const HeapRegion* hr = g1->heap_region_containing((void*) addr);
 386   return hr->is_free();
 387 WB_END
 388 


1899                                                       (void*)&WB_GetMethodIntxOption},
1900   {CC"getMethodUintxOption",
1901       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/Long;",
1902                                                       (void*)&WB_GetMethodUintxOption},
1903   {CC"getMethodDoubleOption",
1904       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/Double;",
1905                                                       (void*)&WB_GetMethodDoubleOption},
1906   {CC"getMethodStringOption",
1907       CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/String;",
1908                                                       (void*)&WB_GetMethodStringOption},
1909   {CC"isShared",           CC"(Ljava/lang/Object;)Z", (void*)&WB_IsShared },
1910   {CC"isSharedClass",      CC"(Ljava/lang/Class;)Z",  (void*)&WB_IsSharedClass },
1911   {CC"areSharedStringsIgnored",           CC"()Z",    (void*)&WB_AreSharedStringsIgnored },
1912   {CC"clearInlineCaches0",  CC"(Z)V",                 (void*)&WB_ClearInlineCaches },
1913   {CC"addCompilerDirective",    CC"(Ljava/lang/String;)I",
1914                                                       (void*)&WB_AddCompilerDirective },
1915   {CC"removeCompilerDirective",   CC"(I)V",             (void*)&WB_RemoveCompilerDirective },
1916   {CC"currentGC",                 CC"()I",            (void*)&WB_CurrentGC},
1917   {CC"allSupportedGC",            CC"()I",            (void*)&WB_AllSupportedGC},
1918   {CC"gcSelectedByErgo",          CC"()Z",            (void*)&WB_GCSelectedByErgo},
1919   {CC"supportsConcurrentGCPhaseControl", CC"()Z",     (void*)&WB_SupportsConcurrentGCPhaseControl},
1920   {CC"requestConcurrentGCPhase0", CC"(Ljava/lang/String;)Z",
1921                                                       (void*)&WB_RequestConcurrentGCPhase},
1922 };
1923 
1924 #undef CC
1925 
1926 JVM_ENTRY(void, JVM_RegisterWhiteBoxMethods(JNIEnv* env, jclass wbclass))
1927   {
1928     if (WhiteBoxAPI) {
1929       // Make sure that wbclass is loaded by the null classloader
1930       instanceKlassHandle ikh = instanceKlassHandle(JNIHandles::resolve(wbclass)->klass());
1931       Handle loader(THREAD, ikh->class_loader());
1932       if (loader.is_null()) {
1933         WhiteBox::register_methods(env, wbclass, thread, methods, sizeof(methods) / sizeof(methods[0]));
1934         WhiteBox::register_extended(env, wbclass, thread);
1935         WhiteBox::set_used();
1936       }
1937     }
1938   }
1939 JVM_END
< prev index next >