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

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

?? task.h

?? 使用廣泛的日本著名的開源嵌入式實時操作系統(tǒng)T-Kernel的源碼
?? H
字號:
/* *---------------------------------------------------------------------- *    T-Kernel * *    Copyright (C) 2004-2006 by Ken Sakamura. All rights reserved. *    T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * *    Version:   1.02.02 *    Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/9. * *---------------------------------------------------------------------- *//* *	task.h (T-Kernel/OS) *	Task Definition */#ifndef _TASK_#define _TASK_#ifndef __mtxcb__#define __mtxcb__typedef struct mutex_control_block	MTXCB;#endif#ifndef __tcb__#define __tcb__typedef struct task_control_block	TCB;#endif#include <sys/queue.h>#include <sys/str_align.h>#include "timer.h"#include "winfo.h"/* * Internal expression of task state *	Can check with 'state & TS_WAIT' whether the task is in the wait state. *	Can check with 'state & TS_SUSPEND' whether the task is in the forced  *	wait state. */typedef enum {	TS_NONEXIST	= 0,	/* Unregistered state */	TS_READY	= 1,	/* RUN or READY state */	TS_WAIT		= 2,	/* WAIT state */	TS_SUSPEND	= 4,	/* SUSPEND state */	TS_WAITSUS	= 6,	/* Both WAIT and SUSPEND state */	TS_DORMANT	= 8	/* DORMANT state */} TSTAT;/* * If the task is alive ( except NON-EXISTENT,DORMANT ), return TRUE. */Inline BOOL task_alive( TSTAT state ){	return ( (state & (TS_READY|TS_WAIT|TS_SUSPEND)) != 0 );}/* * Task priority internal/external expression conversion macro */#define int_priority(x)		( (INT)((x) - MIN_PRI) )#define ext_tskpri(x)		( (PRI)((x) + MIN_PRI) )/* * Task control block (TCB) */struct task_control_block {	QUEUE	tskque;		/* Task queue */	ID	tskid;		/* Task ID */	VP	exinf;		/* Extended information */	ATR	tskatr;		/* Task attribute */	FP	task;		/* Task startup address */	ID	resid;		/* Assigned resource group ID */	INT	stksz;		/* User stack size */	INT	sstksz;		/* System stack size */	INT	:0;		/* ### From here */	UB	reqdct;		/* DCT request (Depends on implementation, 				   the usage is different) */	B	isysmode;	/* Task operation mode initial value */	H	sysmode;	/* Task operation mode, quasi task part				   call level */	INT	:0;		/* ### To here, since it might be accessed				   from outside of the critical section,				   need to be assigned as an independent				   word. Also, there is a case where one				   word is read from 'reqdct' and is read				   all at once from 'reqdct', 'isysmode',				   and 'sysmode', so do not change the				   order and size. */	UB	ipriority;	/* Priority at task startup */	UB	bpriority;	/* Base priority */	UB	priority;	/* Current priority */	UB /*TSTAT*/	state;	/* Task state (Int. expression) */	BOOL	nodiswai:1;	/* TRUE at wait disable				   (Valid only for wait state) */	BOOL	klockwait:1;	/* TRUE at wait kernel lock */	BOOL	klocked:1;	/* TRUE at hold kernel lock */	WSPEC	*wspec;		/* Wait specification */	ID	wid;		/* Wait object ID */	INT	wupcnt;		/* Number of wakeup requests queuing */	INT	suscnt;		/* Number of SUSPEND request nests */	ER	*wercd;		/* Wait error code set area */	WINFO	winfo;		/* Wait information */	TMEB	wtmeb;		/* Wait timer event block */	UINT	waitmask;	/* Disabled wait factor */#ifdef NUM_PORID	RNO	wrdvno;		/* For creating rendezvous number */#endif#ifdef NUM_MTXID	MTXCB	*mtxlist;	/* List of hold mutexes */#endif	UB	tskevt;		/* Task event occurrence state */	SVCLOCK	svclock;	/* Kernel lock for Extended SVC exclusion */	SVCLOCK	*svclocked;	/* List of lock */	FP	texhdr;		/* Task exception handler */	UINT	texmask;	/* Task exception which is enabled */	UINT	pendtex;	/* Task exception which is now suspended */	UINT	exectex;	/* Task exception in break processing */	UH	texflg;		/* Task exception control flag */#define TEX0_RUNNING	0x0001U	/* Task exception code '0' handler				   is in execution */#define TEX1_RUNNING	0x0002U	/* Task exception code '1-31' handler				   is in execution */#define SSFN_RUNNING	0x0004U	/* Subsystem function is in execution				   (Task exception is suspended) */	ID	execssid:16;	/* Subsystem ID of extended SVC in				   execution (MSB=1 break handler was				   already executed) */#define BREAK_RAN	0x8000U	/* execssid MSB */	RELTIM	slicetime;	/* Maximum continuous execution time (ms) */	RELTIM	slicecnt;	/* Continuous execution time counter (ms) */	UINT	stime;		/* System execution time (ms) */	UINT	utime;		/* User execution time (ms) */	VP	istack;		/* User stack pointer initial value */	VP	isstack;	/* System stack pointer initial value */#if TA_GP	VP	gp;		/* Global pointer */#endif	_align64		/* alignment for CTXB.ssp */	CTXB	tskctxb;	/* Task context block */#if USE_OBJECT_NAME	UB	name[OBJECT_NAME_LENGTH];	/* name */#endif};/* * Task dispatch disable state *	0 = DDS_ENABLE		 : ENABLE *	1 = DDS_DISABLE_IMPLICIT : DISABLE with implicit process *	2 = DDS_DISABLE		 : DISABLE with tk_dis_dsp() *	|	| *	|	use in *.c *	use in *.S *	  --> Do NOT change these literals, because using in assembler code * *	'dipatch_disabled' records dispatch disable status set by tk_dis_dsp() *	for some CPU, that accepts delayed interrupt. *	In this case, you can NOT refer the dispatch disabled status *	only by 'dispatch_disabled'. *	Use 'in_ddsp()' to refer the task dispatch status. *	'in_ddsp()' is a macro definition in CPU-dependent definision files. */#define DDS_ENABLE		(0)#define DDS_DISABLE_IMPLICIT	(1)	/* set with implicit process */#define DDS_DISABLE		(2)	/* set by tk_dis_dsp() */IMPORT INT	dispatch_disabled;/* * Task in execution *	ctxtsk is a variable that indicates TCB task in execution *	(= the task that CPU holds context). During system call processing, *	when checking information about the task that requested system call, *	use 'ctxtsk'. Only task dispatcher changes 'ctxtsk'. */IMPORT TCB	*ctxtsk;/* * Task which should be executed *	'schedtsk' is a variable that indicates the task TCB to be executed. *	If a dispatch is delayed by the delayed dispatch or dispatch disable,  *	it does not match with 'ctxtsk.'  */IMPORT TCB	*schedtsk;/* * Task control information */IMPORT TCB	*tcb_table;	/* Task control block */IMPORT QUEUE	free_tcb;	/* FreeQue *//* * Get TCB from task ID. */#define get_tcb(id)		( &tcb_table[INDEX_TSK(id)] )#define get_tcb_self(id)	( ( (id) == TSK_SELF )? ctxtsk: get_tcb(id) )/* * Prepare task execution. */IMPORT void make_dormant( TCB *tcb );/* * Make task executable. *	If the 'tcb' task priority is higher than the executed task, *	make it executable. If the priority is lower, connect the task to the  *	ready queue. */IMPORT void make_ready( TCB *tcb );/* * Make task non-executable. *	Change the 'tcb' task state to be a non-executable state (wait state,  *	forced wait, or dormant state). When calling this function, the *	task must be executable. Change 'tcb->state' on the caller side *	after returning from this function. */IMPORT void make_non_ready( TCB *tcb );/* * Change task priority. *	Change 'tcb' task priority to 'priority'. *	Then make the required task state transition occur. */IMPORT void change_task_priority( TCB *tcb, INT priority );/* * Rotate ready queue. *	'rotate_ready_queue' rotates the priority ready queue at 'priority'. *	'rotate_ready_queue_run' rotates the ready queue including the highest  *	priority task in the ready queue. */IMPORT void rotate_ready_queue( INT priority );IMPORT void rotate_ready_queue_run( void );/* * Scheduling by time slice */IMPORT TCB* time_slice_schedule( TCB *tcb );#endif /* _TASK_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产98色在线|日韩| 夜夜嗨av一区二区三区网页 | 三级一区在线视频先锋| 欧美日韩极品在线观看一区| 丝袜美腿亚洲色图| 日韩美女在线视频| 国产成人99久久亚洲综合精品| 中文字幕不卡三区| 一本久久综合亚洲鲁鲁五月天| 亚洲国产欧美在线| 日韩免费观看2025年上映的电影| 国产一区二区美女| 中文字幕日本乱码精品影院| 欧美亚洲一区二区三区四区| 日韩精品一二三| 国产目拍亚洲精品99久久精品| www.久久精品| 日本在线不卡一区| 国产精品欧美一区二区三区| 欧美视频完全免费看| 久久99久久99| 亚洲精品老司机| 制服丝袜亚洲色图| 成人动漫精品一区二区| 亚洲国产综合视频在线观看| 欧美成人午夜电影| 国产99一区视频免费| 亚洲午夜久久久久久久久电影院| 精品国精品国产尤物美女| av中文字幕一区| 美女精品自拍一二三四| 亚洲欧洲综合另类| 久久这里都是精品| 欧美三区在线观看| 成人黄页毛片网站| 免费成人在线观看| 伊人婷婷欧美激情| 国产亚洲精品福利| 欧美一级生活片| 色综合久久天天| 国产精品1024久久| 热久久国产精品| 亚洲国产欧美在线| 亚洲视频一区二区在线观看| 欧美精品一区二区在线观看| 欧美三区免费完整视频在线观看| 成人动漫视频在线| 国产一区二区在线电影| 同产精品九九九| 一级日本不卡的影视| 国产精品传媒在线| 国产欧美日韩激情| 26uuu久久天堂性欧美| 在线综合亚洲欧美在线视频| 欧美午夜在线一二页| 97精品国产露脸对白| 福利一区二区在线| 国产一区美女在线| 久久99精品久久久久久动态图 | 欧美一区二区三区免费大片| 91精品办公室少妇高潮对白| 99久久夜色精品国产网站| 国产美女在线观看一区| 麻豆专区一区二区三区四区五区| 亚洲国产一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 国产精品国产馆在线真实露脸| 久久久精品影视| 亚洲精品在线观| 日韩三级视频中文字幕| 日韩午夜精品电影| 精品国产乱码久久久久久影片| 欧美一区永久视频免费观看| 欧美精品第1页| 欧美一区二区网站| 69堂国产成人免费视频| 日韩一区二区免费电影| 91精品国产丝袜白色高跟鞋| 欧美一区二区在线不卡| 日韩一区二区电影| 欧美成人三级在线| 久久久亚洲精品石原莉奈| 国产色91在线| 国产精品久久久久影院色老大| 亚洲欧洲精品一区二区精品久久久| 亚洲欧洲日韩女同| 夜夜嗨av一区二区三区中文字幕 | 亚洲色图制服诱惑| 亚洲精选视频免费看| 亚洲一二三区不卡| 日本欧美大码aⅴ在线播放| 毛片av一区二区| 国产福利视频一区二区三区| av一区二区三区四区| 在线观看日韩一区| 日韩精品一区国产麻豆| 国产视频一区在线观看| 亚洲欧美另类久久久精品2019| 一区二区三区91| 免费亚洲电影在线| 成人丝袜高跟foot| 欧美唯美清纯偷拍| 欧美xfplay| 自拍偷拍国产精品| 日本成人超碰在线观看| 国产成人免费高清| 欧美亚洲一区二区三区四区| 日韩欧美高清dvd碟片| 欧美高清在线一区二区| 亚洲国产成人av网| 韩国一区二区视频| 日本高清不卡aⅴ免费网站| 日韩美一区二区三区| 最新日韩在线视频| 久久精品国产网站| 色www精品视频在线观看| 日韩免费成人网| 亚洲免费视频中文字幕| 韩国视频一区二区| 在线观看中文字幕不卡| 久久久久久久久久久电影| 亚洲一区二区三区三| 九九在线精品视频| 欧美色图一区二区三区| 国产香蕉久久精品综合网| 香蕉成人啪国产精品视频综合网| 国模大尺度一区二区三区| 欧美私模裸体表演在线观看| 国产午夜精品福利| 青青草国产成人99久久| 色婷婷综合在线| 欧美国产乱子伦| 九一久久久久久| 91精品国产综合久久精品麻豆 | 91黄视频在线观看| 欧美国产综合色视频| 美国毛片一区二区| 欧美日韩精品欧美日韩精品| 亚洲三级电影全部在线观看高清| 久久精品国产精品青草| 欧美日韩免费观看一区三区| 一区精品在线播放| 高清av一区二区| 久久久91精品国产一区二区三区| 日本va欧美va精品| 欧美狂野另类xxxxoooo| 亚洲欧美激情小说另类| av爱爱亚洲一区| 国产欧美精品一区aⅴ影院| 国产在线一区二区综合免费视频| 9191久久久久久久久久久| 亚洲亚洲精品在线观看| 色哟哟欧美精品| 亚洲精品国产a| 91香蕉视频mp4| 136国产福利精品导航| 99久久婷婷国产综合精品| 日本一二三四高清不卡| 国产成人精品网址| 欧美国产禁国产网站cc| 国产成人av网站| 国产精品视频麻豆| 99久久精品国产精品久久| 中文字幕在线不卡一区二区三区| 高清beeg欧美| 国产精品每日更新在线播放网址| 国产成人免费高清| 国产片一区二区| 成人av在线网站| 亚洲欧洲综合另类| 在线日韩一区二区| 亚洲国产精品视频| 欧美日韩在线一区二区| 亚洲一区二区精品3399| 欧美亚洲尤物久久| 日韩在线一区二区| 亚洲精品一线二线三线| 国产在线播放一区二区三区| 久久久久亚洲蜜桃| 不卡视频免费播放| 亚洲乱码国产乱码精品精98午夜| 97se亚洲国产综合在线| 一区二区日韩av| 在线播放日韩导航| 狠狠色丁香久久婷婷综合丁香| 久久久久久久久久久久电影| eeuss鲁片一区二区三区| 夜夜嗨av一区二区三区四季av| 色菇凉天天综合网| 日韩影院免费视频| 久久久久久亚洲综合| 不卡的电视剧免费网站有什么| 一区二区日韩av| 日韩女同互慰一区二区| 国产精品一区二区在线观看网站| 国产精品每日更新| 夜夜操天天操亚洲| 精品综合免费视频观看| 久久久久久久久蜜桃| 91丨porny丨最新|