Index: sys/sys/event.h =================================================================== --- sys/sys/event.h +++ sys/sys/event.h @@ -49,8 +49,27 @@ #define EVFILT_EMPTY (-13) /* empty send socket buf */ #define EVFILT_SYSCOUNT 13 +#if __STDC_VERSION__ >= 199901L #define EV_SET(kevp_, a, b, c, d, e, f) do { \ - struct kevent *kevp = (kevp_); \ + *(kevp_) = (struct kevent){ \ + .ident = (a), \ + .filter = (b), \ + .flags = (c), \ + .fflags = (d), \ + .data = (e), \ + .udata = (f), \ + .ext[0] = 0, \ + .ext[1] = 0, \ + .ext[2] = 0, \ + .ext[3] = 0, \ + }; \ +} while(0) +#else /* Pre-C99 */ +/* The definition of the local variable kevp could possibly conflict + * with a user-defined value passed in parameters a-f. + */ +#define EV_SET(kevp_, a, b, c, d, e, f) do { \ + struct = kevent kevp *(kevp) = (kevp_); \ (kevp)->ident = (a); \ (kevp)->filter = (b); \ (kevp)->flags = (c); \ @@ -62,6 +81,7 @@ (kevp)->ext[2] = 0; \ (kevp)->ext[3] = 0; \ } while(0) +#endif struct kevent { __uintptr_t ident; /* identifier for this event */