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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system.c

?? 該文件為一個嵌入式GUI圖形庫源碼
?? C
字號:
/*
 *  RTEMS System Layer for emGUI
 *
 *
 *  COPYRIGHT (c) 2001 - 2010.
 *  emTech System Corporation.
 *
 *  The license and distribution terms for this file may be
 *  found in found in the file LICENSE.
 */

/*	Huangf emcore@263.net
 */
 
#include "emGUI.h"

static rtems_id	evSysQ;

void SysHandleEvent();

static void emGUI_sysTaskEntry()
{
	SysHandleEvent();
}

void emGUI_sysInitialoization()
{
	rtems_id	taskID;
	
	rtems_message_queue_create(
		rtems_build_name('G', 'U', 'I', 'Q'),
		EMGUI_SYSQ_SIZE,
		4 * sizeof(unsigned32),
		RTEMS_FIFO,
		&evSysQ
	);

	rtems_task_create(
		rtems_build_name('G', 'U', 'I', 'T'),
		EMGUI_SYSTHREAD_PRIORITY,
		EMGUI_SYSTHREAD_STACKSIZE,
		RTEMS_NO_ASR,
		RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,
		&taskID
	);

	rtems_task_start(
		taskID,
		(rtems_task_entry)emGUI_sysTaskEntry,
		0
	);
}
	
boolean SysGetEvent(
	unsigned32 timo
)
{
	unsigned32 	size;
	int 		status;
	
	size = sizeof(_evSys_Snapshot);
	
	status = rtems_message_queue_receive(
		evSysQ,
		&_evSys_Snapshot,
		&size,
		RTEMS_WAIT,
		timo
	);

	return !status;
}

void SysSendEvent(
	unsigned32 type,
	unsigned32 data1,
	unsigned32 data2,
	unsigned32 data3
)
{
	_SysEvent event = {
		type,
		data1,
		data2,
		data3
	};

	rtems_message_queue_send(
		evSysQ,
		&event,
		sizeof(event)
	);
}

/*  create messageQ for a Application
 */
unsigned32 CreateMsgQ()
{
	rtems_id 	q;
	unsigned32	status;
	
	status = rtems_message_queue_create(
		rtems_build_name('G', 'U', 'I', 'q'),
		APPLICATION_MESSAGEQ_SIZE,
		4 * sizeof(unsigned32),
		RTEMS_FIFO,
		&q
	);

	if (status){
		return 0;
	}
	else{
		return (unsigned32)q;
	}
}

/*  create a Application's task and make it running
 *  this is not a very good version
 */
unsigned32 CreateAppTask(
	Application	*app,
	void		*appMain
)
{
	rtems_id	taskID;
	unsigned32 	status;
	
	status = rtems_task_create(
		rtems_build_name('G', 'U', 'I', 't'),
		EMGUI_APPLICATION_PRIORITY,
		EMGUI_APPLICATION_STACKSIZE,
		0,
		RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,
		&taskID
	);
	
	if (status){
		/*  failed */
		return 0;
	}
	
	rtems_task_start(
		taskID,
		(rtems_task_entry)appMain,
		(unsigned32)app
	);

	return taskID;
}

void SysDeleteTask(
	unsigned32 taskID
)
{
	rtems_task_delete(
		taskID
	);
}

void SysDeleteMsgQ(
	unsigned32 msgqID
)
{
	rtems_message_queue_delete(
		msgqID
	);
}

boolean SysGetAppMessage(
	struct Application *__p
)
{
	if (__p == NULL){
		return FALSE;
	}
	
	{
	
		unsigned32 	size;
		unsigned32	status;
		
		size = sizeof(__p->msgBuf);
	
		status = rtems_message_queue_receive(
			__p->msgQ,
			&__p->msgBuf[0],
			&size,
			RTEMS_WAIT,
			0
		);

		return !status;
	}
}

static void __PostMessage(
	AppID		appID,
	WndID		wndID,
	unsigned16	msg,
	unsigned16	nParam,
	unsigned32	lParam
)
{
	unsigned32 msgdata[4];
	
	if (appID == NULL){
		SysSendEvent(
			msg,
			nParam,
			lParam >> 16,
			lParam & 0x0000FFFF
		);
		return;
	}

	/*  system message */
	msgdata[0] = EVS_SYSTEM;
	msgdata[1] = (unsigned32)wndID;
	msgdata[2] = (msg << 16) | (nParam);
	msgdata[3] = lParam;
	
	rtems_message_queue_send(
		appID->msgQ,
		&msgdata[0],
		sizeof(msgdata)
	);
}

