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 #ifndef HIDEBUG_FFI_H 17 #define HIDEBUG_FFI_H 18 19 #include <cstdint> 20 #include "cj_ffi/cj_common_ffi.h" 21 22 extern "C" { 23 struct CSystemMemInfo { 24 uint64_t totalMem; 25 uint64_t freeMem; 26 uint64_t availableMem; 27 }; 28 29 struct CThreadCpuUsage { 30 uint32_t threadId; 31 double cpuUsage; 32 }; 33 34 struct ThreadCpuUsageArr { 35 CThreadCpuUsage *head; 36 int64_t size; 37 }; 38 39 struct CNativeMemInfo { 40 uint64_t pss; 41 uint64_t vss; 42 uint64_t rss; 43 uint64_t sharedDirty; 44 uint64_t privateDirty; 45 uint64_t sharedClean; 46 uint64_t privateClean; 47 }; 48 49 struct CMemoryLimit { 50 uint64_t rssLimit; 51 uint64_t vssLimit; 52 }; 53 54 FFI_EXPORT uint64_t FfiHidebugGetPss(); 55 FFI_EXPORT uint64_t FfiHidebugGetVss(); 56 FFI_EXPORT uint64_t FfiHidebugGetNativeHeapSize(); 57 FFI_EXPORT uint64_t FfiHidebugGetNativeHeapAllocatedSize(); 58 FFI_EXPORT uint64_t FfiHidebugGetNativeHeapFreeSize(); 59 FFI_EXPORT uint64_t FfiHidebugGetSharedDirty(); 60 FFI_EXPORT uint64_t FfiHidebugGetPrivateDirty(); 61 FFI_EXPORT double FfiHidebugGetCpuUsage(); 62 FFI_EXPORT double FfiHidebugGetSystemCpuUsage(int32_t &code); 63 FFI_EXPORT ThreadCpuUsageArr FfiHidebugGetAppThreadCpuUsage(int32_t &code); 64 FFI_EXPORT CSystemMemInfo FfiHidebugGetSystemMemInfo(int32_t &code); 65 FFI_EXPORT CNativeMemInfo FfiHidebugGetAppNativeMemInfo(int32_t &code); 66 FFI_EXPORT CMemoryLimit FfiHidebugGetAppMemoryLimit(int32_t &code); 67 FFI_EXPORT int32_t FfiHidebugGetServiceDump(int32_t serviceId, int32_t fd, CArrString args); 68 FFI_EXPORT char *FfiHidebugStartAppTraceCapture(CArrUnit tags, int32_t flag, uint32_t limitSize, int32_t &code); 69 FFI_EXPORT int32_t FfiHidebugStopAppTraceCapture(); 70 FFI_EXPORT int32_t FfiHidebugSetAppResourceLimit(const char *type, int32_t value, bool enableDebugLog); 71 FFI_EXPORT bool FfiHidebugIsDebugState(); 72 } 73 74 #endif // HIDEBUG_FFI_H 75