Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Jun 2010 14:07:02 -0700
From:      Matthew Fleming <mdf356@gmail.com>
To:        Konstantin Belousov <kib@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r209578 - head/sys/sys
Message-ID:  <AANLkTilWzaFxFN1gNPVmj_Fwm6j_nmM06eXtEDVHZgjS@mail.gmail.com>
In-Reply-To: <201006281759.o5SHxkoR076207@svn.freebsd.org>
References:  <201006281759.o5SHxkoR076207@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 28, 2010 at 10:59 AM, Konstantin Belousov <kib@freebsd.org> wro=
te:
> Author: kib
> Date: Mon Jun 28 17:59:45 2010
> New Revision: 209578
> URL: http://svn.freebsd.org/changeset/base/209578
>
> Log:
> =A0Use C99 initializers for the struct sysent generated by MAKE_SYSENT().
>
> =A0MFC after: =A0 =A01 week
>
> Modified:
> =A0head/sys/sys/sysent.h
>
> Modified: head/sys/sys/sysent.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/sys/sysent.h =A0 =A0 =A0 Mon Jun 28 17:45:00 2010 =A0 =A0 =
=A0 =A0(r209577)
> +++ head/sys/sys/sysent.h =A0 =A0 =A0 Mon Jun 28 17:59:45 2010 =A0 =A0 =
=A0 =A0(r209578)
> @@ -144,10 +144,10 @@ struct syscall_module_data {
>
> =A0#define =A0 =A0 =A0 =A0MAKE_SYSENT(syscallname) =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0\
> =A0static struct sysent syscallname##_sysent =3D { =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0\
> - =A0 =A0 =A0 (sizeof(struct syscallname ## _args ) =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 \
> + =A0 =A0 =A0 .sy_narg =3D (sizeof(struct syscallname ## _args ) =A0 =A0 =
=A0 =A0\
> =A0 =A0 =A0 =A0 =A0 =A0/ sizeof(register_t)), =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0\
> - =A0 =A0 =A0 (sy_call_t *)& syscallname, =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 \
> - =A0 =A0 =A0 SYS_AUE_##syscallname =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \
> + =A0 =A0 =A0 .sy_call =3D (sy_call_t *)& syscallname, =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0\
> + =A0 =A0 =A0 .sy_auevent =3D SYS_AUE_##syscallname, =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0\
> =A0}
>
> =A0#define SYSCALL_MODULE(name, offset, new_sysent, evh, arg) =A0 =A0 \
>

This change prevents (I assume) the use of MAKE_SYSENT() in a C++
kernel module, as C++ does not support the .name =3D value style of
named initializers.

gcc does allow name: value initializers and it's easy to patch it to
accept .name =3D value, but it's not strictly conforming C++ code
anymore.

Thanks,
matthew



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