void PostAppMessage(
	AppID		appID,
	unsigned16	msg,
	unsigned16	nParam,
	unsigned32	lParam
)
{
	__PostMessage(
		appID,
		NULL,
		msg,
		nParam,
		lParam
	);
}

void PostMessage(
	WndID		wndID,
	unsigned16	msg,
	unsigned16	nParam,
	unsigned32	lParam
)
{
	if (wndID == NULL || wndID->application == NULL){
		return;
	}
	
	__PostMessage(
		wndID->application,
		wndID,
		msg,
		nParam,
		lParam
	);
}

void PostSysMessage(
	unsigned16	msg,
	unsigned16	nParam,
	unsigned32	lParam
)
{
	__PostMessage(
		NULL,
		NULL,
		msg,
		nParam,
		lParam
	);
}

boolean SysSendAppMessage()
{
	struct Application *__p;
	
	/*  Application list should be task safe */
	__p = FirstApplication();
	
	if (__p == NULL){
		return FALSE;
	}
	
	rtems_message_queue_send(
		__p->msgQ,
		&_evSys_Snapshot,
		sizeof(_evSys_Snapshot)
	);

	return TRUE;
}

void SysApplicationTermination()
{
	rtems_task_delete(
		RTEMS_SELF
	);
}

void emGUIInitialization()
{
	/*  other initialization */
	AppInitialization();
	WndInitialization();
	
	emGUI_sysInitialoization();
}

/*  glue code for send_mouse_msg used by MicroWindows version
 *  change later
 */
