ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev_linuxaio.c
(Generate patch)

Comparing libev/ev_linuxaio.c (file contents):
Revision 1.30 by root, Tue Jun 25 17:54:02 2019 UTC vs.
Revision 1.32 by root, Tue Jun 25 18:07:44 2019 UTC

124 * our syscalls return < 0, not == -1, on error. which is good 124 * our syscalls return < 0, not == -1, on error. which is good
125 * enough for linux aio. 125 * enough for linux aio.
126 * TODO: arm is also common nowadays, maybe even mips and x86 126 * TODO: arm is also common nowadays, maybe even mips and x86
127 * TODO: after implementing this, it suddenly looks like overkill, but its hard to remove... 127 * TODO: after implementing this, it suddenly looks like overkill, but its hard to remove...
128 */ 128 */
129#if __GNUC__ && __linux && ECB_AMD64 129#if __GNUC__ && __linux && ECB_AMD64 && !defined __OPTIMIZE_SIZE__
130 /* the costly errno access probably kills this for size optimisation */
130 131
131 #define ev_syscall(nr,narg,arg1,arg2,arg3,arg4,arg5) \ 132 #define ev_syscall(nr,narg,arg1,arg2,arg3,arg4,arg5) \
132 ({ \ 133 ({ \
133 long res; \ 134 long res; \
134 register unsigned long r5 __asm__ ("r8" ); \ 135 register unsigned long r5 __asm__ ("r8" ); \
424 /* ignored */; 425 /* ignored */;
425 else 426 else
426 ev_syserr ("(libev) linuxaio io_getevents"); 427 ev_syserr ("(libev) linuxaio io_getevents");
427 else if (res) 428 else if (res)
428 { 429 {
429 /* at least one event received, handle it and any remaining ones in the ring buffer */ 430 /* at least one event available, handle it and any remaining ones in the ring buffer */
430 linuxaio_parse_events (EV_A_ ioev, res); 431 linuxaio_parse_events (EV_A_ ioev, res);
431 linuxaio_get_events_from_ring (EV_A); 432 linuxaio_get_events_from_ring (EV_A);
432 } 433 }
433} 434}
434 435
435static int 436inline_size
437int
436linuxaio_io_setup (EV_P) 438linuxaio_io_setup (EV_P)
437{ 439{
438 linuxaio_ctx = 0; 440 linuxaio_ctx = 0;
439 return evsys_io_setup (linuxaio_nr_events (EV_A), &linuxaio_ctx); 441 return evsys_io_setup (linuxaio_nr_events (EV_A), &linuxaio_ctx);
440} 442}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines