• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 <stdbool.h>
17 
18 #include "hitrace/hitracechainc.h"
19 
20 #ifndef TRACE_DOMAIN
21 #define TRACE_DOMAIN 0xD002D33
22 #endif
23 
24 typedef HiTraceIdValid HiTraceId_Valid;
25 typedef HiTraceVersion HiTrace_Version;
26 typedef HiTraceFlag HiTrace_Flag;
27 typedef HiTraceTracepointType HiTrace_Tracepoint_Type;
28 typedef HiTraceCommunicationMode HiTrace_Communication_Mode;
29 typedef HiTraceIdStruct HiTraceId;
30 
OH_HiTrace_BeginChain(const char * name,int flags)31 HiTraceId OH_HiTrace_BeginChain(const char* name, int flags)
32 {
33     return HiTraceChainBeginWithDomain(name, flags, TRACE_DOMAIN);
34 }
35 
OH_HiTrace_EndChain(void)36 void OH_HiTrace_EndChain(void)
37 {
38     HiTraceId id = HiTraceChainGetId();
39     HiTraceChainEndWithDomain(&id, TRACE_DOMAIN);
40 }
41 
OH_HiTrace_GetId(void)42 HiTraceId OH_HiTrace_GetId(void)
43 {
44     return HiTraceChainGetId();
45 }
46 
OH_HiTrace_SetId(const HiTraceId * id)47 void OH_HiTrace_SetId(const HiTraceId* id)
48 {
49     HiTraceChainSetId(id);
50 }
51 
OH_HiTrace_ClearId(void)52 void OH_HiTrace_ClearId(void)
53 {
54     HiTraceChainClearId();
55 }
56 
OH_HiTrace_CreateSpan(void)57 HiTraceId OH_HiTrace_CreateSpan(void)
58 {
59     return HiTraceChainCreateSpan();
60 }
61 
OH_HiTrace_Tracepoint(HiTrace_Communication_Mode mode,HiTrace_Tracepoint_Type type,const HiTraceId * id,const char * fmt,...)62 void OH_HiTrace_Tracepoint(HiTrace_Communication_Mode mode, HiTrace_Tracepoint_Type type,
63                            const HiTraceId* id, const char* fmt, ...)
64 {
65     va_list args;
66     va_start(args, fmt);
67     HiTraceChainTracepointExWithArgsDomain(mode, type, id, TRACE_DOMAIN, fmt, args);
68     va_end(args);
69 }
70 
OH_HiTrace_InitId(HiTraceId * id)71 void OH_HiTrace_InitId(HiTraceId* id)
72 {
73     HiTraceChainInitId(id);
74 }
75 
OH_HiTrace_IdFromBytes(HiTraceId * id,const uint8_t * pIdArray,int len)76 void OH_HiTrace_IdFromBytes(HiTraceId *id, const uint8_t* pIdArray, int len)
77 {
78     *id = HiTraceChainBytesToId(pIdArray, len);
79 }
80 
OH_HiTrace_IsIdValid(const HiTraceId * id)81 bool OH_HiTrace_IsIdValid(const HiTraceId* id)
82 {
83     return HiTraceChainIsValid(id);
84 }
85 
OH_HiTrace_IsFlagEnabled(const HiTraceId * id,HiTrace_Flag flag)86 bool OH_HiTrace_IsFlagEnabled(const HiTraceId* id, HiTrace_Flag flag)
87 {
88     return HiTraceChainIsFlagEnabled(id, flag);
89 }
90 
OH_HiTrace_EnableFlag(const HiTraceId * id,HiTrace_Flag flag)91 void OH_HiTrace_EnableFlag(const HiTraceId* id, HiTrace_Flag flag)
92 {
93     HiTraceChainEnableFlag((HiTraceId*)id, flag);
94 }
95 
OH_HiTrace_GetFlags(const HiTraceId * id)96 int OH_HiTrace_GetFlags(const HiTraceId* id)
97 {
98     return HiTraceChainGetFlags(id);
99 }
100 
OH_HiTrace_SetFlags(HiTraceId * id,int flags)101 void OH_HiTrace_SetFlags(HiTraceId* id, int flags)
102 {
103     HiTraceChainSetFlags(id, flags);
104 }
105 
OH_HiTrace_GetChainId(const HiTraceId * id)106 uint64_t OH_HiTrace_GetChainId(const HiTraceId* id)
107 {
108     return HiTraceChainGetChainId(id);
109 }
110 
OH_HiTrace_SetChainId(HiTraceId * id,uint64_t chainId)111 void OH_HiTrace_SetChainId(HiTraceId* id, uint64_t chainId)
112 {
113     HiTraceChainSetChainId(id, chainId);
114 }
115 
OH_HiTrace_GetSpanId(const HiTraceId * id)116 uint64_t OH_HiTrace_GetSpanId(const HiTraceId* id)
117 {
118     return HiTraceChainGetSpanId(id);
119 }
120 
OH_HiTrace_SetSpanId(HiTraceId * id,uint64_t spanId)121 void OH_HiTrace_SetSpanId(HiTraceId* id, uint64_t spanId)
122 {
123     HiTraceChainSetSpanId(id, spanId);
124 }
125 
OH_HiTrace_GetParentSpanId(const HiTraceId * id)126 uint64_t OH_HiTrace_GetParentSpanId(const HiTraceId* id)
127 {
128     return HiTraceChainGetParentSpanId(id);
129 }
130 
OH_HiTrace_SetParentSpanId(HiTraceId * id,uint64_t parentSpanId)131 void OH_HiTrace_SetParentSpanId(HiTraceId* id, uint64_t parentSpanId)
132 {
133     HiTraceChainSetParentSpanId(id, parentSpanId);
134 }
135 
OH_HiTrace_IdToBytes(const HiTraceId * id,uint8_t * pIdArray,int len)136 int OH_HiTrace_IdToBytes(const HiTraceId* id, uint8_t* pIdArray, int len)
137 {
138     return HiTraceChainIdToBytes(id, pIdArray, len);
139 }