asm(".global send_mouse_msg");
asm("send_mouse_msg:");
asm("jmp SysSendEvent");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清精品久久久久| 精品国产一区二区三区久久影院| 欧美日韩高清不卡| 中文字幕第一页久久| 亚洲成人av中文| 99久久国产综合精品女不卡 | 日本不卡一二三区黄网| 成人午夜电影小说| 精品国产1区2区3区| 亚洲国产精品一区二区尤物区| 国产在线精品一区二区不卡了| 欧美亚洲综合网| 国产精品女主播av| 国产高清久久久久| 久久免费国产精品| 狠狠色丁香婷婷综合久久片| 日本韩国一区二区| 亚洲精品欧美激情| 欧美午夜一区二区三区| 欧美国产激情二区三区 | 亚洲丝袜制服诱惑| 国产成人在线免费| 精品国产一区二区三区四区四| 日韩精品一区第一页| 在线观看视频91| 夜夜嗨av一区二区三区四季av | 国产欧美日韩精品一区| 麻豆91在线观看| 日韩免费观看高清完整版| 午夜久久久久久久久| 欧美日韩中文精品| 一区二区三区91| jlzzjlzz亚洲日本少妇| 国产拍欧美日韩视频二区| 国产精品66部| 国产精品毛片大码女人| 国产成人av电影免费在线观看| 国产视频一区二区三区在线观看| 黄色精品一二区| 日韩精品一区二区三区三区免费| 精一区二区三区| 国产香蕉久久精品综合网| 国产91精品久久久久久久网曝门| 国产精品久久久爽爽爽麻豆色哟哟| 不卡的电视剧免费网站有什么| 成人免费在线播放视频| 91成人看片片| 免费不卡在线观看| 国产欧美精品一区二区三区四区| 成人黄色777网| 一区二区三区欧美亚洲| 欧美老肥妇做.爰bbww视频| 奇米在线7777在线精品| 久久蜜桃av一区精品变态类天堂| 成人免费电影视频| 午夜日韩在线电影| 久久亚洲一区二区三区明星换脸| 99久久精品国产精品久久| 亚洲成人1区2区| 久久午夜老司机| 色偷偷久久人人79超碰人人澡| 午夜精品一区在线观看| 久久亚洲综合色一区二区三区| 97se亚洲国产综合自在线| 石原莉奈一区二区三区在线观看| 久久久久久久久蜜桃| 一本到高清视频免费精品| 美国三级日本三级久久99 | 天堂一区二区在线| 欧美激情综合五月色丁香小说| 欧美亚洲国产一卡| 国产成人鲁色资源国产91色综| 亚洲一区二区欧美激情| 国产亚洲精品福利| 欧美日本在线播放| 99久久精品99国产精品| 91极品美女在线| 免费成人结看片| 亚洲另类在线制服丝袜| 日韩三级高清在线| 在线亚洲一区观看| 国产精品1区2区3区在线观看| 亚洲一线二线三线视频| 国产亚洲精久久久久久| 欧美一区日韩一区| 欧美亚洲自拍偷拍| 成人av在线网| 国产一区二区三区在线观看免费| 亚洲国产精品久久艾草纯爱| 国产欧美日韩亚州综合 | 伊人色综合久久天天| 精品国产百合女同互慰| 欧美日韩在线播| 99国产一区二区三精品乱码| 久久精品理论片| 午夜成人免费电影| 亚洲国产精品久久久男人的天堂| 亚洲国产精品精华液ab| 亚洲精品在线免费观看视频| 91精品国产综合久久精品app | 亚洲韩国精品一区| 亚洲欧美一区二区视频| 中文字幕精品在线不卡| 久久久久免费观看| 久久亚洲精精品中文字幕早川悠里| 日韩亚洲欧美综合| 91精品国产综合久久精品麻豆 | 无吗不卡中文字幕| 亚洲一区二区三区自拍| 一区二区高清免费观看影视大全| 综合分类小说区另类春色亚洲小说欧美| 精品对白一区国产伦| 欧美精品一区二| 欧美不卡一区二区三区四区| 欧美乱妇23p| 91精品国产欧美一区二区| 欧美久久久一区| 91精品婷婷国产综合久久性色 | 蜜臀av国产精品久久久久| 丝袜美腿亚洲综合| 免费视频一区二区| 国产一区二区三区久久久| 久久99国产精品尤物| 国产精品一二三在| 99热精品国产| 欧美久久久一区| 精品人在线二区三区| 国产亚洲一区二区三区在线观看 | 精品久久久久av影院 | 亚洲男同1069视频| 五月天丁香久久| 国产在线精品一区二区不卡了 | 久久av资源网| 欧美一区欧美二区| 精品国产免费人成电影在线观看四季 | 4438x亚洲最大成人网| 欧美一区二视频| 国产欧美精品一区二区三区四区| 亚洲欧美日韩电影| 手机精品视频在线观看| 国产综合色视频| 日本韩国视频一区二区| 91精品国产综合久久精品图片 | 日韩免费高清av| 欧美—级在线免费片| 亚洲免费在线播放| 久久成人精品无人区| 国产成人亚洲综合a∨猫咪| 91美女片黄在线| 日韩午夜三级在线| 亚洲欧美日韩在线不卡| 日日摸夜夜添夜夜添国产精品| 国产乱码精品一区二区三区五月婷 | 欧美日本在线播放| 欧美国产精品一区二区三区| 亚洲成人综合在线| 成人免费的视频| 欧美大度的电影原声| 亚洲精品一卡二卡| 国产高清在线观看免费不卡| 欧美日韩一区二区三区高清| 国产亚洲一区字幕| 奇米影视一区二区三区| 一本色道亚洲精品aⅴ| 久久青草欧美一区二区三区| 亚洲国产欧美在线| av中文字幕一区| 久久久精品免费免费| 石原莉奈在线亚洲三区| 91蝌蚪porny| 国产亚洲制服色| 精品一区二区在线看| 欧美在线影院一区二区| 亚洲国产成人午夜在线一区| 久久精品免费观看| 4438x成人网最大色成网站| 一区二区在线观看视频| 成人黄页在线观看| 国产日本一区二区| 久久电影国产免费久久电影 | 国产精品福利一区二区三区| 久久99蜜桃精品| 91精品国产综合久久蜜臀| 一级日本不卡的影视| 不卡的电视剧免费网站有什么| 久久综合色播五月| 激情综合网天天干| 日韩写真欧美这视频| 视频一区免费在线观看| 欧美日韩精品欧美日韩精品一| 夜夜操天天操亚洲| 91免费在线视频观看| 国产精品久久777777| 成人白浆超碰人人人人| 国产精品福利一区| 97久久超碰国产精品电影| 中文字幕在线播放不卡一区| 不卡的电影网站| 亚洲欧洲在线观看av| 91香蕉视频在线|