tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kqueue: intptr vs void *
On Fri, Aug 17, 2018 at 03:26:23PM +0200, Kamil Rytarowski wrote:
> On 17.08.2018 15:16, Thomas Klausner wrote:
> > Hi!
> >
> > Does anyone know why NetBSD has udata defined as intptr_t in kqueue(3)?
> >
> > I.e.:
> >
> > EV_SET(&kev, ident, filter, flags, fflags, data, udata);
> >
> > where the values are defined as:
> >
> > struct kevent {
> > uintptr_t ident; /* identifier for this event */
> > uint32_t filter; /* filter for event */
> > uint32_t flags; /* action flags for kqueue */
> > uint32_t fflags; /* filter flag value */
> > int64_t data; /* filter data value */
> > intptr_t udata; /* opaque user data identifier */
> > };
> >
> > while other operating systems have udata as "void *" instead?
> > This currently causes a bug report in wxWidgets.
> >
>
> (Recent?) C++ is more sensitive to casts. In C everything works under
> the neath.
>
> There might be an option to make it more compatible for C++ this way:
...
I was wondering if the difference is even necessary or if we should
match other operating systems in this aspect.
(fixing wxWidgets is ongoing, that's not the issue here)
Thomas
Home |
Main Index |
Thread Index |
Old Index