< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 52494 : adding jtreg tests, whitebox api.
rev 52631 : Merge


  65 #include "runtime/jniHandles.inline.hpp"
  66 #include "runtime/os.hpp"
  67 #include "runtime/sweeper.hpp"
  68 #include "runtime/thread.hpp"
  69 #include "runtime/threadSMR.hpp"
  70 #include "runtime/vm_version.hpp"
  71 #include "services/memoryService.hpp"
  72 #include "utilities/align.hpp"
  73 #include "utilities/debug.hpp"
  74 #include "utilities/elfFile.hpp"
  75 #include "utilities/exceptions.hpp"
  76 #include "utilities/macros.hpp"
  77 #if INCLUDE_CDS
  78 #include "prims/cdsoffsets.hpp"
  79 #endif // INCLUDE_CDS
  80 #if INCLUDE_G1GC
  81 #include "gc/g1/g1CollectedHeap.inline.hpp"
  82 #include "gc/g1/g1ConcurrentMark.hpp"
  83 #include "gc/g1/g1ConcurrentMarkThread.hpp"
  84 #include "gc/g1/heapRegionRemSet.hpp"

  85 #endif // INCLUDE_G1GC
  86 #if INCLUDE_PARALLELGC
  87 #include "gc/parallel/parallelScavengeHeap.inline.hpp"
  88 #include "gc/parallel/adjoiningGenerations.hpp"
  89 #endif // INCLUDE_PARALLELGC
  90 #if INCLUDE_NMT
  91 #include "services/mallocSiteTable.hpp"
  92 #include "services/memTracker.hpp"
  93 #include "utilities/nativeCallStack.hpp"
  94 #endif // INCLUDE_NMT
  95 
  96 #ifdef LINUX
  97 #include "osContainer_linux.hpp"
  98 #endif
  99 
 100 #define SIZE_T_MAX_VALUE ((size_t) -1)
 101 
 102 #define CHECK_JNI_EXCEPTION_(env, value)                               \
 103   do {                                                                 \
 104     JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \


 353       return false;
 354     }
 355     return !(hr->is_young());
 356   }
 357 #endif
 358 #if INCLUDE_PARALLELGC
 359   if (UseParallelGC) {
 360     ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
 361     return !psh->is_in_young(p);
 362   }
 363 #endif
 364 #if INCLUDE_ZGC
 365   if (UseZGC) {
 366     return Universe::heap()->is_in(p);
 367   }
 368 #endif
 369   GenCollectedHeap* gch = GenCollectedHeap::heap();
 370   return !gch->is_in_young(p);
 371 WB_END
 372 




 373 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 374   oop p = JNIHandles::resolve(obj);
 375   return Universe::heap()->obj_size(p) * HeapWordSize;
 376 WB_END
 377 
 378 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 379   size_t alignment = Universe::heap()->collector_policy()->space_alignment();
 380   return (jlong)alignment;
 381 WB_END
 382 
 383 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
 384   size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
 385   return (jlong)alignment;
 386 WB_END
 387 
 388 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
 389   return Universe::heap()->supports_concurrent_phase_control();
 390 WB_END
 391 
 392 WB_ENTRY(jobjectArray, WB_GetConcurrentGCPhases(JNIEnv* env, jobject o))


 480 
 481 WB_ENTRY(jboolean, WB_G1StartMarkCycle(JNIEnv* env, jobject o))
 482   if (UseG1GC) {
 483     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 484     if (!g1h->concurrent_mark()->cm_thread()->during_cycle()) {
 485       g1h->collect(GCCause::_wb_conc_mark);
 486       return true;
 487     }
 488     return false;
 489   }
 490   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1StartMarkCycle: G1 GC is not enabled");
 491 WB_END
 492 
 493 WB_ENTRY(jint, WB_G1RegionSize(JNIEnv* env, jobject o))
 494   if (UseG1GC) {
 495     return (jint)HeapRegion::GrainBytes;
 496   }
 497   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1RegionSize: G1 GC is not enabled");
 498 WB_END
 499 






















































 500 #endif // INCLUDE_G1GC
 501 
 502 #if INCLUDE_PARALLELGC
 503 
 504 WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o))
 505   if (UseParallelGC) {
 506     return ParallelScavengeHeap::heap()->gens()->virtual_spaces()->alignment();
 507   }
 508   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_PSVirtualSpaceAlignment: Parallel GC is not enabled");
 509 WB_END
 510 
 511 WB_ENTRY(jlong, WB_PSHeapGenerationAlignment(JNIEnv* env, jobject o))
 512   if (UseParallelGC) {
 513     return ParallelScavengeHeap::heap()->generation_alignment();
 514   }
 515   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_PSHeapGenerationAlignment: Parallel GC is not enabled");
 516 WB_END
 517 
 518 #endif // INCLUDE_PARALLELGC
 519 


1998 // Elf decoder
1999 WB_ENTRY(void, WB_DisableElfSectionCache(JNIEnv* env))
2000 #if !defined(_WINDOWS) && !defined(__APPLE__) && !defined(_AIX)
2001   ElfFile::_do_not_cache_elf_section = true;
2002 #endif
2003 WB_END
2004 
2005 WB_ENTRY(jint, WB_ResolvedMethodRemovedCount(JNIEnv* env, jobject o))
2006   return (jint) ResolvedMethodTable::removed_entries_count();
2007 WB_END
2008 
2009 WB_ENTRY(jint, WB_ProtectionDomainRemovedCount(JNIEnv* env, jobject o))
2010   return (jint) SystemDictionary::pd_cache_table()->removed_entries_count();
2011 WB_END
2012 
2013 #define CC (char*)
2014 
2015 static JNINativeMethod methods[] = {
2016   {CC"getObjectAddress0",                CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress  },
2017   {CC"getObjectSize0",                   CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectSize     },

2018   {CC"isObjectInOldGen0",                CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen  },
2019   {CC"getHeapOopSize",                   CC"()I",                   (void*)&WB_GetHeapOopSize    },
2020   {CC"getVMPageSize",                    CC"()I",                   (void*)&WB_GetVMPageSize     },
2021   {CC"getVMAllocationGranularity",       CC"()J",                   (void*)&WB_GetVMAllocationGranularity },
2022   {CC"getVMLargePageSize",               CC"()J",                   (void*)&WB_GetVMLargePageSize},
2023   {CC"getHeapSpaceAlignment",            CC"()J",                   (void*)&WB_GetHeapSpaceAlignment},
2024   {CC"getHeapAlignment",                 CC"()J",                   (void*)&WB_GetHeapAlignment},
2025   {CC"isClassAlive0",                    CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive      },
2026   {CC"getSymbolRefcount",                CC"(Ljava/lang/String;)I", (void*)&WB_GetSymbolRefcount },
2027   {CC"parseCommandLine0",
2028       CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
2029       (void*) &WB_ParseCommandLine
2030   },
2031   {CC"addToBootstrapClassLoaderSearch0", CC"(Ljava/lang/String;)V",
2032                                                       (void*)&WB_AddToBootstrapClassLoaderSearch},
2033   {CC"addToSystemClassLoaderSearch0",    CC"(Ljava/lang/String;)V",
2034                                                       (void*)&WB_AddToSystemClassLoaderSearch},
2035   {CC"getCompressedOopsMaxHeapSize", CC"()J",
2036       (void*)&WB_GetCompressedOopsMaxHeapSize},
2037   {CC"printHeapSizes",     CC"()V",                   (void*)&WB_PrintHeapSizes    },
2038   {CC"runMemoryUnitTests", CC"()V",                   (void*)&WB_RunMemoryUnitTests},
2039   {CC"readFromNoaccessArea",CC"()V",                  (void*)&WB_ReadFromNoaccessArea},
2040   {CC"stressVirtualSpaceResize",CC"(JJJ)I",           (void*)&WB_StressVirtualSpaceResize},
2041 #if INCLUDE_CDS
2042   {CC"getOffsetForName0", CC"(Ljava/lang/String;)I",  (void*)&WB_GetOffsetForName},
2043 #endif
2044 #if INCLUDE_G1GC
2045   {CC"g1InConcurrentMark", CC"()Z",                   (void*)&WB_G1InConcurrentMark},
2046   {CC"g1IsHumongous0",      CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous     },
2047   {CC"g1BelongsToHumongousRegion0", CC"(J)Z",         (void*)&WB_G1BelongsToHumongousRegion},
2048   {CC"g1BelongsToFreeRegion0", CC"(J)Z",              (void*)&WB_G1BelongsToFreeRegion},
2049   {CC"g1NumMaxRegions",    CC"()J",                   (void*)&WB_G1NumMaxRegions  },
2050   {CC"g1NumFreeRegions",   CC"()J",                   (void*)&WB_G1NumFreeRegions  },
2051   {CC"g1RegionSize",       CC"()I",                   (void*)&WB_G1RegionSize      },




2052   {CC"g1StartConcMarkCycle",       CC"()Z",           (void*)&WB_G1StartMarkCycle  },
2053   {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;",
2054                                                       (void*)&WB_G1AuxiliaryMemoryUsage  },
2055   {CC"g1GetMixedGCInfo",   CC"(I)[J",                 (void*)&WB_G1GetMixedGCInfo },
2056 #endif // INCLUDE_G1GC
2057 #if INCLUDE_PARALLELGC
2058   {CC"psVirtualSpaceAlignment",CC"()J",               (void*)&WB_PSVirtualSpaceAlignment},
2059   {CC"psHeapGenerationAlignment",CC"()J",             (void*)&WB_PSHeapGenerationAlignment},
2060 #endif
2061 #if INCLUDE_NMT
2062   {CC"NMTMalloc",           CC"(J)J",                 (void*)&WB_NMTMalloc          },
2063   {CC"NMTMallocWithPseudoStack", CC"(JI)J",           (void*)&WB_NMTMallocWithPseudoStack},
2064   {CC"NMTFree",             CC"(J)V",                 (void*)&WB_NMTFree            },
2065   {CC"NMTReserveMemory",    CC"(J)J",                 (void*)&WB_NMTReserveMemory   },
2066   {CC"NMTAttemptReserveMemoryAt",    CC"(JJ)J",       (void*)&WB_NMTAttemptReserveMemoryAt },
2067   {CC"NMTCommitMemory",     CC"(JJ)V",                (void*)&WB_NMTCommitMemory    },
2068   {CC"NMTUncommitMemory",   CC"(JJ)V",                (void*)&WB_NMTUncommitMemory  },
2069   {CC"NMTReleaseMemory",    CC"(JJ)V",                (void*)&WB_NMTReleaseMemory   },
2070   {CC"NMTChangeTrackingLevel", CC"()Z",               (void*)&WB_NMTChangeTrackingLevel},
2071   {CC"NMTGetHashSize",      CC"()I",                  (void*)&WB_NMTGetHashSize     },




  65 #include "runtime/jniHandles.inline.hpp"
  66 #include "runtime/os.hpp"
  67 #include "runtime/sweeper.hpp"
  68 #include "runtime/thread.hpp"
  69 #include "runtime/threadSMR.hpp"
  70 #include "runtime/vm_version.hpp"
  71 #include "services/memoryService.hpp"
  72 #include "utilities/align.hpp"
  73 #include "utilities/debug.hpp"
  74 #include "utilities/elfFile.hpp"
  75 #include "utilities/exceptions.hpp"
  76 #include "utilities/macros.hpp"
  77 #if INCLUDE_CDS
  78 #include "prims/cdsoffsets.hpp"
  79 #endif // INCLUDE_CDS
  80 #if INCLUDE_G1GC
  81 #include "gc/g1/g1CollectedHeap.inline.hpp"
  82 #include "gc/g1/g1ConcurrentMark.hpp"
  83 #include "gc/g1/g1ConcurrentMarkThread.hpp"
  84 #include "gc/g1/heapRegionRemSet.hpp"
  85 #include "gc/g1/heterogeneousHeapRegionManager.hpp"
  86 #endif // INCLUDE_G1GC
  87 #if INCLUDE_PARALLELGC
  88 #include "gc/parallel/parallelScavengeHeap.inline.hpp"
  89 #include "gc/parallel/adjoiningGenerations.hpp"
  90 #endif // INCLUDE_PARALLELGC
  91 #if INCLUDE_NMT
  92 #include "services/mallocSiteTable.hpp"
  93 #include "services/memTracker.hpp"
  94 #include "utilities/nativeCallStack.hpp"
  95 #endif // INCLUDE_NMT
  96 
  97 #ifdef LINUX
  98 #include "osContainer_linux.hpp"
  99 #endif
 100 
 101 #define SIZE_T_MAX_VALUE ((size_t) -1)
 102 
 103 #define CHECK_JNI_EXCEPTION_(env, value)                               \
 104   do {                                                                 \
 105     JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \


 354       return false;
 355     }
 356     return !(hr->is_young());
 357   }
 358 #endif
 359 #if INCLUDE_PARALLELGC
 360   if (UseParallelGC) {
 361     ParallelScavengeHeap* psh = ParallelScavengeHeap::heap();
 362     return !psh->is_in_young(p);
 363   }
 364 #endif
 365 #if INCLUDE_ZGC
 366   if (UseZGC) {
 367     return Universe::heap()->is_in(p);
 368   }
 369 #endif
 370   GenCollectedHeap* gch = GenCollectedHeap::heap();
 371   return !gch->is_in_young(p);
 372 WB_END
 373 
 374 WB_ENTRY(jlong, WB_GetHeapBase(JNIEnv* env, jobject o))
 375   return (jlong)Universe::heap()->base();
 376 WB_END
 377 
 378 WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj))
 379   oop p = JNIHandles::resolve(obj);
 380   return Universe::heap()->obj_size(p) * HeapWordSize;
 381 WB_END
 382 
 383 WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o))
 384   size_t alignment = Universe::heap()->collector_policy()->space_alignment();
 385   return (jlong)alignment;
 386 WB_END
 387 
 388 WB_ENTRY(jlong, WB_GetHeapAlignment(JNIEnv* env, jobject o))
 389   size_t alignment = Universe::heap()->collector_policy()->heap_alignment();
 390   return (jlong)alignment;
 391 WB_END
 392 
 393 WB_ENTRY(jboolean, WB_SupportsConcurrentGCPhaseControl(JNIEnv* env, jobject o))
 394   return Universe::heap()->supports_concurrent_phase_control();
 395 WB_END
 396 
 397 WB_ENTRY(jobjectArray, WB_GetConcurrentGCPhases(JNIEnv* env, jobject o))


 485 
 486 WB_ENTRY(jboolean, WB_G1StartMarkCycle(JNIEnv* env, jobject o))
 487   if (UseG1GC) {
 488     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 489     if (!g1h->concurrent_mark()->cm_thread()->during_cycle()) {
 490       g1h->collect(GCCause::_wb_conc_mark);
 491       return true;
 492     }
 493     return false;
 494   }
 495   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1StartMarkCycle: G1 GC is not enabled");
 496 WB_END
 497 
 498 WB_ENTRY(jint, WB_G1RegionSize(JNIEnv* env, jobject o))
 499   if (UseG1GC) {
 500     return (jint)HeapRegion::GrainBytes;
 501   }
 502   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1RegionSize: G1 GC is not enabled");
 503 WB_END
 504 
 505 WB_ENTRY(jlong, WB_G1DramReservedStart(JNIEnv* env, jobject o))
 506   if (UseG1GC) {
 507     G1CollectedHeap* g1h = G1CollectedHeap::heap();
 508     if (g1h->is_hetero_heap()) {
 509       uint start_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_dram();
 510       return (jlong)(Universe::heap()->base() + start_region * HeapRegion::GrainBytes);
 511     } else {
 512       return (jlong)Universe::heap()->base();
 513     }
 514   }
 515   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1DramReservedStart: G1 GC is not enabled");
 516 WB_END
 517 
 518 WB_ENTRY(jlong, WB_G1DramReservedEnd(JNIEnv* env, jobject o))
 519 if (UseG1GC) {
 520   G1CollectedHeap* g1h = G1CollectedHeap::heap();
 521   if (g1h->is_hetero_heap()) {
 522     uint end_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->end_index_of_dram();
 523     return (jlong)(Universe::heap()->base() + (end_region + 1) * HeapRegion::GrainBytes - 1);
 524   }
 525   else {
 526     return (jlong)Universe::heap()->base() + Universe::heap()->collector_policy()->max_heap_byte_size();
 527   }
 528 }
 529 THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1DramReservedEnd: G1 GC is not enabled");
 530 WB_END
 531 
 532 WB_ENTRY(jlong, WB_G1NvdimmReservedStart(JNIEnv* env, jobject o))
 533 if (UseG1GC) {
 534   G1CollectedHeap* g1h = G1CollectedHeap::heap();
 535   if (g1h->is_hetero_heap()) {
 536     uint start_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_nvdimm();
 537     return (jlong)(Universe::heap()->base() + start_region * HeapRegion::GrainBytes);
 538   } else {
 539     THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedStart: G1 heap is not heterogeneous");
 540   }
 541 }
 542 THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedStart: G1 GC is not enabled");
 543 WB_END
 544 
 545 WB_ENTRY(jlong, WB_G1NvdimmReservedEnd(JNIEnv* env, jobject o))
 546 if (UseG1GC) {
 547   G1CollectedHeap* g1h = G1CollectedHeap::heap();
 548   if (g1h->is_hetero_heap()) {
 549     uint end_region = static_cast<HeterogeneousHeapRegionManager*>(g1h->hrm())->start_index_of_nvdimm();
 550     return (jlong)(Universe::heap()->base() + (end_region + 1) * HeapRegion::GrainBytes - 1);
 551   }
 552   else {
 553     THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedEnd: G1 heap is not heterogeneous");
 554   }
 555 }
 556 THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_G1NvdimmReservedEnd: G1 GC is not enabled");
 557 WB_END
 558 
 559 #endif // INCLUDE_G1GC
 560 
 561 #if INCLUDE_PARALLELGC
 562 
 563 WB_ENTRY(jlong, WB_PSVirtualSpaceAlignment(JNIEnv* env, jobject o))
 564   if (UseParallelGC) {
 565     return ParallelScavengeHeap::heap()->gens()->virtual_spaces()->alignment();
 566   }
 567   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_PSVirtualSpaceAlignment: Parallel GC is not enabled");
 568 WB_END
 569 
 570 WB_ENTRY(jlong, WB_PSHeapGenerationAlignment(JNIEnv* env, jobject o))
 571   if (UseParallelGC) {
 572     return ParallelScavengeHeap::heap()->generation_alignment();
 573   }
 574   THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), "WB_PSHeapGenerationAlignment: Parallel GC is not enabled");
 575 WB_END
 576 
 577 #endif // INCLUDE_PARALLELGC
 578 


