深入了解Xenomai实时系统
1. 代码片段分析
首先来看一段代码:
task = vrtx_current_task();
/*
* Set up a few status bits the VRTX way, so that inquiries
* about the task state will return proper information.
*/
task->vrtxtcb.TCBSTAT = TBSMBOX;
if (timeout)
task->vrtxtcb.TCBSTAT |= TBSDELAY;
/* We have to wait for a message now. */
xnsynch_sleep_on(&mb->synchbase, timeout, XN_RELATIVE);
/* Are we waking up due to a Linux signal, or some unblocking call? */
if (xnthread_test_info(&task->threadbase, XNBREAK)) {
*errp = -EINTR;
goto unlock_and_exit;
}
/* Did we reach the timeout limit? */
if (xnthread_test_info(&task->threadbase, XNTIMEO)) {
*errp = ER_TMO;
goto unlock_and_exit;
}
done:
/*
* Ok, we got a me
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



