Linux内核代码
current是通过thread_info来找到task_struct地址的。而寻找thread_info是通过current_thread_info函数来的。其实就是要读取内核态的栈顶指针即可。
\linux-2.6.34.13\arch\x86\include\asm\Thread_info.h中215行
代码:
static inline struct thread_info *current_thread_info(void)
{
struct thread_info *ti;
ti = (void *)(percpu_read_stable(kernel_stack) +
KERNEL_STACK_OFFSET - THREAD_SIZE);
return ti;
}
这里为啥有个kernel_stack,没有定义,没有声明。。。。