Это мой первый вопрос, так что конструктивная критика приветствуется:)
Я пытаюсь добавить системный вызов в xv6.Я делал это раньше, но я никогда не сталкивался с этой конкретной ошибкой.Я получаю сообщение об ошибке:
kernel/syscall.c:106:16: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
[SYS_getpinfo] sys_getpinfo,
Я немного погуглил, и похоже, что проблема заключается либо в том, что я не определил свой системный вызов где-то, что мне нужно (обычно sysfunc.h),или я использовал другой тип возврата в одном из определений.Дело в том, что я проверил и перепроверил типы возвращаемых данных и добавил системный вызов буквально везде, где только могу придумать, и все еще получаю эту ошибку.
Мне интересно, есть ли способ просто привести тип указателя?В любом случае, если у вас есть идея, почему это все еще происходит, или как это исправить, я буду очень признателен.
Здесь я везде определил свой системный вызов:
sysproc.c:
int sys_getpinfo(struct pstat* p){
//implementation
}
sysfunc.h:
int sys_getpinfo(struct pstat*);
user.h:
int getpinfo(struct pstat*);
usys.S:
SYSCALL(getpinfo)
syscall.c:
[SYS_getpinfo] sys_getpinfo,
syscall.h:
#define SYS_getpinfo 22
Спасибо за чтение!