我正在做一个修改部分Android OS的项目,当我尝试实现一个新的系统调用来返回所有进程的状态时,我遇到了以下错误:
kernel/sys.c: error: array tpye has incomplete element type.
我在 sys.c 中所做的如下:
/***previous code in sys.c***/
SYSCALL_DEFINE2(new_syscall, struct info __user*, buf, int __user*, nr){
if(!buf || !nr) return -EINVAL;
int nr_copy;
int success;
success = copy_from_user(&nr_copy, nr, sizeof(int));
if(success == 0) return -EINVAL;
if(nr_copy < 1) return -EINVAL;
struct info buf_copy[nr_copy]; /*************
return 0;
}
编译器抱怨标有星号的行。
我的 info.h 文件如下所示:
#ifndef __LINUX_INFO_H
#define __LINUX_INFO_H
struct info {
long state;
pid_t pid;
pid_t parent_pid;
};
#endif
我尝试在 sys.c 中包含 info.h,但它根本没有帮助。谁能给我一些关于我应该研究的方向?
谢谢