rock_man 发表于 2011-11-14 17:33:58

请教:关于RT-Thread线程调度的一处代码

关于RT-Thread的线程调度,有一处代码没搞懂
to_thread = rt_list_entry(rt_thread_priority_table.next,
                              struct rt_thread, tlist);

#define rt_list_entry(node, type, member) \
    ((type *)((char *)(node) - (unsigned long)(&((type *)0)->member)))


我觉得这个宏可以产生正确结果的前提应该是rt_thread_priority_table[]里的元素和rt_thread结构里的链表关联起来(即存储地址关联起来),这些我都写代码试验过。但没有发现有哪处代码作了关联。

请版主或其他高手释疑一下,谢谢。

ljqlaq 发表于 2011-11-20 09:24:50

帮顶
页: [1]
查看完整版本: 请教:关于RT-Thread线程调度的一处代码