我的内核模块使用ioctl
作为函数指针和堆栈大小作为输入,并应创建一个子进程,该子进程使用该大小的新分配的堆栈执行该功能。行为类似于clone()
该函数在用户空间中定义,因此必须在用户空间中再次执行,并且必须共享相同的父进程地址空间。
我知道在内核模块内部创建新进程的正确方法是使用kthread_create
,但我需要在用户模式下执行该功能。
我看不到user mode helper API如何派上用场。
是否可以初始化一个struct kernel_struct
来指定该函数和堆栈大小以及复制父进程的地址空间?