tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kqueue: intptr vs void *



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.

OpenBSD:
https://man.openbsd.org/kevent

FreeBSD:
https://www.freebsd.org/cgi/man.cgi?kqueue

Mac OS too, but I can't find a public link to a man page for that.

 Thomas


Home | Main Index | Thread Index | Old Index