mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	Define EV_SET() for kqueue() on systems that don't have it
Some systems, notably FreeBSD 4.x, do have the kqueue() function but lack the definition of EV_SET() in their header files -- but don't worry, we can #define it on our own ;-) Definition taken from /usr/include/sys/event.h of FreeBSD 8.1. Patch tested on FreeBSD 4.1 by Götz Hoffart. Thanks!
This commit is contained in:
		| @@ -86,6 +86,20 @@ static int io_masterfd; | |||||||
|  |  | ||||||
| static int io_dispatch_kqueue(struct timeval *tv); | static int io_dispatch_kqueue(struct timeval *tv); | ||||||
| static bool io_event_change_kqueue(int, short, const int action); | static bool io_event_change_kqueue(int, short, const int action); | ||||||
|  |  | ||||||
|  | #ifndef EV_SET | ||||||
|  | /* Taken from /usr/include/sys/event.h of FreeBSD 8.1 and required by all | ||||||
|  |  * platforms that have kqueue but lack EV_SET() -- for example FreeBSD 4. */ | ||||||
|  | #define EV_SET(kevp, a, b, c, d, e, f) do {	\ | ||||||
|  | 	struct kevent *__kevp__ = (kevp);	\ | ||||||
|  | 	__kevp__->ident = (a);			\ | ||||||
|  | 	__kevp__->filter = (b);			\ | ||||||
|  | 	__kevp__->flags = (c);			\ | ||||||
|  | 	__kevp__->fflags = (d);			\ | ||||||
|  | 	__kevp__->data = (e);			\ | ||||||
|  | 	__kevp__->udata = (f);			\ | ||||||
|  | } while(0) | ||||||
|  | #endif | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef IO_USE_POLL | #ifdef IO_USE_POLL | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Alexander Barton
					Alexander Barton