2057 // Elf decoder
2058 WB_ENTRY(void, WB_DisableElfSectionCache(JNIEnv* env))
2059 #if !defined(_WINDOWS) && !defined(__APPLE__) && !defined(_AIX)
2060   ElfFile::_do_not_cache_elf_section = true;
2061 #endif
2062 WB_END
2063 
2064 WB_ENTRY(jint, WB_ResolvedMethodRemovedCount(JNIEnv* env, jobject o))
2065   return (jint) ResolvedMethodTable::removed_entries_count();
2066 WB_END
2067 
2068 WB_ENTRY(jint, WB_ProtectionDomainRemovedCount(JNIEnv* env, jobject o))
2069   return (jint) SystemDictionary::pd_cache_table()->removed_entries_count();
2070 WB_END
2071 
2072 #define CC (char*)
2073 
2074 static JNINativeMethod methods[] = {
2075   {CC"getObjectAddress0",                CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectAddress  },
2076   {CC"getObjectSize0",                   CC"(Ljava/lang/Object;)J", (void*)&WB_GetObjectSize     },
2077   {CC"getHeapBase",                      CC"()J",                   (void*)&WB_GetHeapBase       },
2078   {CC"isObjectInOldGen0",                CC"(Ljava/lang/Object;)Z", (void*)&WB_isObjectInOldGen  },
2079   {CC"getHeapOopSize",                   CC"()I",                   (void*)&WB_GetHeapOopSize    },
2080   {CC"getVMPageSize",                    CC"()I",                   (void*)&WB_GetVMPageSize     },
2081   {CC"getVMAllocationGranularity",       CC"()J",                   (void*)&WB_GetVMAllocationGranularity },
2082   {CC"getVMLargePageSize",               CC"()J",                   (void*)&WB_GetVMLargePageSize},
2083   {CC"getHeapSpaceAlignment",            CC"()J",                   (void*)&WB_GetHeapSpaceAlignment},
2084   {CC"getHeapAlignment",                 CC"()J",                   (void*)&WB_GetHeapAlignment},
2085   {CC"isClassAlive0",                    CC"(Ljava/lang/String;)Z", (void*)&WB_IsClassAlive      },
2086   {CC"getSymbolRefcount",                CC"(Ljava/lang/String;)I", (void*)&WB_GetSymbolRefcount },
2087   {CC"parseCommandLine0",
2088       CC"(Ljava/lang/String;C[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;",
2089       (void*) &WB_ParseCommandLine
2090   },
2091   {CC"addToBootstrapClassLoaderSearch0", CC"(Ljava/lang/String;)V",
2092                                                       (void*)&WB_AddToBootstrapClassLoaderSearch},
2093   {CC"addToSystemClassLoaderSearch0",    CC"(Ljava/lang/String;)V",
2094                                                       (void*)&WB_AddToSystemClassLoaderSearch},
2095   {CC"getCompressedOopsMaxHeapSize", CC"()J",
2096       (void*)&WB_GetCompressedOopsMaxHeapSize},
2097   {CC"printHeapSizes",     CC"()V",                   (void*)&WB_PrintHeapSizes    },
2098   {CC"runMemoryUnitTests", CC"()V",                   (void*)&WB_RunMemoryUnitTests},
2099   {CC"readFromNoaccessArea",CC"()V",                  (void*)&WB_ReadFromNoaccessArea},
2100   {CC"stressVirtualSpaceResize",CC"(JJJ)I",           (void*)&WB_StressVirtualSpaceResize},
2101 #if INCLUDE_CDS
2102   {CC"getOffsetForName0", CC"(Ljava/lang/String;)I",  (void*)&WB_GetOffsetForName},
2103 #endif
2104 #if INCLUDE_G1GC
2105   {CC"g1InConcurrentMark", CC"()Z",                   (void*)&WB_G1InConcurrentMark},
2106   {CC"g1IsHumongous0",      CC"(Ljava/lang/Object;)Z", (void*)&WB_G1IsHumongous     },
2107   {CC"g1BelongsToHumongousRegion0", CC"(J)Z",         (void*)&WB_G1BelongsToHumongousRegion},
2108   {CC"g1BelongsToFreeRegion0", CC"(J)Z",              (void*)&WB_G1BelongsToFreeRegion},
2109   {CC"g1NumMaxRegions",    CC"()J",                   (void*)&WB_G1NumMaxRegions  },
2110   {CC"g1NumFreeRegions",   CC"()J",                   (void*)&WB_G1NumFreeRegions  },
2111   {CC"g1RegionSize",       CC"()I",                   (void*)&WB_G1RegionSize      },
2112   {CC"g1DramReservedStart",   CC"()J",                (void*)&WB_G1DramReservedStart },
2113   {CC"g1DramReservedEnd",     CC"()J",                (void*)&WB_G1DramReservedEnd },
2114   {CC"g1NvdimmReservedStart", CC"()J",                (void*)&WB_G1NvdimmReservedStart },
2115   {CC"g1NvdimmReservedEnd",   CC"()J",                (void*)&WB_G1NvdimmReservedEnd },
2116   {CC"g1StartConcMarkCycle",       CC"()Z",           (void*)&WB_G1StartMarkCycle  },
2117   {CC"g1AuxiliaryMemoryUsage", CC"()Ljava/lang/management/MemoryUsage;",
2118                                                       (void*)&WB_G1AuxiliaryMemoryUsage  },
2119   {CC"g1GetMixedGCInfo",   CC"(I)[J",                 (void*)&WB_G1GetMixedGCInfo },
2120 #endif // INCLUDE_G1GC
2121 #if INCLUDE_PARALLELGC
2122   {CC"psVirtualSpaceAlignment",CC"()J",               (void*)&WB_PSVirtualSpaceAlignment},
2123   {CC"psHeapGenerationAlignment",CC"()J",             (void*)&WB_PSHeapGenerationAlignment},
2124 #endif
2125 #if INCLUDE_NMT
2126   {CC"NMTMalloc",           CC"(J)J",                 (void*)&WB_NMTMalloc          },
2127   {CC"NMTMallocWithPseudoStack", CC"(JI)J",           (void*)&WB_NMTMallocWithPseudoStack},
2128   {CC"NMTFree",             CC"(J)V",                 (void*)&WB_NMTFree            },
2129   {CC"NMTReserveMemory",    CC"(J)J",                 (void*)&WB_NMTReserveMemory   },
2130   {CC"NMTAttemptReserveMemoryAt",    CC"(JJ)J",       (void*)&WB_NMTAttemptReserveMemoryAt },
2131   {CC"NMTCommitMemory",     CC"(JJ)V",                (void*)&WB_NMTCommitMemory    },
2132   {CC"NMTUncommitMemory",   CC"(JJ)V",                (void*)&WB_NMTUncommitMemory  },
2133   {CC"NMTReleaseMemory",    CC"(JJ)V",                (void*)&WB_NMTReleaseMemory   },
2134   {CC"NMTChangeTrackingLevel", CC"()Z",               (void*)&WB_NMTChangeTrackingLevel},
2135   {CC"NMTGetHashSize",      CC"()I",                  (void*)&WB_NMTGetHashSize     },


< prev index next >