有人可以解释一下这段取自linux内核的代码片段吗?
/*
* how to get the thread information struct from C
*/
static inline struct thread_info *current_thread_info(void) __attribute_const__;
static inline struct thread_info *current_thread_info(void)
{
register unsigned long sp asm ("sp");
return (struct thread_info *)(sp & ~(THREAD_SIZE - 1));
}
问题:
- 什么是
__attribute_const__
? - 这是做什么的
register unsigned long sp asm ("sp");
- 为什么要
(struct thread_info *)(sp & ~(THREAD_SIZE - 1));
返回指向结构的指针?