📄 compat-uitron-task-dependent-synch-functions.html
字号:
<!-- Copyright (C) 2003 Red Hat, Inc. --><!-- This material may be distributed only subject to the terms --><!-- and conditions set forth in the Open Publication License, v1.0 --><!-- or later (the latest version is presently available at --><!-- http://www.opencontent.org/openpub/). --><!-- Distribution of the work or derivative of the work in any --><!-- standard (paper) book form is prohibited unless prior --><!-- permission is obtained from the copyright holder. --><HTML><HEAD><TITLE>Task-Dependent Synchronization Functions</TITLE><meta name="MSSmartTagsPreventParsing" content="TRUE"><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="eCos Reference Manual"HREF="ecos-ref.html"><LINKREL="UP"TITLE="礗TRON API"HREF="compat-uitron-microitron-api.html"><LINKREL="PREVIOUS"TITLE="Task Management Functions"HREF="compat-uitron-task-management-functions.html"><LINKREL="NEXT"TITLE=" Synchronization and Communication Functions"HREF="compat-uitron-sync-and-comm-functions.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">eCos Reference Manual</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="compat-uitron-task-management-functions.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Chapter 32. µITRON API</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="compat-uitron-sync-and-comm-functions.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="COMPAT-UITRON-TASK-DEPENDENT-SYNCH-FUNCTIONS">Task-Dependent Synchronization Functions</H1><P>These functions are fully supported in this release: </P><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">sus_tsk</TT>( ID <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tskid</I></SPAN> )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">rsm_tsk</TT>( ID <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tskid</I></SPAN> )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">frsm_tsk</TT>( ID <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tskid</I></SPAN> )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">slp_tsk</TT>( void )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">tslp_tsk</TT>( TMO <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tmout</I></SPAN> )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">wup_tsk</TT>( ID <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tskid</I></SPAN> )</PRE></TD></TR></TABLE><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">ER <TTCLASS="FUNCTION">can_wup</TT>( INT *<SPANCLASS="emphasis"><ICLASS="EMPHASIS">p_wupcnt,</I></SPAN> ID <SPANCLASS="emphasis"><ICLASS="EMPHASIS">tskid</I></SPAN> )</PRE></TD></TR></TABLE><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN13571">Error checking</H2><P>The following conditions are only checked for, and only returnerrors if <TTCLASS="LITERAL">CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS</TT>is enabled (see the configuration option “Return Error Codes for BadParams”):</P><P></P><UL><LI><P>invalid tskid; less than 1 or greater than <TTCLASS="LITERAL">CYGNUM_UITRON_TASKS</TT>returns E_ID</P></LI><LI><P><TTCLASS="FUNCTION">wup_tsk()</TT>, <TTCLASS="FUNCTION">sus_tsk()</TT>, <TTCLASS="FUNCTION">rsm_tsk()</TT>, <TTCLASS="FUNCTION">frsm_tsk()</TT> on the calling task returns E_OBJ</P></LI><LI><P>dispatching is enabled in <TTCLASS="FUNCTION">tslp_tsk()</TT> and <TTCLASS="FUNCTION">slp_tsk()</TT>, or E_CTX</P></LI><LI><P>tmout must be positive, otherwise E_PAR</P></LI><LI><P>return value pointer in <TTCLASS="FUNCTION">can_wup()</TT> is a valid pointer, or E_PAR</P></LI></UL><P>The following conditions are checked for, and can return error codes, regardless of the setting of<TTCLASS="LITERAL">CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS</TT>:</P><P></P><UL><LI><P>When create and delete functions <TTCLASS="FUNCTION">cre_tsk()</TT> and <TTCLASS="FUNCTION">del_tsk()</TT> are supported, all calls which use a valid task ID number checkthat the task exists; if not, E_NOEXS is returned</P></LI><LI><P><TTCLASS="FUNCTION">sus_tsk()</TT>: the task must not be dormant, else E_OBJ</P></LI><LI><P><TTCLASS="FUNCTION">frsm/rsm_tsk()</TT>: the task must be suspended, else E_OBJ</P></LI><LI><P><TTCLASS="FUNCTION">tslp/slp_tsk()</TT>: return codes E_TMOUT, E_RLWAI and E_DLTare returned depending on the reason for terminating the sleep</P></LI><LI><P><TTCLASS="FUNCTION">wup_tsk()</TT> and <TTCLASS="FUNCTION">can_wup()</TT>: the task must not be dormant, or E_OBJ is returned</P></LI></UL></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="compat-uitron-task-management-functions.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ecos-ref.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="compat-uitron-sync-and-comm-functions.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Task Management Functions</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="compat-uitron-microitron-api.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Synchronization and Communication Functions</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -