免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8031 | 回复: 8
打印 上一主题 下一主题

task_struct 里找不到thread_info!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-14 17:07 |只看该作者 |倒序浏览
我的task_struct结构里居然找不到thread_info,我晕,这是怎么回事嘛???内核版本:2.6.23.1-42.fc8。。。。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2008-09-14 18:37 |只看该作者
没仔细看,难道又有变化?

论坛徽章:
0
3 [报告]
发表于 2008-09-15 09:36 |只看该作者
原帖由 dreamice 于 2008-9-14 18:37 发表
没仔细看,难道又有变化?



真的没有……:em12:

论坛徽章:
0
4 [报告]
发表于 2008-09-15 20:48 |只看该作者
原来就是task_struct结构体里的void * stack ,在#include<linux/sched.h>里边有这个:
#define task_thread_info(task)  ((struct thread_info *)(task)->stack)

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
5 [报告]
发表于 2008-09-15 22:32 |只看该作者
原帖由 It'sGifted 于 2008-9-15 20:48 发表
原来就是task_struct结构体里的void * stack ,在#include里边有这个:
#define task_thread_info(task)  ((struct thread_info *)(task)->stack)


现在内核版本变化太大,以前的书有点跟不上了。

论坛徽章:
0
6 [报告]
发表于 2008-12-10 15:50 |只看该作者
不可能,我的怎么有,我的内核也是2.6的

论坛徽章:
0
7 [报告]
发表于 2008-12-25 23:35 |只看该作者
task_struct里没有thread_info,2.6版本的内核栈底放的是thread_info结构,通过thread_info里的task指针可以找到task_struct

评分

参与人数 1可用积分 +30 收起 理由
T-Bagwell + 30 精品文章

查看全部评分

论坛徽章:
0
8 [报告]
发表于 2008-12-26 00:21 |只看该作者
原帖由 moonkiller1026 于 2008-12-25 23:35 发表
task_struct里没有thread_info,2.6版本的内核栈底放的是thread_info结构,通过thread_info里的task指针可以找到task_struct


谢谢楼上,学习了

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
9 [报告]
发表于 2009-12-21 00:03 |只看该作者
刚才无聊的时候看了一下,确实没有thread_info了,一下子想起这个帖子了,回来看了一下,原来是这样的
呵呵
好像前段时间还有thread_info呢


  1.    struct thread_info *thread = current_thread_info();
  2.     struct task_struct *tsk = thread->task;

  3. /* how to get the current stack pointer from C */
  4. register unsigned long current_stack_pointer asm("esp") __used;

  5. /* how to get the thread information struct from C */
  6. static inline struct thread_info *current_thread_info(void)
  7. {
  8.     return (struct thread_info *)
  9.         (current_stack_pointer & ~(THREAD_SIZE - 1));
  10. }


  11. /* how to get the current stack pointer from C */
  12. static inline unsigned long current_stack_pointer(void)
  13. {
  14.     unsigned long sp;
  15.     asm("mov sp,%0; ":"=r" (sp));
  16.     return sp;
  17. }

复制代码

[ 本帖最后由 T-Bagwell 于 2009-12-21 00:17 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP