亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? msgq.c

?? samsung 9908DVD源代碼,
?? C
字號:
/**********************************************************************************
 * msgQ.c
 * coded by hspark@ce.cnu.ac.kr
 * date : 2001/06/23
 * modified by hjahn@ce.cnu.ac.kr
 * date : 2003/03/03
 **********************************************************************************/

#include "kernel\\mk_sys.h"
#include "kernel\\mk_mem.h"
#include "kernel\\mk_msgQ.h"
#include "util\\mk_lib.h"
#include "kernel\\mk_ddi.h"

#ifdef _MK_MSGQUEUE

struct mk_msg_queue_struct *MK_pMsgQueueListHead;
struct mk_msg_queue_struct *MK_pMsgQueueListTail;

VOID 
MK_MsgQueueInitialze(VOID)
{
	MK_FixedMsgQueueInitialze();
	MK_VariableMsgQueueInitialze();
	MK_pMsgQueueListHead = MK_NULL;
	MK_pMsgQueueListTail = MK_NULL;
}

STATUS 
MK_CreateMsgQueue(MK_QUEUE *pQueue, CHAR *pName, VOID *pAddr, ULONG Size, BOOLEAN Type, 
			ULONG MsgSize, BOOLEAN Options)
{	
	STATUS	status;
	INT		Flags;

	pQueue->m_Type = Type;
	pQueue->m_pName = pName;
	
	if(pQueue->m_Type == MK_FIXED_SIZE)
	{
		/* MsgSize is fixed size */
		status = MK_CreateFixedMsgQueue(&pQueue->m_Queue.mu_FixedQueue, MK_NULL, pAddr, Size, 
					MsgSize, Options);
	}
	else
	{
		/* MsgSize is Maximum size */
		status = MK_CreateVariableMsgQueue(&pQueue->m_Queue.mu_VariableQueue, MK_NULL, pAddr, 
					Size, MsgSize, Options);
	}

	if(status == MK_NO_ERROR) {
		Flags = MK_InterruptDisable();		/* Critical Region */

		pQueue->m_pNext = MK_NULL;
		pQueue->m_pPrev = MK_NULL;
		if(MK_pMsgQueueListHead == MK_NULL) {
			MK_pMsgQueueListHead = pQueue;
			MK_pMsgQueueListTail = pQueue;
		}
		else {
			pQueue->m_pPrev = MK_pMsgQueueListTail;
			MK_pMsgQueueListTail->m_pNext = pQueue;
			MK_pMsgQueueListTail = pQueue;
		}

		MK_InterruptRestore(Flags);
	}

	return status;
}

STATUS 
MK_DeleteMsgQueue(MK_QUEUE *pQueue)
{
	int Flags;
	STATUS status;

	if(pQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_DeleteFixedMsgQueue(&pQueue->m_Queue.mu_FixedQueue);
	}
	else
	{
		status = MK_DeleteVariableMsgQueue(&pQueue->m_Queue.mu_VariableQueue);
	}

	Flags = MK_InterruptDisable();		/* Critical Region */

	if(MK_pMsgQueueListHead == MK_pMsgQueueListTail)
	{
		MK_pMsgQueueListHead = MK_NULL;
		MK_pMsgQueueListTail = MK_NULL;
	}
	else
	{
		if(pQueue == MK_pMsgQueueListHead)
		{
			MK_pMsgQueueListHead = pQueue->m_pNext;
			MK_pMsgQueueListHead->m_pPrev = MK_NULL;
		}
		else if(pQueue == MK_pMsgQueueListTail)
		{
			MK_pMsgQueueListTail = pQueue->m_pPrev;
			MK_pMsgQueueListTail->m_pNext = MK_NULL;
		}
		else
		{
			pQueue->m_pPrev->m_pNext = pQueue->m_pNext;
			pQueue->m_pNext->m_pPrev = pQueue->m_pPrev;
		}
	}
	pQueue->m_pNext = MK_NULL;
	pQueue->m_pPrev = MK_NULL;

	MK_InterruptRestore(Flags);

	return status;
}

ULONG 
MK_GetFixedMsgQueueBufferSize(MK_QUEUE *pQueue)
{
	return MK_GetFixedMsgQueueAvailableBufferSize(&pQueue->m_Queue.mu_FixedQueue);
}

UINT 
MK_GetFixedMsgQueueCount(MK_QUEUE *pQueue)
{
	return MK_GetFixedMsgQueueMsgCount(&pQueue->m_Queue.mu_FixedQueue);
}


STATUS 
MK_MsgQueuePend(MK_QUEUE *pMsgQueue,  VOID *pMsg, ULONG BufSize, ULONG *pLength, 
				LONG Ticks)
{
	STATUS status;

	if(pMsgQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_FixedMsgQueuePend(&pMsgQueue->m_Queue.mu_FixedQueue	, pMsg, BufSize, pLength, Ticks);
	}
	else
	{
		status = MK_VariableMsgQueuePend(&pMsgQueue->m_Queue.mu_VariableQueue, (CHAR **)pMsg, BufSize, pLength, Ticks);
	}

	return status;
}

