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);