• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
3  * Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice, this list of
9  *    conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
12  *    of conditions and the following disclaimer in the documentation and/or other materials
13  *    provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its contributors may be used
16  *    to endorse or promote products derived from this software without specific prior written
17  *    permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
26  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
28  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef _LOS_MEMSTAT_PRI_H
33 #define _LOS_MEMSTAT_PRI_H
34 
35 #include "los_typedef.h"
36 #include "los_memory.h"
37 
38 #ifdef __cplusplus
39 #if __cplusplus
40 extern "C" {
41 #endif /* __cplusplus */
42 #endif /* __cplusplus */
43 
44 typedef struct {
45     UINT32 memUsed;
46 } TskMemUsedInfo;
47 
48 extern VOID OsTaskMemUsedInc(UINT32 usedSize, UINT32 taskID);
49 extern VOID OsTaskMemUsedDec(UINT32 usedSize, UINT32 taskID);
50 extern UINT32 OsTaskMemUsage(UINT32 taskID);
51 extern VOID OsTaskMemClear(UINT32 taskID);
52 #define OS_MEM_ENABLE_MEM_STATISTICS
53 
54 #ifdef LOS_MEM_SLAB
55 typedef struct {
56     UINT32 slabUsed;
57 } TskSlabUsedInfo;
58 
59 extern VOID OsTaskSlabUsedInc(UINT32 usedSize, UINT32 taskID);
60 extern VOID OsTaskSlabUsedDec(UINT32 usedSize, UINT32 taskID);
61 extern UINT32 OsTaskSlabUsage(UINT32 taskID);
62 #endif
63 
64 #ifdef OS_MEM_ENABLE_MEM_STATISTICS
65 #define OS_MEM_ADD_USED(usedSize, taskID)    OsTaskMemUsedInc(usedSize, taskID)
66 #define OS_MEM_REDUCE_USED(usedSize, taskID) OsTaskMemUsedDec(usedSize, taskID)
67 #define OS_MEM_CLEAR(taskID)                 OsTaskMemClear(taskID)
68 #ifdef LOS_MEM_SLAB
69 #define OS_SLAB_ADD_USED(usedSize, taskID)    OsTaskSlabUsedInc(usedSize, taskID)
70 #define OS_SLAB_REDUCE_USED(usedSize, taskID) OsTaskSlabUsedDec(usedSize, taskID)
71 #endif
72 #else
73 #define OS_MEM_ADD_USED(usedSize, taskID)
74 #define OS_MEM_REDUCE_USED(usedSize, taskID)
75 #define OS_MEM_CLEAR(taskID)
76 #ifdef LOS_MEM_SLAB
77 #define OS_SLAB_ADD_USED(usedSize, taskID)
78 #define OS_SLAB_REDUCE_USED(usedSize, taskID)
79 #endif
80 #endif
81 
82 #ifdef __cplusplus
83 #if __cplusplus
84 }
85 #endif /* __cplusplus */
86 #endif /* __cplusplus */
87 
88 #endif /* _LOS_MEMSTAT_PRI_H */
89