tcb = _KERNEL_TSK_TSKHDL2TCB(tskhdl);
_KERNEL_MTX_SET_TSKHDL(mtxcb, tskhdl);
-
+
mtxhdl_head = _KERNEL_TSK_GET_MTXHDL(tcb);
if ( mtxhdl_head == _KERNEL_MTXHDL_NULL )
{
/* %jp{最初の1つを接続} */
_KERNEL_TSK_SET_MTXHDL(tcb, mtxhdl);
_KERNEL_MTX_SET_NEXT(mtxcb, mtxhdl);
- _KERNEL_MTX_SET_NEXT(mtxcb, mtxhdl);
+ _KERNEL_MTX_SET_PREV(mtxcb, mtxhdl);
}
else
{
_KERNEL_T_MTXHDL mtxhdl_prev;
_KERNEL_T_MTXCB_PTR mtxcb_next;
_KERNEL_T_MTXCB_PTR mtxcb_prev;
-
+
/* %jp{接続の先頭/末尾を取得} */
mtxhdl_next = mtxhdl_head;
mtxcb_next = _KERNEL_MTX_MTXHDL2MTXCB(mtxhdl_next);
mtxhdl_prev = _KERNEL_MTX_GET_PREV(mtxcb_next);
mtxcb_prev = _KERNEL_MTX_MTXHDL2MTXCB(mtxhdl_prev);
-
+
/* %jp{末尾に接続} */
_KERNEL_MTX_SET_PREV(mtxcb_next, mtxhdl);
_KERNEL_MTX_SET_NEXT(mtxcb_prev, mtxhdl);