В test.c (уровень пользователя)
tid = thread_create(thread, (void *)0x12345678, stack);
Я хочу получить аргументы вышеупомянутой функции thread_create. Итак, я написал код в sysproc.c (уровень ядра)
if(argptr(0, (void*)&function, sizeof(*function)) ||
argptr(1, (void*)&arg, sizeof(*arg)) ||
argptr(2, (void*)&stack, sizeof(*stack)))
return -1;
но только вторая строка вызвала ошибку. Как я могу изменить код этой части ??
argptr (1, (void *) & arg, sizeof (* arg))
Я работаю над ОС xv6, и первоначально определенная функция -
int thread_create(void *(*function)(void*), void *arg, void *stack);
и test.c не могут быть изменены.