STATUS 
MK_MsgQueuePost(MK_QUEUE *pMsgQueue, VOID *pMsg, ULONG Length, LONG Ticks)
{
	STATUS status;

	if(pMsgQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_FixedMsgQueuePost(&pMsgQueue->m_Queue.mu_FixedQueue, pMsg, Length, Ticks);
	}
	else
	{
		status = MK_VariableMsgQueuePost(&pMsgQueue->m_Queue.mu_VariableQueue, (CHAR *)pMsg, Length, Ticks);
	}

	return status;
}

STATUS
MK_MsgQueueFrontPost(MK_QUEUE *pQueue, VOID *pMsg, ULONG Length, LONG Ticks)
{
	STATUS	status;

	if(pQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_FixedMsgQueueFrontPost(&pQueue->m_Queue.mu_FixedQueue, pMsg, Length, Ticks);
	}
	else
	{
		status = MK_VariableMsgQueueFrontPost(&pQueue->m_Queue.mu_VariableQueue, (CHAR *)pMsg, Length, Ticks);
	}

	return status;
}

#if 0
STATUS
MK_MsgQueueBroadcastPost(MK_QUEUE *pQueue, VOID *pMsg, UINT Length, LONG Ticks)
{
	STATUS	status;

	if(pQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_FixedMsgQueueBroadcastPost(&pQueue->m_Queue.mu_FixedQueue, pMsg, Length, Ticks);
	}
	else
	{
		status = MK_VariableMsgQueueBroadcastPost(&pQueue->m_Queue.mu_VariableQueue, (CHAR *)pMsg, Length, Ticks);
	}

	return status;
}
#endif

STATUS
MK_MsgQueueReset(MK_QUEUE *pQueue)
{
	STATUS status;

	if(pQueue->m_Type == MK_FIXED_SIZE)
	{
		status = MK_FixedMsgQueueReset(&pQueue->m_Queue.mu_FixedQueue);
	}
	else
	{
		status = MK_VariableMsgQueueReset(&pQueue->m_Queue.mu_VariableQueue);
	}

	return status;
}


#if _MK_DDI
STATUS
MK_MessageQueueInformation(struct mk_ddi_struct *pDDI)
{
	MK_QUEUE *pQueue;
	int Flags;

	Flags = MK_InterruptDisable();		/* Critical Region */

	for(pQueue = MK_pMsgQueueListHead; pQueue != MK_NULL; pQueue = pQueue->m_pNext)
	{
		MK_Fprintf(pDDI, "%s ", pQueue->m_pName);
		if(pQueue->m_Type == MK_FIXED_SIZE)
		{
			MK_Fprintf(pDDI, "F ");
		}
		else
		{
			MK_Fprintf(pDDI, "V ");
		}
	}

	MK_Fprintf(pDDI,"\n");
	MK_InterruptRestore(Flags);

	return MK_NO_ERROR;
}
#endif

