rlq_defs.h
来自「澳洲人写的Cortex,包括uC_IP协议栈」· C头文件 代码 · 共 265 行 · 第 1/2 页
H
265 行
# define</font></b> <font color="maroon"><a name="RQUE_SET_QUEUE_ID">RQUE_SET_QUEUE_ID</a></font>(_queue)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_SET_NODE_ID">RQUE_SET_NODE_ID</a></font>(_node)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_SET_CURSOR_ID">RQUE_SET_CURSOR_ID</a></font>(_cursor)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_QUEUE_ID">RQUE_CHECK_QUEUE_ID</a></font>(_queue) (CRTX_TRUE)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_NODE_ID">RQUE_CHECK_NODE_ID</a></font>(_node) (CRTX_TRUE)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_CURSOR_ID">RQUE_CHECK_CURSOR_ID</a></font>(_cursor) (CRTX_TRUE)<b><font color='DarkGreen'>#else</font></b><font color="maroon"></font><b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_SET_QUEUE_ID">RQUE_SET_QUEUE_ID</a></font>(_queue) ((_queue)->CheckID=RQUE_QUEUE_ID)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_SET_NODE_ID">RQUE_SET_NODE_ID</a></font>(_node) ((_node)->CheckID=RQUE_NODE_ID)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_SET_CURSOR_ID">RQUE_SET_CURSOR_ID</a></font>(_cursor) ((_cursor)->CheckID=RQUE_CURSOR_ID)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_QUEUE_ID">RQUE_CHECK_QUEUE_ID</a></font>(_queue) ((_queue)->CheckID==RQUE_QUEUE_ID)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_NODE_ID">RQUE_CHECK_NODE_ID</a></font>(_node) ((_node)->CheckID==RQUE_NODE_ID)<b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_CHECK_CURSOR_ID">RQUE_CHECK_CURSOR_ID</a></font>(_cursor) ((_cursor)->CheckID==RQUE_CURSOR_ID)<b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL == 0 */</font></font><b><font color='DarkGreen'>#if</font></b><font color="maroon"> ENVI_CRTX_ERR_CHECK_LEVEL > 1</font><b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_VALIDATE">RQUE_VALIDATE</a></font>(pQueue_a) rque_Validate(pQueue_a)<b><font color='DarkGreen'>#else</font></b><font color="maroon"></font><b><font color='DarkGreen'># define</font></b> <font color="maroon"><a name="RQUE_VALIDATE">RQUE_VALIDATE</a></font>(pQueue_a) (CRTX_TRUE)<b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL > 1 */</font></font><font color="#6920ac">/*********************** * GLOBAL DATA TYPES * ***********************/</font><i><a name="rque_Argument_t">typedef</a></i> <i>crtx_Void_t</i> *<i><font color='DarkBlue'>rque_Argument_t</font></i>;<font color="#6920ac">/* * RLQ Attributes Structure. The following structure allowes to * specify RLQ attributes when queue is created. */</font><i><a name="rque_Attr_t">typedef</a></i> <i>struct</i> rque_Attr_s { <i>crtx_SegNum_t</i> Segment; <font color="#6920ac">/* memory segment */</font>} <i><font color='DarkBlue'>rque_Attr_t</font></i>;<font color="#6920ac">/* * Reference linked queue node */</font><i><a name="rque_Node_t">typedef</a></i> <i>struct</i> rque_Node_s { <i>rlst_Node_t</i> RllNode; <font color="#6920ac">/* RLL node */</font> <i>rque_Argument_t</i> Arg; <font color="#6920ac">/* node argument */</font> <i>struct</i> rque_Queue_s *pOnQueue; <font color="#6920ac">/* queue node is on */</font><b><font color='DarkGreen'>#if</font></b><font color="maroon"> ENVI_CRTX_ERR_CHECK_LEVEL > 0</font> <i>crtx_Uint32_t</i> CheckID; <font color="#6920ac">/* node id (for error checking) */</font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL > 0 */</font></font>} <i><font color='DarkBlue'>rque_Node_t</font></i>;<font color="#6920ac">/* * Reference linked queue control block */</font><i><a name="rque_Queue_t">typedef</a></i> <i>struct</i> rque_Queue_s { <i>rlst_List_t</i> RllList; <font color="#6920ac">/* RLL list control block */</font> <i>crtx_Int_t</i> Length; <font color="#6920ac">/* length of the queue */</font> <i>crtx_Int_t</i> Flags; <font color="#6920ac">/* RLL flags */</font> <i>rque_Attr_t</i> Attr; <font color="#6920ac">/* queue attributes */</font><b><font color='DarkGreen'>#if</font></b><font color="maroon"> ENVI_CRTX_ERR_CHECK_LEVEL > 0</font> <i>crtx_Uint32_t</i> CheckID; <font color="#6920ac">/* queue id (for error checking) */</font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL > 0 */</font></font>} <i><font color='DarkBlue'>rque_Queue_t</font></i>;<font color="#6920ac">/* * Reference linked queue cursor */</font><i><a name="rque_Cursor_t">typedef</a></i> <i>struct</i> rque_Cursor_s { <i>rque_Node_t</i> *pNode; <font color="#6920ac">/* node pointed by cursor */</font> <i>crtx_Boolean_t</i> Removed; <font color="#6920ac">/* node pointer by cursor is removed */</font><b><font color='DarkGreen'>#if</font></b><font color="maroon"> ENVI_CRTX_ERR_CHECK_LEVEL > 0</font> <i>crtx_Uint32_t</i> CheckID; <font color="#6920ac">/* cursor id (for error checking) */</font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL > 0 */</font></font>} <i><font color='DarkBlue'>rque_Cursor_t</font></i>;<font color="#6920ac">/***************** * GLOBAL DATA * *****************/</font><i>extern</i> <i>rque_Attr_t</i> rque_AttrDefault_g; <font color="#6920ac">/* default attribute */</font><font color="#6920ac">/*************************** * PROCEDURES PROTOTYPES * ***************************/</font><font color="#6920ac">/* create/initialise queue control block */</font><font size="+1"><i>rque_Queue_t</i> *<a href="rque_CreateQueue.FIND-FUNC">rque_CreateQueue</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Attr_t</i> *pAttr_a);</font><font color="#6920ac">/* destroy queue control block */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_DestroyQueue.FIND-FUNC">rque_DestroyQueue</a>(<i>rque_Queue_t</i> *pQueue_a);</font><font color="#6920ac">/* add node at the head */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_AddHead.FIND-FUNC">rque_AddHead</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Node_t</i> *pNode_a);</font><font color="#6920ac">/* add node at the tail */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_AddTail.FIND-FUNC">rque_AddTail</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Node_t</i> *pNode_a);</font><font color="#6920ac">/* put node on the queue after specified node */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_Insert.FIND-FUNC">rque_Insert</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Node_t</i> *pPred_a, <i>rque_Node_t</i> *pNew_a);</font><font color="#6920ac">/* put node on the queue according to key value */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_EnqueueByKey.FIND-FUNC">rque_EnqueueByKey</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Node_t</i> *pNode_a, <i>rlst_Key_t</i> Key_a);</font><font color="#6920ac">/* remove node from queue */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_Remove.FIND-FUNC">rque_Remove</a>(<i>rque_Node_t</i> *pNode_a);</font><font color="#6920ac">/* remove node form the head of queue */</font><font size="+1"><i>rque_Node_t</i> *<a href="rque_RemoveHead.FIND-FUNC">rque_RemoveHead</a>(<i>rque_Queue_t</i> *pQueue_a);</font><font color="#6920ac">/* remove node from the tail of queue */</font><font size="+1"><i>rque_Node_t</i> *<a href="rque_RemoveTail.FIND-FUNC">rque_RemoveTail</a>(<i>rque_Queue_t</i> *pQueue_a);</font><font color="#6920ac">/* associate cursor with queue */</font><font size="+1"><i>crtx_Void_t</i> <a href="rque_CursorInit.FIND-FUNC">rque_CursorInit</a>(<i>rque_Queue_t</i> *pQueue_a, <i>rque_Cursor_t</i> *pCursor_a);</font><font color="#6920ac">/* advance cursor */</font><font size="+1"><i>rque_Node_t</i> *<a href="rque_CursorNext.FIND-FUNC">rque_CursorNext</a>(<i>rque_Cursor_t</i> *pCursor_a);</font><font color="#6920ac">/* remove node pointer by cursor */</font><font size="+1"><i>rque_Node_t</i> *<a href="rque_CursorRemove.FIND-FUNC">rque_CursorRemove</a>(<i>rque_Cursor_t</i> *pCursor);</font><font color="#6920ac">/* simple procedure to validate integrity of queue */</font><font size="+1"><i>crtx_Boolean_t</i> <a href="rque_Validate.FIND-FUNC">rque_Validate</a>(<i>rque_Queue_t</i> *pQueue_a);</font><font color="#6920ac">/* ===== END OF THE DEFINITION FILE ===== */</font><b><font color='DarkGreen'>#ifdef</font></b><font color="maroon"> __cplusplus</font>}<b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* __cplusplus */</font></font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* __RLQ_DEFS__H */</font></font></pre></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?