147c9fbaeSopenharmony_ci/* 247c9fbaeSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 347c9fbaeSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 447c9fbaeSopenharmony_ci * you may not use this file except in compliance with the License. 547c9fbaeSopenharmony_ci * You may obtain a copy of the License at 647c9fbaeSopenharmony_ci * 747c9fbaeSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 847c9fbaeSopenharmony_ci * 947c9fbaeSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1047c9fbaeSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1147c9fbaeSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1247c9fbaeSopenharmony_ci * See the License for the specific language governing permissions and 1347c9fbaeSopenharmony_ci * limitations under the License. 1447c9fbaeSopenharmony_ci */ 1547c9fbaeSopenharmony_ci 1647c9fbaeSopenharmony_ci/*-----------includes---------*/ 1747c9fbaeSopenharmony_ci#include "blackbox.h" 1847c9fbaeSopenharmony_ci#include "blackbox_adapter.h" 1947c9fbaeSopenharmony_ci#include "blackbox_detector.h" 2047c9fbaeSopenharmony_ci#include "ohos_init.h" 2147c9fbaeSopenharmony_ci 2247c9fbaeSopenharmony_ci/*----------local macroes-----------*/ 2347c9fbaeSopenharmony_ci/*----------global variables-----------*/ 2447c9fbaeSopenharmony_ci/*----------function definitions-----------*/ 2547c9fbaeSopenharmony_ciWEAK void SystemModuleDump(const char *logDir, struct ErrorInfo *info) 2647c9fbaeSopenharmony_ci{ 2747c9fbaeSopenharmony_ci (void)logDir; 2847c9fbaeSopenharmony_ci (void)info; 2947c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 3047c9fbaeSopenharmony_ci} 3147c9fbaeSopenharmony_ci 3247c9fbaeSopenharmony_ciWEAK void SystemModuleReset(struct ErrorInfo *info) 3347c9fbaeSopenharmony_ci{ 3447c9fbaeSopenharmony_ci (void)info; 3547c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 3647c9fbaeSopenharmony_ci} 3747c9fbaeSopenharmony_ci 3847c9fbaeSopenharmony_ciWEAK int SystemModuleGetLastLogInfo(struct ErrorInfo *info) 3947c9fbaeSopenharmony_ci{ 4047c9fbaeSopenharmony_ci (void)info; 4147c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 4247c9fbaeSopenharmony_ci return -1; 4347c9fbaeSopenharmony_ci} 4447c9fbaeSopenharmony_ci 4547c9fbaeSopenharmony_ciWEAK int SystemModuleSaveLastLog(const char *logDir, struct ErrorInfo *info) 4647c9fbaeSopenharmony_ci{ 4747c9fbaeSopenharmony_ci (void)logDir; 4847c9fbaeSopenharmony_ci (void)info; 4947c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 5047c9fbaeSopenharmony_ci return -1; 5147c9fbaeSopenharmony_ci} 5247c9fbaeSopenharmony_ci 5347c9fbaeSopenharmony_ciWEAK int FullWriteFile(const char *filePath, const char *buf, 5447c9fbaeSopenharmony_ci unsigned int bufSize, int isAppend) 5547c9fbaeSopenharmony_ci{ 5647c9fbaeSopenharmony_ci (void)filePath; 5747c9fbaeSopenharmony_ci (void)buf; 5847c9fbaeSopenharmony_ci (void)bufSize; 5947c9fbaeSopenharmony_ci (void)isAppend; 6047c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 6147c9fbaeSopenharmony_ci return -1; 6247c9fbaeSopenharmony_ci} 6347c9fbaeSopenharmony_ci 6447c9fbaeSopenharmony_ciWEAK char *GetFaultLogPath(void) 6547c9fbaeSopenharmony_ci{ 6647c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 6747c9fbaeSopenharmony_ci return ""; 6847c9fbaeSopenharmony_ci} 6947c9fbaeSopenharmony_ci 7047c9fbaeSopenharmony_ciWEAK void RebootSystem(void) 7147c9fbaeSopenharmony_ci{ 7247c9fbaeSopenharmony_ci BBOX_PRINT_ERR("Please implement the interface according to the platform!\n"); 7347c9fbaeSopenharmony_ci} 7447c9fbaeSopenharmony_ci 7547c9fbaeSopenharmony_ci#ifdef BLACKBOX_TEST 7647c9fbaeSopenharmony_cistatic void BBoxTest(void) 7747c9fbaeSopenharmony_ci{ 7847c9fbaeSopenharmony_ci struct ModuleOps ops = { 7947c9fbaeSopenharmony_ci .module = "MODULE_TEST", 8047c9fbaeSopenharmony_ci .Dump = NULL, 8147c9fbaeSopenharmony_ci .Reset = NULL, 8247c9fbaeSopenharmony_ci .GetLastLogInfo = NULL, 8347c9fbaeSopenharmony_ci .SaveLastLog = NULL, 8447c9fbaeSopenharmony_ci }; 8547c9fbaeSopenharmony_ci 8647c9fbaeSopenharmony_ci if (BBoxRegisterModuleOps(&ops) != 0) { 8747c9fbaeSopenharmony_ci BBOX_PRINT_ERR("BBoxRegisterModuleOps failed!\n"); 8847c9fbaeSopenharmony_ci return; 8947c9fbaeSopenharmony_ci } 9047c9fbaeSopenharmony_ci BBoxNotifyError("EVENT_TEST1", "MODULE_TEST", "Test BBoxNotifyError1", 0); 9147c9fbaeSopenharmony_ci} 9247c9fbaeSopenharmony_ci#endif 9347c9fbaeSopenharmony_ci 9447c9fbaeSopenharmony_cistatic void BBoxAdapterInit(void) 9547c9fbaeSopenharmony_ci{ 9647c9fbaeSopenharmony_ci struct ModuleOps ops = { 9747c9fbaeSopenharmony_ci .module = MODULE_SYSTEM, 9847c9fbaeSopenharmony_ci .Dump = SystemModuleDump, 9947c9fbaeSopenharmony_ci .Reset = SystemModuleReset, 10047c9fbaeSopenharmony_ci .GetLastLogInfo = SystemModuleGetLastLogInfo, 10147c9fbaeSopenharmony_ci .SaveLastLog = SystemModuleSaveLastLog, 10247c9fbaeSopenharmony_ci }; 10347c9fbaeSopenharmony_ci 10447c9fbaeSopenharmony_ci if (BBoxRegisterModuleOps(&ops) != 0) { 10547c9fbaeSopenharmony_ci BBOX_PRINT_ERR("BBoxRegisterModuleOps failed!\n"); 10647c9fbaeSopenharmony_ci return; 10747c9fbaeSopenharmony_ci } 10847c9fbaeSopenharmony_ci#ifdef BLACKBOX_TEST 10947c9fbaeSopenharmony_ci BBoxTest(); 11047c9fbaeSopenharmony_ci#endif 11147c9fbaeSopenharmony_ci} 11247c9fbaeSopenharmony_ciCORE_INIT_PRI(BBoxAdapterInit, 2);