Witam. Na wstępie sorki jesli umieściłem temat w złym miejscu. Mam problem z napisaniem nowego wywołania systemowego w minixie. Otóż wszystko jest ok dopóki nie przesyłam żadnych argumentów ani nie zwracam wartości. np :
void do_printmes()
{
printf("Hello!");
return;
}
Wtedy też po skompilowaiu jądra na nowo i wywołaniu systemu :
...
message m ;
_syscall(MM, 32 , &m);
Wszystko jest ok - komunikat wyświetla się. Nie wiem jednak jak poradzić sobie z przekazaniem argumentu do funkcji jak również zwróceniem go. Tzn np chodzi mi o funkcji typu : int foo( int arg ). Czytałem, że do przekazania używa się pola m1_i1 struktury message jednak przy funkcji :
int do_foo(int arg)
{
return arg ;
}
i jej wywołaniu poprzez :
...
message m ;
m.m1_i1 = 4;
_syscall(MM, 32 , &m);
zamiast 4 lub jakiejkolwiek innej liczby zawsze wypisywanie jest 0. Czy mógłby mi ktoś podpowiedź jak to ma wyglądać dokładnie ?