C 从内核空间访问进程堆栈指针

C 从内核空间访问进程堆栈指针,c,linux-kernel,C,Linux Kernel,我能够从当前宏中获取task_struct,我想知道是否有办法从自定义sys_调用中获取进程堆栈指针以返回到用户空间(作为只读值)??在汇编中很容易获取它的值,所以请尝试使用以下方法: #包括 uint64\u t getsp(无效) { uint64_t sp; asm(“mov%%rsp,%0”:“=rm”(sp)); 返回sp; } 您必须告诉您的自定义系统调用是做什么的?您可以参考ptregs结构,它保存在系统调用入口期间保存的用户空间上下文

我能够从当前宏中获取task_struct,我想知道是否有办法从自定义sys_调用中获取进程堆栈指针以返回到用户空间(作为只读值)??

在汇编中很容易获取它的值,所以请尝试使用以下方法:

#包括
uint64\u t getsp(无效)
{
uint64_t sp;
asm(“mov%%rsp,%0”:“=rm”(sp));
返回sp;
}

您必须告诉您的自定义系统调用是做什么的?您可以参考ptregs结构,它保存在系统调用入口期间保存的用户空间上下文