12498b56bSopenharmony_ci/*
22498b56bSopenharmony_ci * Copyright (c) 2020-2022 Huawei Device Co., Ltd.
32498b56bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
42498b56bSopenharmony_ci * you may not use this file except in compliance with the License.
52498b56bSopenharmony_ci * You may obtain a copy of the License at
62498b56bSopenharmony_ci *
72498b56bSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
82498b56bSopenharmony_ci *
92498b56bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
102498b56bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
112498b56bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
122498b56bSopenharmony_ci * See the License for the specific language governing permissions and
132498b56bSopenharmony_ci * limitations under the License.
142498b56bSopenharmony_ci */
152498b56bSopenharmony_ci
162498b56bSopenharmony_ci#include <hilog_common.h>
172498b56bSopenharmony_ci#include <log_utils.h>
182498b56bSopenharmony_ci
192498b56bSopenharmony_ci#include "log_domains.h"
202498b56bSopenharmony_ci
212498b56bSopenharmony_cinamespace OHOS {
222498b56bSopenharmony_cinamespace HiviewDFX {
232498b56bSopenharmony_ciusing namespace std;
242498b56bSopenharmony_ci
252498b56bSopenharmony_cistatic const KVMap<uint32_t, string> g_DomainList({
262498b56bSopenharmony_ci    {0xD000100, "Bluetooth"},
272498b56bSopenharmony_ci    {0xD000300, "NFC"},
282498b56bSopenharmony_ci    {0xD000F00, "For test using"},
292498b56bSopenharmony_ci    {0xD001100, "AppExecFwk"},
302498b56bSopenharmony_ci    {0xD001200, "Notification"},
312498b56bSopenharmony_ci    {0xD001300, "AAFwk"},
322498b56bSopenharmony_ci    {0xD001400, "Graphics"},
332498b56bSopenharmony_ci    {0xD001500, "Communication"},
342498b56bSopenharmony_ci    {0xD001600, "DistributedData"},
352498b56bSopenharmony_ci    {0xD001700, "Resource"},
362498b56bSopenharmony_ci    {0xD001800, "SAMgr"},
372498b56bSopenharmony_ci    {0xD001B00, "Account"},
382498b56bSopenharmony_ci    {0xD001C00, "MiscService"},
392498b56bSopenharmony_ci    {0xD001D00, "Barrierfree"},
402498b56bSopenharmony_ci    {0xD001E00, "Global"},
412498b56bSopenharmony_ci    {0xD001F00, "Telephony"},
422498b56bSopenharmony_ci    {0xD002100, "AI"},
432498b56bSopenharmony_ci    {0xD002200, "MSDP"},
442498b56bSopenharmony_ci    {0xD002300, "Location"},
452498b56bSopenharmony_ci    {0xD002400, "UserIAM"},
462498b56bSopenharmony_ci    {0xD002500, "Drivers"},
472498b56bSopenharmony_ci    {0xD002600, "Kernel"},
482498b56bSopenharmony_ci    {0xD002700, "Sensors"},
492498b56bSopenharmony_ci    {0xD002800, "MultiModelInput"},
502498b56bSopenharmony_ci    {0xD002900, "Power"},
512498b56bSopenharmony_ci    {0xD002A00, "USB"},
522498b56bSopenharmony_ci    {0xD002B00, "MultiMedia"},
532498b56bSopenharmony_ci    {0xD002C00, "StartUp"},
542498b56bSopenharmony_ci    {0xD002D00, "DFX"},
552498b56bSopenharmony_ci    {0xD002E00, "Update"},
562498b56bSopenharmony_ci    {0xD002F00, "Security"},
572498b56bSopenharmony_ci    {0xD003100, "TestSystem"},
582498b56bSopenharmony_ci    {0xD003200, "TestSystem"},
592498b56bSopenharmony_ci    {0xD003300, "DevelopmentToolchain"},
602498b56bSopenharmony_ci    {0xD003900, "Ace"},
612498b56bSopenharmony_ci    {0xD003B00, "JSConsole"},
622498b56bSopenharmony_ci    {0xD003D00, "Utils"},
632498b56bSopenharmony_ci    {0xD003F00, "CompilerRuntime"},
642498b56bSopenharmony_ci    {0xD004100, "DistributedHardware"},
652498b56bSopenharmony_ci    {0xD004200, "Windows"},
662498b56bSopenharmony_ci    {0xD004300, "Storage"},
672498b56bSopenharmony_ci    {0xD004400, "DeviceProfile"},
682498b56bSopenharmony_ci    {0xD004500, "WebView"},
692498b56bSopenharmony_ci    {0xD004600, "Interconnection"},
702498b56bSopenharmony_ci    {0xD004700, "Cloud"},
712498b56bSopenharmony_ci    {0xD004800, "Manufacture"},
722498b56bSopenharmony_ci    {0xD004900, "HealthSport"},
732498b56bSopenharmony_ci    {0xD005100, "PcService"},
742498b56bSopenharmony_ci    {0xD005200, "WpaSupplicant"},
752498b56bSopenharmony_ci    {0xD005300, "Push"},
762498b56bSopenharmony_ci    {0xD005400, "CarService"},
772498b56bSopenharmony_ci    {0xD005500, "DeviceCloudGateway"},
782498b56bSopenharmony_ci    {0xD005600, "AppSecurityPrivacy"},
792498b56bSopenharmony_ci    {0xD005700, "DSoftBus"},
802498b56bSopenharmony_ci    {0xD005800, "FindNetwork"},
812498b56bSopenharmony_ci    {0xD005900, "VirtService"},
822498b56bSopenharmony_ci    {0xD005A00, "AccessControl"},
832498b56bSopenharmony_ci    {0xD005B00, "Tee"},
842498b56bSopenharmony_ci    {0xD005C00, "Connectivity"},
852498b56bSopenharmony_ci    {0xD005D00, "XTS"},
862498b56bSopenharmony_ci    {0xD00AD00, "ASystem"},
872498b56bSopenharmony_ci}, __UINT32_MAX__, "Invalid");
882498b56bSopenharmony_ci
892498b56bSopenharmony_cistatic const uint32_t APP_DOMAIN_MASK = 0xFFFF0000;
902498b56bSopenharmony_cistatic const uint32_t OS_SUB_DOMAIN_MASK = 0xFFFFFF00;
912498b56bSopenharmony_cibool IsValidDomain(LogType type, uint32_t domain)
922498b56bSopenharmony_ci{
932498b56bSopenharmony_ci    if (type == LOG_APP) {
942498b56bSopenharmony_ci        if ((domain & APP_DOMAIN_MASK) == 0) {
952498b56bSopenharmony_ci            return true;
962498b56bSopenharmony_ci        }
972498b56bSopenharmony_ci        return false;
982498b56bSopenharmony_ci    } else {
992498b56bSopenharmony_ci        if (domain >= DOMAIN_OS_MIN && domain <= DOMAIN_OS_MAX) {
1002498b56bSopenharmony_ci            return g_DomainList.IsValidKey((domain & OS_SUB_DOMAIN_MASK));
1012498b56bSopenharmony_ci        }
1022498b56bSopenharmony_ci        return false;
1032498b56bSopenharmony_ci    }
1042498b56bSopenharmony_ci}
1052498b56bSopenharmony_ci} // namespace HiviewDFX
1062498b56bSopenharmony_ci} // namespace OHOS