1 /* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "platform/include/module.h" 17 #include <string.h> 18 19 static Module *g_modules[MAX_MODULES]; 20 ModuleRegister(Module * module)21void ModuleRegister(Module *module) 22 { 23 for (unsigned long index = 0; index < sizeof(g_modules) / sizeof(g_modules[0]); index++) { 24 if (!g_modules[index]) { 25 g_modules[index] = module; 26 break; 27 } 28 } 29 } 30 ModuleGet(const char * name)31Module *ModuleGet(const char *name) 32 { 33 Module *module = NULL; 34 35 for (unsigned long index = 0; index < sizeof(g_modules) / sizeof(g_modules[0]); index++) { 36 if (g_modules[index] && !strcmp(name, g_modules[index]->name)) { 37 module = g_modules[index]; 38 break; 39 } 40 } 41 return module; 42 } 43 ModuleInit(const char * name,int traceLevel)44void ModuleInit(const char *name, int traceLevel) 45 { 46 Module *module = ModuleGet(name); 47 if (module != NULL) { 48 module->init(traceLevel); 49 } 50 } 51 ModuleStartup(const char * name)52void ModuleStartup(const char *name) 53 { 54 Module *module = ModuleGet(name); 55 if (module != NULL) { 56 module->startup(); 57 } 58 } 59 ModuleShutdown(const char * name)60void ModuleShutdown(const char *name) 61 { 62 Module *module = ModuleGet(name); 63 if (module != NULL) { 64 module->shutdown(); 65 } 66 } 67 ModuleCleanup(const char * name)68void ModuleCleanup(const char *name) 69 { 70 Module *module = ModuleGet(name); 71 if (module != NULL) { 72 module->cleanup(); 73 } 74 }