📄 task13.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/01/03 14:14:41">
<title>5.12 Getting the current task's ID</title>
<STYLE TYPE="text/css">
<!--
span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>
</head>
<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">
<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>
<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="os20toc.htm"><img src="images/navtoc.gif" width="84" height="23"
border="0" alt="TOC"> </a></td>
<td><a href="task12.htm"><img src="images/navprev.gif" width="80" height="23"
border="0" alt="PREV"> </a></td>
<td><a href="task14.htm"><img src="images/navnext.gif" width="83" height="23"
border="0" alt="NEXT"> </a></td>
<td><a href="os20ix.htm"><img src="images/navidx.gif" width="84" height="23"
border="0" alt="INDEX"> </a></td>
</tr>
</table>
<p><br clear="all">
</p>
<hr align="left">
<blockquote>
<h2>
<a name="1204834"> </a><font color="#003366" face="Verdana, Arial, Helvetica, sans-serif">5.12 Getting the current task's ID</font>
</h2><hr>
<p>
<a name="1204835"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">Several functions are provided for obtaining details of a specified task. The following function returns a pointer to the task structure of the current task:</font>
</p>
<a name="1204837"> </a><font size=2 face=Courier><strong>task_t* task_id (void);<br></strong></font>
<p>
<a name="1204838"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">While <font size=2 face=Courier><strong>task_id</strong></font> is very efficient when called from a task, it takes a long time to execute when called from a high priority process, and cannot be called from an interrupt handler. To avoid these problems an alternative function is available:</font>
</p>
<a name="1204840"> </a><font size=2 face=Courier><strong>task_context_t task_context(task_t** task, int* level);<br></strong></font>
<p>
<a name="1204841"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">This returns whether it was called from a task, interrupt, or high priority process. In addition if <font size=2 face=Courier><strong>task</strong></font> is not <font size=2 face=Courier><strong>NULL</strong></font>, and <font size=2 face=Courier><strong>task_context</strong></font> is called from a task or high priority process, it assigns the current task ID to the <font size=2 face=Courier><strong>task_t</strong></font> pointed to by <font size=2 face=Courier><strong>task</strong></font>. Similarly if <font size=2 face=Courier><strong>level</strong></font> is not <font size=2 face=Courier><strong>NULL</strong></font>, and <font size=2 face=Courier><strong>task_context</strong></font> is called from an interrupt handler, then it assigns the current interrupt level to the <font size=2 face=Courier><strong>int</strong></font> pointed to by <font size=2 face=Courier><strong>level</strong></font>. The advantage in not requiring the current <font size=2 face=Courier><strong>task_t</strong></font> or interrupt level is that this function may operate considerably faster when this information does not have to be found.</font>
</p>
<p>
<a name="1204844"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif">Both of these function may be used in conjunction with <font size=2 face=Courier><strong>task_wait</strong></font>; see <a href="task17.htm#1204979"><font color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>Section
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -