hotspot/src/share/vm/services/management.hpp
changeset 46329 53ccc37bda19
parent 42052 b3a1c6c4f86e
equal deleted inserted replaced
46328:6061df52d610 46329:53ccc37bda19
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    40   static PerfVariable*      _vm_init_done_time;
    40   static PerfVariable*      _vm_init_done_time;
    41   static jmmOptionalSupport _optional_support;
    41   static jmmOptionalSupport _optional_support;
    42   static TimeStamp          _stamp; // Timestamp since vm init done time
    42   static TimeStamp          _stamp; // Timestamp since vm init done time
    43 
    43 
    44   // Management klasses
    44   // Management klasses
    45   static Klass*             _diagnosticCommandImpl_klass;
    45   static InstanceKlass*     _diagnosticCommandImpl_klass;
    46   static Klass*             _garbageCollectorExtImpl_klass;
    46   static InstanceKlass*     _garbageCollectorExtImpl_klass;
    47   static Klass*             _garbageCollectorMXBean_klass;
    47   static InstanceKlass*     _garbageCollectorMXBean_klass;
    48   static Klass*             _gcInfo_klass;
    48   static InstanceKlass*     _gcInfo_klass;
    49   static Klass*             _managementFactoryHelper_klass;
    49   static InstanceKlass*     _managementFactoryHelper_klass;
    50   static Klass*             _memoryManagerMXBean_klass;
    50   static InstanceKlass*     _memoryManagerMXBean_klass;
    51   static Klass*             _memoryPoolMXBean_klass;
    51   static InstanceKlass*     _memoryPoolMXBean_klass;
    52   static Klass*             _memoryUsage_klass;
    52   static InstanceKlass*     _memoryUsage_klass;
    53   static Klass*             _sensor_klass;
    53   static InstanceKlass*     _sensor_klass;
    54   static Klass*             _threadInfo_klass;
    54   static InstanceKlass*     _threadInfo_klass;
    55   static Klass* load_and_initialize_klass(Symbol* sh, TRAPS);
    55   static InstanceKlass* load_and_initialize_klass(Symbol* sh, TRAPS);
    56   static Klass* load_and_initialize_klass_or_null(Symbol* sh, TRAPS);
    56   static InstanceKlass* load_and_initialize_klass_or_null(Symbol* sh, TRAPS);
    57   static Klass* initialize_klass(Klass* k, TRAPS);
    57   static InstanceKlass* initialize_klass(Klass* k, TRAPS);
    58 
    58 
    59 public:
    59 public:
    60   static void init();
    60   static void init();
    61   static void initialize(TRAPS);
    61   static void initialize(TRAPS);
    62 
    62 
    65 
    65 
    66   static void  oops_do(OopClosure* f) NOT_MANAGEMENT_RETURN;
    66   static void  oops_do(OopClosure* f) NOT_MANAGEMENT_RETURN;
    67   static void* get_jmm_interface(int version);
    67   static void* get_jmm_interface(int version);
    68   static void  get_optional_support(jmmOptionalSupport* support);
    68   static void  get_optional_support(jmmOptionalSupport* support);
    69 
    69 
    70   static void get_loaded_classes(JavaThread* cur_thread, GrowableArray<KlassHandle>* klass_handle_array);
    70   static void get_loaded_classes(JavaThread* cur_thread, GrowableArray<Klass*>* klass_array);
    71 
    71 
    72   static void  record_vm_startup_time(jlong begin, jlong duration)
    72   static void  record_vm_startup_time(jlong begin, jlong duration)
    73       NOT_MANAGEMENT_RETURN;
    73       NOT_MANAGEMENT_RETURN;
    74   static void  record_vm_init_completed() {
    74   static void  record_vm_init_completed() {
    75     // Initialize the timestamp to get the current time
    75     // Initialize the timestamp to get the current time
    85   static jlong vm_init_done_time() {
    85   static jlong vm_init_done_time() {
    86     return _vm_init_done_time->get_value();
    86     return _vm_init_done_time->get_value();
    87   }
    87   }
    88 
    88 
    89   // methods to return a Klass*.
    89   // methods to return a Klass*.
    90   static Klass* java_lang_management_ThreadInfo_klass(TRAPS);
    90   static InstanceKlass* java_lang_management_ThreadInfo_klass(TRAPS);
    91   static Klass* java_lang_management_MemoryUsage_klass(TRAPS)
    91   static InstanceKlass* java_lang_management_MemoryUsage_klass(TRAPS)
    92       NOT_MANAGEMENT_RETURN_(NULL);
    92       NOT_MANAGEMENT_RETURN_(NULL);
    93   static Klass* java_lang_management_MemoryPoolMXBean_klass(TRAPS);
    93   static InstanceKlass* java_lang_management_MemoryPoolMXBean_klass(TRAPS);
    94   static Klass* java_lang_management_MemoryManagerMXBean_klass(TRAPS);
    94   static InstanceKlass* java_lang_management_MemoryManagerMXBean_klass(TRAPS);
    95   static Klass* java_lang_management_GarbageCollectorMXBean_klass(TRAPS);
    95   static InstanceKlass* java_lang_management_GarbageCollectorMXBean_klass(TRAPS);
    96   static Klass* sun_management_ManagementFactoryHelper_klass(TRAPS)
    96   static InstanceKlass* sun_management_ManagementFactoryHelper_klass(TRAPS)
    97       NOT_MANAGEMENT_RETURN_(NULL);
    97       NOT_MANAGEMENT_RETURN_(NULL);
    98   static Klass* sun_management_Sensor_klass(TRAPS)
    98   static InstanceKlass* sun_management_Sensor_klass(TRAPS)
    99       NOT_MANAGEMENT_RETURN_(NULL);
    99       NOT_MANAGEMENT_RETURN_(NULL);
   100   static Klass* com_sun_management_internal_GarbageCollectorExtImpl_klass(TRAPS)
   100   static InstanceKlass* com_sun_management_internal_GarbageCollectorExtImpl_klass(TRAPS)
   101       NOT_MANAGEMENT_RETURN_(NULL);
   101       NOT_MANAGEMENT_RETURN_(NULL);
   102   static Klass* com_sun_management_GcInfo_klass(TRAPS)
   102   static InstanceKlass* com_sun_management_GcInfo_klass(TRAPS)
   103       NOT_MANAGEMENT_RETURN_(NULL);
   103       NOT_MANAGEMENT_RETURN_(NULL);
   104   static Klass* com_sun_management_internal_DiagnosticCommandImpl_klass(TRAPS)
   104   static InstanceKlass* com_sun_management_internal_DiagnosticCommandImpl_klass(TRAPS)
   105       NOT_MANAGEMENT_RETURN_(NULL);
   105       NOT_MANAGEMENT_RETURN_(NULL);
   106 
   106 
   107   static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, TRAPS);
   107   static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, TRAPS);
   108   static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, objArrayHandle monitors_array, typeArrayHandle depths_array, objArrayHandle synchronizers_array, TRAPS);
   108   static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, objArrayHandle monitors_array, typeArrayHandle depths_array, objArrayHandle synchronizers_array, TRAPS);
   109 };
   109 };