--- old/src/share/vm/prims/jvmtiEnvBase.hpp Tue Dec 22 22:01:17 2015 +++ new/src/share/vm/prims/jvmtiEnvBase.hpp Tue Dec 22 22:01:17 2015 @@ -422,6 +422,7 @@ }; + // VM operation to get object monitor usage. class VM_GetObjectMonitorUsage : public VM_Operation { private: @@ -689,4 +690,21 @@ jvmtiError error() { return _error;} }; + +// Jvmti module closure to collect all modules loaded to the system. +class JvmtiModuleClosure : public StackObj { +private: + static GrowableArray *_tbl; // Protected with Module_lock + + static void do_module(ModuleEntry* entry) { + jobject module = entry->jlrM_module(); + guarantee(module != NULL, "module object is NULL"); + _tbl->push(module); + } + +public: + JvmtiModuleClosure(void) {} + jvmtiError get_all_modules(JvmtiEnv* env, jint* module_count_ptr, jobject** modules_ptr); +}; + #endif // SHARE_VM_PRIMS_JVMTIENVBASE_HPP