• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright (C) 2025 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 #ifndef SYS_EVENT_H
16 #define SYS_EVENT_H
17 #include <string>
18 #include <unordered_map>
19 
20 #include "hisysevent.h"
21 
22 namespace OHOS {
23 namespace Request {
24 //event
25 constexpr const char *STATISTIC_EVENT = "EXEC_ERROR";
26 constexpr const char *FAULT_EVENT = "EXEC_FAULT";
27 
28 enum DfxErrorCode : uint32_t {
29     APP_ERROR_00 = 0x00000000,
30     APP_ERROR_01 = 0x00000001,
31     APP_ERROR_02 = 0x00000002,
32     INVALID_IPC_MESSAGE_A00 = 0x001FFFFF,
33     INVALID_IPC_MESSAGE_A01 = 0x001F0000,
34     INVALID_IPC_MESSAGE_A02 = 0x001F0001,
35     INVALID_IPC_MESSAGE_A03 = 0x001F0100,
36     INVALID_IPC_MESSAGE_A04 = 0x001F0101,
37     INVALID_IPC_MESSAGE_A05 = 0x001F0200,
38     INVALID_IPC_MESSAGE_A06 = 0x001F0201,
39     INVALID_IPC_MESSAGE_A07 = 0x001F0300,
40     INVALID_IPC_MESSAGE_A08 = 0x001F0301,
41     INVALID_IPC_MESSAGE_A09 = 0x001F0400,
42     INVALID_IPC_MESSAGE_A10 = 0x001F0401,
43     INVALID_IPC_MESSAGE_A11 = 0x001F0500,
44     INVALID_IPC_MESSAGE_A12 = 0x001F0501,
45     INVALID_IPC_MESSAGE_A13 = 0x001F0600,
46     INVALID_IPC_MESSAGE_A14 = 0x001F0601,
47     INVALID_IPC_MESSAGE_A15 = 0x001F0700,
48     INVALID_IPC_MESSAGE_A16 = 0x001F0701,
49     INVALID_IPC_MESSAGE_A17 = 0x001F0800,
50     INVALID_IPC_MESSAGE_A18 = 0x001F0801,
51     INVALID_IPC_MESSAGE_A19 = 0x001F0900,
52     INVALID_IPC_MESSAGE_A20 = 0x001F0901,
53     INVALID_IPC_MESSAGE_A21 = 0x001F0A00,
54     INVALID_IPC_MESSAGE_A22 = 0x001F0A01,
55     INVALID_IPC_MESSAGE_A23 = 0x001F0B00,
56     INVALID_IPC_MESSAGE_A24 = 0x001F0B01,
57     INVALID_IPC_MESSAGE_A25 = 0x001F0C00,
58     INVALID_IPC_MESSAGE_A26 = 0x001F0C01,
59     INVALID_IPC_MESSAGE_A27 = 0x001F0D00,
60     INVALID_IPC_MESSAGE_A28 = 0x001F0D01,
61     INVALID_IPC_MESSAGE_A29 = 0x001F0E00,
62     INVALID_IPC_MESSAGE_A30 = 0x001F0E01,
63     INVALID_IPC_MESSAGE_A31 = 0x001F0F00,
64     INVALID_IPC_MESSAGE_A32 = 0x001F0F01,
65     INVALID_IPC_MESSAGE_A33 = 0x001F1000,
66     INVALID_IPC_MESSAGE_A34 = 0x001F1001,
67     INVALID_IPC_MESSAGE_A35 = 0x001F1100,
68     INVALID_IPC_MESSAGE_A36 = 0x001F1101,
69     INVALID_IPC_MESSAGE_A37 = 0x001F1200,
70     INVALID_IPC_MESSAGE_A38 = 0x001F1201,
71     INVALID_IPC_MESSAGE_A39 = 0x001F1300,
72     INVALID_IPC_MESSAGE_A40 = 0x001F1301,
73     INVALID_IPC_MESSAGE_A41 = 0x001F1400,
74     INVALID_IPC_MESSAGE_A42 = 0x001F1401,
75     INVALID_IPC_MESSAGE_A43 = 0x001F1500,
76     INVALID_IPC_MESSAGE_A44 = 0x001F1501,
77     INVALID_IPC_MESSAGE_A45 = 0x001F1600,
78     INVALID_IPC_MESSAGE_A46 = 0x001F1601,
79     INVALID_IPC_MESSAGE_00 = 0x00100000,
80     INVALID_IPC_MESSAGE_01 = 0x00100100,
81     INVALID_IPC_MESSAGE_02 = 0x00100200,
82     INVALID_IPC_MESSAGE_03 = 0x00100300,
83     INVALID_IPC_MESSAGE_04 = 0x00100400,
84     INVALID_IPC_MESSAGE_05 = 0x00100500,
85     INVALID_IPC_MESSAGE_06 = 0x00100600,
86     INVALID_IPC_MESSAGE_07 = 0x00100700,
87     INVALID_IPC_MESSAGE_08 = 0x00100800,
88     INVALID_IPC_MESSAGE_09 = 0x00100900,
89     INVALID_IPC_MESSAGE_10 = 0x00100A00,
90     INVALID_IPC_MESSAGE_11 = 0x00100B00,
91     INVALID_IPC_MESSAGE_12 = 0x00100C00,
92     INVALID_IPC_MESSAGE_13 = 0x00100D00,
93     INVALID_IPC_MESSAGE_14 = 0x00100E00,
94     INVALID_IPC_MESSAGE_15 = 0x00100F00,
95     INVALID_IPC_MESSAGE_16 = 0x00101000,
96     INVALID_IPC_MESSAGE_17 = 0x00101100,
97     INVALID_IPC_MESSAGE_18 = 0x00101200,
98     INVALID_IPC_MESSAGE_19 = 0x00101300,
99     INVALID_IPC_MESSAGE_20 = 0x00101400,
100     INVALID_IPC_MESSAGE_21 = 0x00101500,
101     INVALID_IPC_MESSAGE_22 = 0x00101600,
102     TASK_FAULT_00 = 0x002F00FF,
103     TASK_FAULT_01 = 0x002F01FF,
104     TASK_FAULT_02 = 0x002F02FF,
105     TASK_FAULT_03 = 0x002F03FF,
106     TASK_FAULT_04 = 0x002F04FF,
107     TASK_FAULT_05 = 0x002F05FF,
108     TASK_FAULT_06 = 0x002F06FF,
109     TASK_FAULT_07 = 0x002F07FF,
110     TASK_FAULT_08 = 0x002F08FF,
111     TASK_FAULT_09 = 0x002FFFFF,
112     UDS_FAULT_00 = 0x00300000,
113     UDS_FAULT_01 = 0x00300001,
114     UDS_FAULT_02 = 0x00300002,
115     UDS_FAULT_03 = 0x003F0000,
116     UDS_FAULT_04 = 0x003F0001,
117     SA_ERROR_00 = 0x004F0000,
118     SA_ERROR_01 = 0x004F0001,
119     SA_ERROR_02 = 0x004F0002,
120     SA_FAULT_00 = 0x005F0000,
121     SA_FAULT_01 = 0x005F0001,
122     ACL_FAULT_00 = 0xF0000000,
123     IPC_FAULT_00 = 0xF0100000,
124     IPC_FAULT_01 = 0xF0100001,
125     SAMGR_FAULT_00 = 0xF0200000,
126     SAMGR_FAULT_01 = 0xF0200001,
127     SAMGR_FAULT_02 = 0xF0200002,
128     SAMGR_FAULT_03 = 0xF0200003,
129     SAMGR_FAULT_04 = 0xF0200004,
130     SAMGR_FAULT_A00 = 0xF02F0000,
131     SAMGR_FAULT_A01 = 0xF02F0001,
132     SAMGR_FAULT_A02 = 0xF02F0002,
133     ABMS_FAULT_00 = 0xF0300000,
134     ABMS_FAULT_01 = 0xF0300001,
135     ABMS_FAULT_02 = 0xF0300002,
136     ABMS_FAULT_03 = 0xF0300003,
137     ABMS_FAULT_04 = 0xF0300004,
138     ABMS_FAULT_05 = 0xF0300005,
139     ABMS_FAULT_06 = 0xF0300006,
140     ABMS_FAULT_07 = 0xF0300007,
141     ABMS_FAULT_08 = 0xF0300008,
142     ABMS_FAULT_09 = 0xF0300009,
143     ABMS_FAULT_10 = 0xF030000A,
144     ABMS_FAULT_11 = 0xF030000B,
145     ABMS_FAULT_A00 = 0xF03F0000,
146     ABMS_FAULT_A01 = 0xF03F0001,
147     BMS_FAULT_00 = 0xF04F0000,
148     OS_ACCOUNT_FAULT_00 = 0xF05F0000,
149     OS_ACCOUNT_FAULT_01 = 0xF05F0001,
150     OS_ACCOUNT_FAULT_02 = 0xF05F0002,
151     RDB_FAULT_00 = 0xF06F0000,
152     RDB_FAULT_01 = 0xF06F0001,
153     RDB_FAULT_02 = 0xF06F0002,
154     RDB_FAULT_03 = 0xF06F0003,
155     RDB_FAULT_04 = 0xF06F0004,
156     RDB_FAULT_05 = 0xF06F0005,
157     RDB_FAULT_06 = 0xF06F0006,
158     RDB_FAULT_07 = 0xF06F0007,
159     RDB_FAULT_08 = 0xF06F0008,
160     RDB_FAULT_09 = 0xF06F0009,
161     RDB_FAULT_10 = 0xF06F000A,
162     RDB_FAULT_11 = 0xF06F000B,
163     RDB_FAULT_12 = 0xF06F000C,
164     RDB_FAULT_13 = 0xF06FFFFF,
165     EVENT_FAULT_00 = 0xF07F0000,
166     EVENT_FAULT_01 = 0xF07F0001,
167     EVENT_FAULT_02 = 0xF07F0002,
168     NET_CONN_CLIENT_FAULT_00 = 0xF08F0000,
169     NET_CONN_CLIENT_FAULT_01 = 0xF08F0001,
170     NET_CONN_CLIENT_FAULT_02 = 0xF08F0002,
171     NET_CONN_CLIENT_FAULT_03 = 0xF08F0003,
172     TELEPHONY_FAULT_00 = 0xF09F0000,
173     TELEPHONY_FAULT_01 = 0xF09F0001,
174     SYSTEM_RESOURCE_FAULT_00 = 0xF0AF0000,
175     SYSTEM_RESOURCE_FAULT_01 = 0xF0AF0001,
176     SYSTEM_RESOURCE_FAULT_02 = 0xF0AF0002,
177     MEDIA_FAULT_00 = 0xF0BF0000,
178     MEDIA_FAULT_01 = 0xF0BF0001,
179     NOTIFICATION_FAULT_00 = 0xF0CF0000,
180     CERT_MANAGER_FAULT_00 = 0xF0DF0000,
181     CERT_MANAGER_FAULT_01 = 0xF0DF0001,
182     ACCESS_TOKEN_FAULT_00 = 0xF0EF0000,
183     ACCESS_TOKEN_FAULT_01 = 0xF0EF0001,
184     ACCESS_TOKEN_FAULT_02 = 0xF0EF0002,
185     URL_POLICY_FAULT_00 = 0xF0FF0000,
186     STANDARD_FAULT_00 = 0xF1000000,
187     STANDARD_FAULT_01 = 0xF1000001,
188     STANDARD_FAULT_02 = 0xF1000002,
189     STANDARD_FAULT_03 = 0xF1000003,
190     STANDARD_FAULT_04 = 0xF1000004,
191     STANDARD_FAULT_05 = 0xF1000005,
192     STANDARD_FAULT_06 = 0xF1000006,
193     STANDARD_FAULT_A01 = 0xF10F0000,
194 };
195 
196 struct SysEventInfo {
197     uint32_t dCode;
198     std::string bundleName;
199     std::string moduleName;
200     std::string extraInfo;
201 };
202 
203 class SysEventLog {
204 public:
205     static void SendSysEventLog(const std::string &eventName, const uint32_t dCode, const std::string bundleName,
206         const std::string moduleName, const std::string extraInfo);
207     static void SendSysEventLog(const std::string &eventName, const uint32_t dCode, const std::string extraInfo);
208     static void SendSysEventLog(
209         const std::string &eventName, const uint32_t dCode, const int32_t one, const int32_t two);
210 
211 private:
212     static std::unordered_map<std::string, void (*)(const SysEventInfo &info)> sysEventMap_;
213 
214     static void SendStatisticEvent(const SysEventInfo &info);
215     static void SendFaultEvent(const SysEventInfo &info);
216 
217     template<typename... Types>
218     static int32_t HisysWrite(const std::string &eventName, HiviewDFX::HiSysEvent::EventType type, Types... keyValues);
219 };
220 
221 } // namespace Request
222 } // namespace OHOS
223 
224 #endif