cpu_task.h

来自「嵌入式操作系统T-Kernel 完整代码」· C头文件 代码 · 共 91 行

H
91
字号
/* *---------------------------------------------------------------------- *    T-Kernel * *    Copyright (C) 2004 by Ken Sakamura. All rights reserved. *    T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * *    Version:   1.01.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* *	cpu_task.h (M32104) *	CPU-Dependant Task Start Processing */#ifndef _CPU_TASK_#define _CPU_TASK_/* * System stack configuration at task startup */typedef struct {	W	acch;	UW	accl;	VW	r0_5[6];	VW	r8_14[7];	UW	psw;	VP	bpc;	VW	r6;	VW	r7;} SStackFrame;/* * Size of system stack area destroyed by 'make_dormant()' * In other words, the size of area required to write by 'setup_context().' */#define	DORMANT_STACK_SIZE	( sizeof(VW) * 4 )	/* To 'psw' *//* * Size of area kept for special use from system stack */#define	RESERVE_SSTACK(tskatr)	0/* * Initial value for task startup */#define	INIT_PSW	( PSW_BIE | PSW_BSM | PSW_SM )/* * Create stack frame for task startup *	Call from 'make_dormant()' */Inline void setup_context( TCB *tcb ){	SStackFrame	*ssp;	ssp = tcb->isstack;	--ssp;	/* CPU context initialization */	ssp->psw = INIT_PSW;		/* Initial PSW */	ssp->bpc = tcb->task;		/* Task startup address */	tcb->tskctxb.ssp = ssp;		/* System stack */}/* * Set task startup code *	Called by 'tk_sta_tsk()' processing. */Inline void setup_stacd( TCB *tcb, INT stacd ){	SStackFrame	*ssp = tcb->tskctxb.ssp;	ssp->r0_5[0] = stacd;	ssp->r0_5[1] = (VW)tcb->exinf;}/* * Delete task contexts */Inline void cleanup_context( TCB *tcb ){	/* None */}#endif /* _CPU_TASK_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?