Index: sys/sys/event.h =================================================================== RCS file: /cvsroot/src/sys/sys/event.h,v retrieving revision 1.37 diff -u -r1.37 event.h --- sys/sys/event.h 10 Aug 2019 23:47:13 -0000 1.37 +++ sys/sys/event.h 11 Aug 2019 16:38:43 -0000 @@ -55,44 +55,6 @@ intptr_t udata; /* opaque user data identifier */ }; -#ifdef __cplusplus -#define EV_SET(kevp, ident, filter, flags, fflags, data, udata) \ - _EV_SET((kevp), __CAST(uintptr_t, (ident)), (filter), (flags), \ - (fflags), (data), (udata)) - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion-null" - -static __inline void -_EV_SET(struct kevent *_kevp, uintptr_t _ident, uint32_t _filter, - uint32_t _flags, uint32_t _fflags, int64_t _data, void *_udata) -{ - _kevp->ident = _ident; - _kevp->filter = _filter; - _kevp->flags = _flags; - _kevp->fflags = _fflags; - _kevp->data = _data; - _kevp->udata = reinterpret_cast(_udata); -} - -#define _EV_SET_INTEGER_TYPE(_UTYPE) \ -static __inline void \ -_EV_SET(struct kevent *_kevp, uintptr_t _ident, uint32_t _filter, \ - uint32_t _flags, uint32_t _fflags, int64_t _data, _UTYPE _udata) \ -{ \ - _EV_SET(_kevp, _ident, _filter, _flags, _fflags, _data, \ - reinterpret_cast(static_cast(_udata))); \ -} - -_EV_SET_INTEGER_TYPE(int) -_EV_SET_INTEGER_TYPE(long int) -_EV_SET_INTEGER_TYPE(long long int) -_EV_SET_INTEGER_TYPE(unsigned int) -_EV_SET_INTEGER_TYPE(unsigned long int) -_EV_SET_INTEGER_TYPE(unsigned long long int) - -#pragma GCC diagnostic pop -#else static __inline void _EV_SET(struct kevent *_kevp, uintptr_t _ident, uint32_t _filter, uint32_t _flags, uint32_t _fflags, int64_t _data, intptr_t _udata) @@ -105,10 +67,13 @@ _kevp->udata = _udata; } +/* + * Force C style cast for the udata argument as it will translate in C++ + * to static_cast<> or reinterpret_cast<> depending on the context. + */ #define EV_SET(kevp, ident, filter, flags, fflags, data, udata) \ _EV_SET((kevp), __CAST(uintptr_t, (ident)), (filter), (flags), \ - (fflags), (data), __CAST(intptr_t, (udata))) -#endif + (fflags), (data), (intptr_t)(udata)) /* actions */ #define EV_ADD 0x0001U /* add event to kq (implies ENABLE) */