#endif	/* #ifdef _MK_MSGQUEUE */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产综合精品| 亚洲影视在线观看| 国产69精品久久99不卡| 国产亚洲精品7777| 懂色av一区二区在线播放| 国产精品网友自拍| 在线观看一区不卡| 奇米777欧美一区二区| 久久久久久久综合日本| 不卡高清视频专区| 亚洲第一精品在线| 久久女同精品一区二区| 成人黄色在线视频| 午夜精品久久久久久久99水蜜桃 | 精品粉嫩超白一线天av| 国产成人在线看| 亚洲线精品一区二区三区| 欧美一区二区视频网站| 丰满少妇久久久久久久| 亚洲午夜久久久久久久久久久 | 成人教育av在线| 亚洲成人动漫在线观看| 中文字幕一区二区三区在线播放| 91视频你懂的| 日韩av电影免费观看高清完整版| 久久精品免视看| 精品视频免费在线| 国产一区二区三区av电影 | 欧美高清精品3d| 国产精品资源网| 亚洲不卡在线观看| 国产女人18毛片水真多成人如厕 | 在线观看一区日韩| 国产黄色成人av| 日韩精品福利网| 国产精品福利一区二区| 日韩欧美专区在线| 欧美在线视频不卡| 丰满放荡岳乱妇91ww| 免费精品视频最新在线| 一区二区三区在线观看国产 | 国产精品久久777777| 欧美一区二区三区在线| zzijzzij亚洲日本少妇熟睡| 青青草国产成人99久久| 亚洲二区视频在线| 亚洲人吸女人奶水| 国产精品人人做人人爽人人添| 91精选在线观看| 色av成人天堂桃色av| 国产成人亚洲综合色影视| 六月婷婷色综合| 日本v片在线高清不卡在线观看| 亚洲欧美日韩国产成人精品影院| 久久精品在这里| 亚洲精品在线网站| 日韩一区二区三区免费看 | 综合亚洲深深色噜噜狠狠网站| 欧美成人video| 日韩午夜激情视频| 欧美一区二区三区在线电影| 欧美日韩亚洲综合一区 | 欧美性猛交xxxx乱大交退制版| 国产精品18久久久| 激情综合色播激情啊| 日本成人在线不卡视频| 日韩黄色小视频| 五月综合激情网| 日韩中文字幕区一区有砖一区 | 国产伦精一区二区三区| 国产真实精品久久二三区| 美日韩一区二区| 另类小说一区二区三区| 久久成人av少妇免费| 精品无人区卡一卡二卡三乱码免费卡| 免费看欧美女人艹b| 老司机精品视频一区二区三区| 成人毛片在线观看| 91首页免费视频| 日本高清不卡视频| 欧洲亚洲精品在线| 欧美日韩精品专区| 欧美一区二区日韩一区二区| 欧美大片在线观看| 精品国产乱码久久久久久夜甘婷婷 | 在线成人小视频| 欧美一区二区三区色| 欧美tk丨vk视频| 久久精品人人做人人爽人人| 中文字幕中文字幕中文字幕亚洲无线| 亚洲色图另类专区| 亚洲国产精品人人做人人爽| 婷婷久久综合九色综合伊人色| 麻豆成人免费电影| 国产精品小仙女| 成人99免费视频| 欧美色精品在线视频| 日韩精品中午字幕| 国产欧美久久久精品影院| 亚洲视频一区二区在线| 亚洲成人激情av| 国产九九视频一区二区三区| 99精品视频一区| 欧美日韩极品在线观看一区| 精品国产免费久久| 亚洲精品综合在线| 蜜臀av性久久久久蜜臀aⅴ | 99re热这里只有精品视频| 欧美日韩午夜影院| 国产日韩欧美激情| 最近中文字幕一区二区三区| 婷婷一区二区三区| 国产黄色精品网站| 欧美日本高清视频在线观看| 国产目拍亚洲精品99久久精品| 亚洲一区免费观看| 国产乱码精品一区二区三区五月婷| 色综合久久中文综合久久97 | av成人免费在线| 欧美一区二区在线播放| 最新欧美精品一区二区三区| 免费观看91视频大全| 色94色欧美sute亚洲线路二| 精品99一区二区三区| 亚洲一区二区在线免费观看视频 | 久久亚洲一区二区三区明星换脸 | 精品午夜久久福利影院 | 欧美肥妇free| 成人免费一区二区三区在线观看| 免费成人你懂的| 在线观看国产91| 日本一区二区免费在线| 日韩av不卡在线观看| 色综合久久六月婷婷中文字幕| 精品国产第一区二区三区观看体验| 亚洲精品亚洲人成人网在线播放| 黑人巨大精品欧美黑白配亚洲| 欧美日韩综合在线| 自拍偷自拍亚洲精品播放| 国产成人在线观看免费网站| 日韩欧美国产不卡| 处破女av一区二区| 精品三级在线观看| 天天综合天天做天天综合| 91丨porny丨户外露出| 日本一二三四高清不卡| 韩国成人在线视频| 日韩女优制服丝袜电影| 婷婷丁香激情综合| 欧美视频三区在线播放| 一区二区日韩av| 91免费观看视频| 成人免费在线观看入口| www.欧美日韩| 综合精品久久久| 色综合天天性综合| 成人免费在线播放视频| 成人性生交大片免费看视频在线| 久久蜜桃一区二区| 国产精品一区三区| 久久久蜜桃精品| 成人午夜又粗又硬又大| 日本一区二区成人| 成年人午夜久久久| 亚洲欧美日韩国产另类专区| 91视频国产观看| 亚洲一区二区在线播放相泽| 欧美午夜精品一区| 日韩高清一区在线| 欧美大片在线观看一区二区| 国产在线精品视频| 国产精品天干天干在观线 | 91蝌蚪porny九色| 亚洲视频一区在线观看| 日本高清无吗v一区| 亚洲18女电影在线观看| 日韩欧美中文字幕制服| 激情综合五月天| 中文在线一区二区| 色婷婷国产精品综合在线观看| 亚洲一区日韩精品中文字幕| 555www色欧美视频| 极品少妇xxxx偷拍精品少妇| 欧美精彩视频一区二区三区| 一本久久精品一区二区| 午夜av一区二区三区| 精品国产乱码久久久久久影片| 国产白丝精品91爽爽久久| 最新久久zyz资源站| 在线电影国产精品| 国产成人午夜高潮毛片| 亚洲欧美日韩电影| 日韩免费观看高清完整版 | 粉嫩高潮美女一区二区三区 | 国产精品久久久久影院老司| 日本久久电影网| 日韩福利电影在线| 中文字幕免费不卡在线| 欧美区在线观看| 粉嫩av一区二区三区粉嫩|