svn commit: r209578 - head/sys/sys

Kostik Belousov kostikbel at gmail.com
Tue Jun 29 08:48:30 UTC 2010


On Mon, Jun 28, 2010 at 02:07:02PM -0700, Matthew Fleming wrote:
> On Mon, Jun 28, 2010 at 10:59 AM, Konstantin Belousov <kib at freebsd.org> wrote:
> > Author: kib
> > Date: Mon Jun 28 17:59:45 2010
> > New Revision: 209578
> > URL: http://svn.freebsd.org/changeset/base/209578
> >
> > Log:
> >  Use C99 initializers for the struct sysent generated by MAKE_SYSENT().
> >
> >  MFC after:    1 week
> >
> > Modified:
> >  head/sys/sys/sysent.h
> >
> > Modified: head/sys/sys/sysent.h
> > ==============================================================================
> > --- head/sys/sys/sysent.h       Mon Jun 28 17:45:00 2010        (r209577)
> > +++ head/sys/sys/sysent.h       Mon Jun 28 17:59:45 2010        (r209578)
> > @@ -144,10 +144,10 @@ struct syscall_module_data {
> >
> >  #define        MAKE_SYSENT(syscallname)                                \
> >  static struct sysent syscallname##_sysent = {                  \
> > -       (sizeof(struct syscallname ## _args )                   \
> > +       .sy_narg = (sizeof(struct syscallname ## _args )        \
> >            / sizeof(register_t)),                              \
> > -       (sy_call_t *)& syscallname,                             \
> > -       SYS_AUE_##syscallname                                   \
> > +       .sy_call = (sy_call_t *)& syscallname,                  \
> > +       .sy_auevent = SYS_AUE_##syscallname,                    \
> >  }
> >
> >  #define SYSCALL_MODULE(name, offset, new_sysent, evh, arg)     \
> >
> 
> This change prevents (I assume) the use of MAKE_SYSENT() in a C++
> kernel module, as C++ does not support the .name = value style of
> named initializers.
> 
> gcc does allow name: value initializers and it's easy to patch it to
> accept .name = value, but it's not strictly conforming C++ code
> anymore.
I do not mind reverting this, I think it would be better then
having #ifdef __cplusplus and two definitions. I really wanted to
have a way to provide sparce initializator for the struct sysent.
I managed to not require it for r209579.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-head/attachments/20100629/34192d4c/attachment.pgp


More information about the svn-src-head mailing list