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>