当前位置: 技术问答>linux和unix
2.6.30内核下init_tss和tss_struct的问题
来源: 互联网 发布时间:2016-07-15
本文导语: 看过很多书上讲init_tss里面放了当前进程的tss。可include 之后为何编译时还说init_tss undeclared? 另外,tss->esp0也报错,说struct tss_struct里没有esp0的域,后来改成tss->x86_tss.sp0后编译通过,这是什么情况? 内核版本2.6.30 ...
看过很多书上讲init_tss里面放了当前进程的tss。可include 之后为何编译时还说init_tss undeclared?
另外,tss->esp0也报错,说struct tss_struct里没有esp0的域,后来改成tss->x86_tss.sp0后编译通过,这是什么情况?
内核版本2.6.30
谢谢!
另外,tss->esp0也报错,说struct tss_struct里没有esp0的域,后来改成tss->x86_tss.sp0后编译通过,这是什么情况?
内核版本2.6.30
谢谢!
|
一个cpu对应一个tss,有几个 cpu,init_tss里面就有几个tss
|
http://lkml.indiana.edu/hypermail/linux/kernel/0712.2/0771.html
Although slighly different, the tss_struct is very similar in x86_64 and
i386. The really different part, which matchs the hardware vision of it, is
now called x86_hw_tss, and each of the architectures provides yours.
It's then used as a field in the outter tss_struct.
所以把tss里x86_64和i386两种架构硬件相关的tss部分封装成了x86_hw_tss,就是tss->x86_tss.
另外,在2.6.25的时候,内核做了一次比较大的merge,同时把esp0改名为sp0了。
参考:http://kerneltrap.org/Linux/x86_Architecture_Merges_in_2.6.25
应该在use generic register name *****这堆改动里面。
Although slighly different, the tss_struct is very similar in x86_64 and
i386. The really different part, which matchs the hardware vision of it, is
now called x86_hw_tss, and each of the architectures provides yours.
It's then used as a field in the outter tss_struct.
所以把tss里x86_64和i386两种架构硬件相关的tss部分封装成了x86_hw_tss,就是tss->x86_tss.
另外,在2.6.25的时候,内核做了一次比较大的merge,同时把esp0改名为sp0了。
参考:http://kerneltrap.org/Linux/x86_Architecture_Merges_in_2.6.25
应该在use generic register name *****这堆改动里面。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。