| 97 | } |
| 98 | |
| 99 | void VM::unsafeLoadPlugInHosts() { |
| 100 | // Load the plugins and mock them if not found. |
| 101 | using namespace std::literals::string_view_literals; |
| 102 | PlugInModInsts.clear(); |
| 103 | |
| 104 | PlugInModInsts.push_back( |
| 105 | createPluginModule<Host::WasiNNModuleMock>("wasi_nn"sv, "wasi_nn"sv)); |
| 106 | PlugInModInsts.push_back(createPluginModule<Host::WasiCryptoCommonModuleMock>( |
| 107 | "wasi_crypto"sv, "wasi_crypto_common"sv)); |
| 108 | PlugInModInsts.push_back( |
| 109 | createPluginModule<Host::WasiCryptoAsymmetricCommonModuleMock>( |
| 110 | "wasi_crypto"sv, "wasi_crypto_asymmetric_common"sv)); |
| 111 | PlugInModInsts.push_back(createPluginModule<Host::WasiCryptoKxModuleMock>( |
| 112 | "wasi_crypto"sv, "wasi_crypto_kx"sv)); |
| 113 | PlugInModInsts.push_back( |
| 114 | createPluginModule<Host::WasiCryptoSignaturesModuleMock>( |
| 115 | "wasi_crypto"sv, "wasi_crypto_signatures"sv)); |
| 116 | PlugInModInsts.push_back( |
| 117 | createPluginModule<Host::WasiCryptoSymmetricModuleMock>( |
| 118 | "wasi_crypto"sv, "wasi_crypto_symmetric"sv)); |
| 119 | PlugInModInsts.push_back(createPluginModule<Host::WasmEdgeProcessModuleMock>( |
| 120 | "wasmedge_process"sv, "wasmedge_process"sv)); |
| 121 | PlugInModInsts.push_back(createPluginModule<Host::WasiLoggingModuleMock>( |
| 122 | "wasi_logging"sv, "wasi:logging/logging"sv)); |
| 123 | PlugInModInsts.push_back( |
| 124 | createPluginModule<Host::WasmEdgeTensorflowModuleMock>( |
| 125 | "wasmedge_tensorflow"sv, "wasmedge_tensorflow"sv)); |
| 126 | PlugInModInsts.push_back( |
| 127 | createPluginModule<Host::WasmEdgeTensorflowLiteModuleMock>( |
| 128 | "wasmedge_tensorflowlite"sv, "wasmedge_tensorflowlite"sv)); |
| 129 | PlugInModInsts.push_back(createPluginModule<Host::WasmEdgeImageModuleMock>( |
| 130 | "wasmedge_image"sv, "wasmedge_image"sv)); |
| 131 | PlugInModInsts.push_back( |
| 132 | createPluginModule<Host::WasmEdgeStableDiffusionModuleMock>( |
| 133 | "wasmedge_stablediffusion"sv, "wasmedge_stablediffusion"sv)); |
| 134 | |
| 135 | // Load the other non-official plugins. |
| 136 | for (const auto &Plugin : Plugin::Plugin::plugins()) { |
| 137 | if (Conf.isForbiddenPlugins(Plugin.name())) { |
| 138 | continue; |
| 139 | } |
| 140 | // Skip wasi_crypto, wasi_nn, wasi_logging, WasmEdge_Process, |
| 141 | // WasmEdge_Tensorflow, WasmEdge_TensorflowLite, and WasmEdge_Image. |
| 142 | if (Plugin.name() == "wasi_crypto"sv || Plugin.name() == "wasi_nn"sv || |
| 143 | Plugin.name() == "wasi_logging"sv || |
| 144 | Plugin.name() == "wasmedge_process"sv || |
| 145 | Plugin.name() == "wasmedge_tensorflow"sv || |
| 146 | Plugin.name() == "wasmedge_tensorflowlite"sv || |
| 147 | Plugin.name() == "wasmedge_image"sv || |
| 148 | Plugin.name() == "wasmedge_stablediffusion"sv) { |
| 149 | continue; |
| 150 | } |
| 151 | for (const auto &Module : Plugin.modules()) { |
| 152 | PlugInModInsts.push_back(Module.create()); |
| 153 | } |
| 154 | for (const auto &Component : Plugin.components()) { |
| 155 | PlugInCompInsts.push_back(Component.create()); |
| 156 | } |
nothing calls this directly
no test coverage detected