嗨,嗯,不行。 当你从用户空间进行系统调用时,系统调用参数位于段寄存器 fs 中(假设是 x86 架构)。 函数 memcpy_fromfs 和 memcpy_tofs 在内核中被调用,以检索内核函数的参数。 但是模块代码本身就是内核代码,因此无法这样做。(段错误....)(尝试重写系统调用,但引用内核内存作为参数。) 如果你想从你的模块代码中调用内核内部函数(这些函数通常不导出),你应该将它注册到文件 linux/kernel/ksyms.c 中。 这将导出该函数的名称,并且 insmod 将安装你的模块。 如果有什么拼写错误或错误,请原谅。
|