Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Mar 2011 22:24:09 -0800
From:      Artem Belevich <fbsdlist@src.cx>
To:        Alexander Leidinger <Alexander@leidinger.net>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Andriy Gapon <avg@freebsd.org>
Subject:   Re: svn commit: r219559 - in head/sys: amd64/linux32 compat/freebsd32 i386/linux kern
Message-ID:  <AANLkTimOAKLJm10dZAu2SYPeUk3agL_hsv-t7D1UHOj5@mail.gmail.com>
In-Reply-To: <20110312205719.00004e67@unknown>
References:  <201103120851.p2C8phoN010341@svn.freebsd.org> <20110312205719.00004e67@unknown>

next in thread | previous in thread | raw e-mail | index | archive | help
> I assume this also includes syscall provider support for linux syscalls
> on i386. Some questions below.

Yes.

>
>> Modified: head/sys/i386/linux/syscalls.master
>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 l_hand=
ler_t handler); }
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 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 @@
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 stru=
ct timeval *tp, \
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 stru=
ct timezone *tzp); }
>> =A079 =A0 AUE_SETTIMEOFDAY =A0 =A0 =A0 =A0NOPROTO { int
>> settimeofday( \
>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct=
 timeval *tp, \
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimOAKLJm10dZAu2SYPeUk3agL_hsv-t7D1UHOj5>