コード例 #1
0
ファイル: msg_sm.c プロジェクト: Racing1/zeppelin_kernel
/*
 *  ======== DeleteMsgMgr ========
 */
static void DeleteMsgMgr(struct MSG_MGR *hMsgMgr)
{
	DBC_Require(MEM_IsValidHandle(hMsgMgr, MSGMGR_SIGNATURE));

	if (hMsgMgr->queueList) {
               if (LST_IsEmpty(hMsgMgr->queueList)) {
                       LST_Delete(hMsgMgr->queueList);
                       hMsgMgr->queueList = NULL;
               }
	}

       if (hMsgMgr->msgFreeList) {
		FreeMsgList(hMsgMgr->msgFreeList);
               hMsgMgr->msgFreeList = NULL;
       }

       if (hMsgMgr->msgUsedList) {
		FreeMsgList(hMsgMgr->msgUsedList);
               hMsgMgr->msgUsedList = NULL;
       }

	if (hMsgMgr->hSyncEvent)
		SYNC_CloseEvent(hMsgMgr->hSyncEvent);

	if (hMsgMgr->hSyncCS)
		SYNC_DeleteCS(hMsgMgr->hSyncCS);

	MEM_FreeObject(hMsgMgr);
}
コード例 #2
0
/*
 *  ======== FreeChirpList ========
 *  Purpose:
 *      Free the queue of Chirps.
 */
static void FreeChirpList(struct LST_LIST *pChirpList)
{
	DBC_Require(pChirpList != NULL);

	while (!LST_IsEmpty(pChirpList))
		MEM_Free(LST_GetHead(pChirpList));

	LST_Delete(pChirpList);
}
コード例 #3
0
ファイル: msg_sm.c プロジェクト: Racing1/zeppelin_kernel
/*
 *  ======== FreeMsgList ========
 */
static void FreeMsgList(struct LST_LIST *msgList)
{
	struct MSG_FRAME *pMsg;

       if (!msgList)
               goto func_end;

	while ((pMsg = (struct MSG_FRAME *)LST_GetHead(msgList)) != NULL)
		MEM_Free(pMsg);

	DBC_Assert(LST_IsEmpty(msgList));

	LST_Delete(msgList);
func_end:
       return;
}
コード例 #4
0
ファイル: rmm.c プロジェクト: MuMu360121/jordan-kernel
/*
 *  ======== RMM_delete ========
 */
void RMM_delete(struct RMM_TargetObj *target)
{
	struct RMM_OvlySect *pSect;
	struct RMM_Header *hptr;
	struct RMM_Header *next;
	u32 i;

	DBC_Require(MEM_IsValidHandle(target, RMM_TARGSIGNATURE));

	GT_1trace(RMM_debugMask, GT_ENTER, "RMM_delete(0x%lx)\n", target);

	if (target->segTab != NULL)
		MEM_Free(target->segTab);

	if (target->ovlyList) {
		while ((pSect = (struct RMM_OvlySect *)LST_GetHead
		      (target->ovlyList))) {
			MEM_Free(pSect);
		}
		DBC_Assert(LST_IsEmpty(target->ovlyList));
		LST_Delete(target->ovlyList);
	}

	if (target->freeList != NULL) {
		/* Free elements on freelist */
		for (i = 0; i < target->numSegs; i++) {
			hptr = next = target->freeList[i];
			while (next) {
				hptr = next;
				next = hptr->next;
				MEM_Free(hptr);
			}
		}
		MEM_Free(target->freeList);
	}

	MEM_FreeObject(target);
}