hotspot/src/share/vm/prims/whitebox.cpp
changeset 26938 e0b35f8104a7
parent 26846 7d4376f8560e
child 27162 0a4a7276949b
equal deleted inserted replaced
26937:dd2b0f6de283 26938:e0b35f8104a7
   816   ClassLoaderData* cld = class_loader_oop != NULL
   816   ClassLoaderData* cld = class_loader_oop != NULL
   817       ? java_lang_ClassLoader::loader_data(class_loader_oop)
   817       ? java_lang_ClassLoader::loader_data(class_loader_oop)
   818       : ClassLoaderData::the_null_class_loader_data();
   818       : ClassLoaderData::the_null_class_loader_data();
   819 
   819 
   820   MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr);
   820   MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr);
       
   821 WB_END
       
   822 
       
   823 WB_ENTRY(jlong, WB_IncMetaspaceCapacityUntilGC(JNIEnv* env, jobject wb, jlong inc))
       
   824   if (inc < 0) {
       
   825     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
       
   826         err_msg("WB_IncMetaspaceCapacityUntilGC: inc is negative: " JLONG_FORMAT, inc));
       
   827   }
       
   828 
       
   829   jlong max_size_t = (jlong) ((size_t) -1);
       
   830   if (inc > max_size_t) {
       
   831     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
       
   832         err_msg("WB_IncMetaspaceCapacityUntilGC: inc does not fit in size_t: " JLONG_FORMAT, inc));
       
   833   }
       
   834 
       
   835   size_t new_cap_until_GC = 0;
       
   836   size_t aligned_inc = align_size_down((size_t) inc, Metaspace::commit_alignment());
       
   837   bool success = MetaspaceGC::inc_capacity_until_GC(aligned_inc, &new_cap_until_GC);
       
   838   if (!success) {
       
   839     THROW_MSG_0(vmSymbols::java_lang_IllegalStateException(),
       
   840                 "WB_IncMetaspaceCapacityUntilGC: could not increase capacity until GC "
       
   841                 "due to contention with another thread");
       
   842   }
       
   843   return (jlong) new_cap_until_GC;
       
   844 WB_END
       
   845 
       
   846 WB_ENTRY(jlong, WB_MetaspaceCapacityUntilGC(JNIEnv* env, jobject wb))
       
   847   return (jlong) MetaspaceGC::capacity_until_GC();
   821 WB_END
   848 WB_END
   822 
   849 
   823 //Some convenience methods to deal with objects from java
   850 //Some convenience methods to deal with objects from java
   824 int WhiteBox::offset_for_field(const char* field_name, oop object,
   851 int WhiteBox::offset_for_field(const char* field_name, oop object,
   825     Symbol* signature_symbol) {
   852     Symbol* signature_symbol) {
   989   {CC"readReservedMemory", CC"()V",                   (void*)&WB_ReadReservedMemory },
  1016   {CC"readReservedMemory", CC"()V",                   (void*)&WB_ReadReservedMemory },
   990   {CC"allocateMetaspace",
  1017   {CC"allocateMetaspace",
   991      CC"(Ljava/lang/ClassLoader;J)J",                 (void*)&WB_AllocateMetaspace },
  1018      CC"(Ljava/lang/ClassLoader;J)J",                 (void*)&WB_AllocateMetaspace },
   992   {CC"freeMetaspace",
  1019   {CC"freeMetaspace",
   993      CC"(Ljava/lang/ClassLoader;JJ)V",                (void*)&WB_FreeMetaspace },
  1020      CC"(Ljava/lang/ClassLoader;JJ)V",                (void*)&WB_FreeMetaspace },
       
  1021   {CC"incMetaspaceCapacityUntilGC", CC"(J)J",         (void*)&WB_IncMetaspaceCapacityUntilGC },
       
  1022   {CC"metaspaceCapacityUntilGC", CC"()J",             (void*)&WB_MetaspaceCapacityUntilGC },
   994   {CC"getCPUFeatures",     CC"()Ljava/lang/String;",  (void*)&WB_GetCPUFeatures     },
  1023   {CC"getCPUFeatures",     CC"()Ljava/lang/String;",  (void*)&WB_GetCPUFeatures     },
   995   {CC"getNMethod",         CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;",
  1024   {CC"getNMethod",         CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;",
   996                                                       (void*)&WB_GetNMethod         },
  1025                                                       (void*)&WB_GetNMethod         },
   997   {CC"getThreadStackSize", CC"()J",                   (void*)&WB_GetThreadStackSize },
  1026   {CC"getThreadStackSize", CC"()J",                   (void*)&WB_GetThreadStackSize },
   998   {CC"getThreadRemainingStackSize", CC"()J",          (void*)&WB_GetThreadRemainingStackSize },
  1027   {CC"getThreadRemainingStackSize", CC"()J",          (void*)&WB_GetThreadRemainingStackSize },