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 _IT_POSIX_MUTEX_H 33 #define _IT_POSIX_MUTEX_H 34 35 #include "osTest.h" 36 #include "pthread.h" 37 #include "errno.h" 38 #include "sched.h" 39 #include "semaphore.h" 40 #include "unistd.h" 41 #include "los_task_pri.h" 42 43 #ifdef __cplusplus 44 #if __cplusplus 45 extern "C" { 46 #endif /* __cplusplus */ 47 #endif /* __cplusplus */ 48 49 #ifdef LOSCFG_DEBUG_DEADLOCK 50 #define TEST_MUTEX_INIT \ 51 { \ 52 { 0, 0, 0, 0 }, \ 53 { \ 54 { 0, 0 }, { 0, 0 }, 0, 0 \ 55 } \ 56 } 57 #else 58 #define TEST_MUTEX_INIT \ 59 { \ 60 { 0, 0, 0, 0 }, \ 61 { \ 62 { 0, 0 }, 0, 0 \ 63 } \ 64 } 65 #endif 66 #define MUTEX_TEST_NUM 100 67 68 extern int g_retval; 69 extern int g_value; 70 extern int g_ctrl; 71 72 long sysconf(int name); 73 74 #if defined(LOSCFG_TEST_SMOKE) 75 VOID IT_FS_VNODE_001(void); 76 VOID IT_FS_NAMECACHE_001(void); 77 78 VOID ItPosixMux001(void); 79 VOID ItPosixMux007(void); 80 VOID ItPosixMux012(void); 81 VOID ItPosixMux015(void); 82 VOID ItPosixMux016(void); 83 VOID ItPosixMux019(void); 84 VOID ItPosixMux020(void); 85 #endif 86 87 #if defined(LOSCFG_TEST_FULL) 88 VOID ItPosixMux002(void); 89 VOID ItPosixMux003(void); 90 VOID ItPosixMux004(void); 91 VOID ItPosixMux005(void); 92 VOID ItPosixMux006(void); 93 VOID ItPosixMux008(void); 94 VOID ItPosixMux009(void); 95 VOID ItPosixMux010(void); 96 VOID ItPosixMux011(void); 97 VOID ItPosixMux013(void); 98 VOID ItPosixMux014(void); 99 VOID ItPosixMux017(void); 100 VOID ItPosixMux018(void); 101 VOID ItPosixMux021(void); 102 VOID ItPosixMux022(void); 103 VOID ItPosixMux023(void); 104 VOID ItPosixMux024(void); 105 VOID ItPosixMux025(void); 106 VOID ItPosixMux026(void); 107 VOID ItPosixMux027(void); 108 VOID ItPosixMux028(void); 109 VOID ItPosixMux029(void); 110 VOID ItPosixMux032(void); 111 VOID ItPosixMux033(void); 112 VOID ItPosixMux034(void); 113 VOID ItPosixMux035(void); 114 VOID ItPosixMux036(void); 115 VOID ItPosixMux037(void); 116 VOID ItPosixMux038(void); 117 VOID ItPosixMux039(void); 118 VOID ItPosixMux040(void); 119 VOID ItPosixMux041(void); 120 VOID ItPosixMux042(void); 121 VOID ItPosixMux043(void); 122 VOID ItPosixMux044(void); 123 VOID ItPosixMux045(void); 124 VOID ItPosixMux046(void); 125 VOID ItPosixMux047(void); 126 VOID ItPosixMux048(void); 127 VOID ItPosixMux049(void); 128 VOID ItPosixMux050(void); 129 VOID ItPosixMux054(void); 130 VOID ItPosixMux055(void); 131 VOID ItPosixMux056(void); 132 VOID ItPosixMux057(void); 133 VOID ItPosixMux058(void); 134 VOID ItPosixMux059(void); 135 VOID ItPosixMux060(void); 136 VOID ItPosixMux061(void); 137 VOID ItPosixMux062(void); 138 VOID ItPosixMux063(void); 139 VOID ItPosixMux064(void); 140 VOID ItPosixMux065(void); 141 VOID ItPosixMux066(void); 142 VOID ItPosixMux067(void); 143 VOID ItPosixMux068(void); 144 VOID ItPosixMux069(void); 145 VOID ItPosixMux070(void); 146 VOID ItPosixMux071(void); 147 VOID ItPosixMux072(void); 148 VOID ItPosixMux073(void); 149 VOID ItPosixMux074(void); 150 VOID ItPosixMux075(void); 151 VOID ItPosixMux076(void); 152 VOID ItPosixMux077(void); 153 VOID ItPosixMux078(void); 154 VOID ItPosixMux079(void); 155 VOID ItPosixMux080(void); 156 VOID ItPosixMux081(void); 157 VOID ItPosixMux082(void); 158 VOID ItPosixMux084(void); 159 VOID ItPosixMux085(void); 160 VOID ItPosixMux086(void); 161 VOID ItPosixMux087(void); 162 VOID ItPosixMux089(void); 163 VOID ItPosixMux090(void); 164 VOID ItPosixMux091(void); 165 VOID ItPosixMux092(void); 166 VOID ItPosixMux093(void); 167 VOID ItPosixMux094(void); 168 VOID ItPosixMux095(void); 169 VOID ItPosixMux097(void); 170 VOID ItPosixMux098(void); 171 VOID ItPosixMux099(void); 172 VOID ItPosixMux101(void); 173 #endif 174 175 #if defined(LOSCFG_TEST_LLT) 176 VOID LltPosixMux001(VOID); 177 VOID LltPosixMux002(VOID); 178 VOID LltPosixMux003(VOID); 179 VOID LltPosixMux004(VOID); 180 VOID LltPosixMux005(VOID); 181 VOID ItPosixMux031(void); 182 VOID ItPosixMux083(void); 183 VOID ItPosixMux088(void); 184 VOID ItPosixMux096(void); 185 VOID ItPosixMux100(void); 186 VOID LltPosixMux006(void); 187 VOID LltPosixMux007(void); 188 #endif 189 190 #if defined(LOSCFG_TEST_PRESSURE) 191 VOID ItPosixMux051(void); 192 VOID ItPosixMux052(void); 193 VOID ItPosixMux053(void); 194 #endif 195 196 VOID ItSuitePosixMutex(void); 197 198 199 #ifdef __cplusplus 200 #if __cplusplus 201 } 202 #endif /* __cplusplus */ 203 #endif /* __cplusplus */ 204 205 #endif /* _IT_POSIX_MUTEX_H */ 206