svn commit: r219559 - in head/sys: amd64/linux32 compat/freebsd32 i386/linux kern

Artem Belevich fbsdlist at src.cx
Sun Mar 13 06:47:12 UTC 2011


> I assume this also includes syscall provider support for linux syscalls
> on i386. Some questions below.

Yes.

>
>> Modified: head/sys/i386/linux/syscalls.master
>> -                                 l_handler_t handler); }
>> +                                 void *handler); }
>
> What's wrong with l_handler_t?

I don't recall the details, but I believe that the way l_handler_t is
defined resulted in compilation errors in generated glue code. Glue
generation code relies on '*' before the argument name in order to
tell scalars from pointers. l_handler_t was interpreted as a scalar
and on i386 where l_handler_t is a pointer, it produced compilation
warning.

>
>> @@ -148,7 +148,7 @@
>>                                   struct timeval *tp, \
>>                                   struct timezone *tzp); }
>>  79   AUE_SETTIMEOFDAY        NOPROTO { int
>> settimeofday( \
>> -                                 struct timeval *tp, \
>> +                                 struct timeval *tv, \
>
> What's wrong with tp?

settimeofday_args has the field named tv. With the argument named tp
in the syscalls.master, the glue code generated for systrace provider
would attempt to use settimeofday_args->tp and that does not compile.

We rely on syscall argument names in syscall.master to match field
names in appropriate <syscall_name>_args.

--Artem


More information about the svn-src-head mailing list