--- a/hotspot/src/share/vm/prims/jvm.cpp Tue Mar 15 13:48:21 2016 -0700
+++ b/hotspot/src/share/vm/prims/jvm.cpp Thu Mar 17 19:04:01 2016 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,12 @@
#include "precompiled.hpp"
#include "classfile/classFileStream.hpp"
#include "classfile/classLoader.hpp"
+#include "classfile/classLoaderData.inline.hpp"
#include "classfile/javaAssertions.hpp"
#include "classfile/javaClasses.inline.hpp"
+#include "classfile/moduleEntry.hpp"
+#include "classfile/modules.hpp"
+#include "classfile/packageEntry.hpp"
#include "classfile/stringTable.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/vmSymbols.hpp"
@@ -1047,6 +1051,58 @@
(jclass) JNIHandles::make_local(env, k->java_mirror());
JVM_END
+// Module support //////////////////////////////////////////////////////////////////////////////
+
+JVM_ENTRY(void, JVM_DefineModule(JNIEnv *env, jobject module, jstring version, jstring location,
+ jobjectArray packages))
+ JVMWrapper("JVM_DefineModule");
+ Modules::define_module(module, version, location, packages, CHECK);
+JVM_END
+
+JVM_ENTRY(void, JVM_SetBootLoaderUnnamedModule(JNIEnv *env, jobject module))
+ JVMWrapper("JVM_SetBootLoaderUnnamedModule");
+ Modules::set_bootloader_unnamed_module(module, CHECK);
+JVM_END
+
+JVM_ENTRY(void, JVM_AddModuleExports(JNIEnv *env, jobject from_module, jstring package, jobject to_module))
+ JVMWrapper("JVM_AddModuleExports");
+ Modules::add_module_exports_qualified(from_module, package, to_module, CHECK);
+JVM_END
+
+JVM_ENTRY(void, JVM_AddModuleExportsToAllUnnamed(JNIEnv *env, jobject from_module, jstring package))
+ JVMWrapper("JVM_AddModuleExportsToAllUnnamed");
+ Modules::add_module_exports_to_all_unnamed(from_module, package, CHECK);
+JVM_END
+
+JVM_ENTRY(void, JVM_AddModuleExportsToAll(JNIEnv *env, jobject from_module, jstring package))
+ JVMWrapper("JVM_AddModuleExportsToAll");
+ Modules::add_module_exports(from_module, package, NULL, CHECK);
+JVM_END
+
+JVM_ENTRY (void, JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject source_module))
+ JVMWrapper("JVM_AddReadsModule");
+ Modules::add_reads_module(from_module, source_module, CHECK);
+JVM_END
+
+JVM_ENTRY(jboolean, JVM_CanReadModule(JNIEnv *env, jobject asking_module, jobject source_module))
+ JVMWrapper("JVM_CanReadModule");
+ return Modules::can_read_module(asking_module, source_module, THREAD);
+JVM_END
+
+JVM_ENTRY(jboolean, JVM_IsExportedToModule(JNIEnv *env, jobject from_module, jstring package, jobject to_module))
+ JVMWrapper("JVM_IsExportedToModule");
+ return Modules::is_exported_to_module(from_module, package, to_module, THREAD);
+JVM_END
+
+JVM_ENTRY (void, JVM_AddModulePackage(JNIEnv *env, jobject module, jstring package))
+ JVMWrapper("JVM_AddModulePackage");
+ Modules::add_module_package(module, package, CHECK);
+JVM_END
+
+JVM_ENTRY (jobject, JVM_GetModuleByPackageName(JNIEnv *env, jobject loader, jstring package))
+ JVMWrapper("JVM_GetModuleByPackageName");
+ return Modules::get_module_by_package_name(loader, package, THREAD);
+JVM_END
// Reflection support //////////////////////////////////////////////////////////////////////////////