Register user-modules with the kernel in UserModule::Restore

This commit is contained in:
Dr. Chat
2015-12-26 16:37:43 -06:00
committed by Ben Vanik
parent 2855036f72
commit bb5fd73b9e
4 changed files with 39 additions and 3 deletions

View File

@@ -159,6 +159,31 @@ void KernelState::RegisterModule(XModule* module) {}
void KernelState::UnregisterModule(XModule* module) {}
bool KernelState::RegisterUserModule(object_ref<UserModule> module) {
auto lock = global_critical_region_.Acquire();
for (auto user_module : user_modules_) {
if (user_module->path() == module->path()) {
// Already loaded.
return false;
}
}
user_modules_.push_back(module);
return true;
}
void KernelState::UnregisterUserModule(UserModule* module) {
auto lock = global_critical_region_.Acquire();
for (auto it = user_modules_.begin(); it != user_modules_.end(); it++) {
if ((*it)->path() == module->path()) {
user_modules_.erase(it);
return;
}
}
}
bool KernelState::IsKernelModule(const char* name) {
if (!name) {
// Executing module isn't a kernel module.