165 UINT32 *semIndexArray = NULL;
168 SCHEDULER_LOCK(intSave);
170 for (i = 0; i < LOSCFG_BASE_IPC_SEM_LIMIT; i++) {
171 semNode = GET_SEM(i);
173 if ((semNode->
semStat == OS_SEM_USED) && (semDebug->
creater != NULL)) {
177 SCHEDULER_UNLOCK(intSave);
179 if (usedSemCnt > 0) {
181 if (semIndexArray == NULL) {
182 PRINTK(
"LOS_MemAlloc failed in %s \n", __func__);
189 SCHEDULER_LOCK(intSave);
190 for (i = 0; i < LOSCFG_BASE_IPC_SEM_LIMIT; i++) {
191 semNode = GET_SEM(i);
193 if ((semNode->
semStat != OS_SEM_USED) || (semDebug->
creater == NULL)) {
196 *(semIndexArray + count) = i;
199 if (count >= usedSemCnt) {
203 SCHEDULER_UNLOCK(intSave);
207 (VOID)
LOS_MemFree((VOID *)OS_SYS_MEM_ADDR, semIndexArray);
UINT32 LOS_MemFree(VOID *pool, VOID *ptr)
释放从指定动态内存中申请的内存
STATIC VOID OsSemSort(UINT32 *semIndexArray, UINT32 usedCount)
按信号量访问时间排序