The fix is to annotate syscall description
with correct number of parameters.
--- kfreebsd/syscalls.list
+++ kfreebsd/syscalls.list
-sys_ktimer_settime - ktimer_settime i:ip
__syscall_ktimer_settime
+sys_ktimer_settime - ktimer_settime i:iipp
__syscall_ktimer_settime
It is problem only on kfreebsd-amd64.
In functions with 4 and more parameters is necessary to
do "movq %rcx, %r10" before "syscall".
Test program:
**************************************************************
#include <signal.h>
#include <time.h>
struct itimerspec nv, ov;
int main()
{
timer_t tm;
nv.it_value.tv_sec = 100;
timer_create(CLOCK_MONOTONIC, NULL, &tm);
printf("should be zero: %ld\n", ov.it_value.tv_sec);
timer_settime(tm, 0, &nv, &ov);
printf("should be zero: %ld\n", ov.it_value.tv_sec);
timer_settime(tm, 0, &nv, &ov);
printf("should be 99 or 100: %ld\n", ov.it_value.tv_sec);
sleep (5);
timer_settime(tm, 0, &nv, &ov);
printf("should be 94 or 95: %ld\n", ov.it_value.tv_sec);
}
**************************************************************
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive:
http://lists.debian.org/[email protected]