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));
構造体へのポインタを返すのですか?