os161 中不兼容的指针类型警告

Incompatible pointer type warning in os161

我正在 os161 内核中实现一个 fork 系统调用。我正在尝试创建一个新进程,并且我使用了 thread_fork 来创建它的线程。我正在使用函数 md_forkentry 将堆和堆栈分配给新线程的 trapframe 并切换到用户模式;但我在编译代码后收到此警告: passing arg 4 of 'thread_fork' from incompatible pointer type

//Function Prototypes
int thread_fork(const char* name,void* data1,unsgined long data2,void (*func) (void*,unsigned long),struct thread **ret)
void md_forkentry(struct trapframe* tf,unsigned long n);

//the code 
struct trapframe* tf;
struct thread* child_thread;
//line I get the error from
int result=thread_fork("Child Process",(void*) tf,0,&md_forkentry,&child_thread);

md_forkentry() 的原型与 thread_fork() 的第 4 个参数的类型不匹配。

md_forkentry() 必须原型化为:

void md_forkentry(void *, unsigned long);

(反之亦然,即如有必要,修正 thread_fork() 原型中给出的参数类型)