我在 os161 内核中实现了一个 fork 系统调用。我正在尝试创建一个新进程并为其创建我使用的线程thread_fork
。我正在使用该函数md_forkentry
将堆和堆栈分配给新线程的陷阱帧并切换到用户模式;但是在编译代码后我收到了这个警告:
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);