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()
原型中给出的参数类型)
我正在 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()
原型中给出的参数类型)