Lines Matching defs:iocb
51 typedef void (*aio_func)(union sigval val, struct aiocb *iocb);
53 extern int __sys_aio_read(struct aiocb *iocb);
54 extern int __sys_aio_write(struct aiocb *iocb);
56 extern ssize_t __sys_aio_return(struct aiocb *iocb);
57 extern int __sys_aio_error(struct aiocb *iocb);
58 extern int __sys_aio_fsync(int op, struct aiocb *iocb);
99 aio_io(struct aiocb *iocb, int (*sysfunc)(struct aiocb *iocb))
105 if (iocb->aio_sigevent.sigev_notify != SIGEV_THREAD) {
106 ret = sysfunc(iocb);
110 ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn,
114 ret = sysfunc(iocb);
115 iocb->aio_sigevent = saved_ev;
127 __aio_read(struct aiocb *iocb)
130 return aio_io(iocb, &__sys_aio_read);
134 __aio_write(struct aiocb *iocb)
137 return aio_io(iocb, &__sys_aio_write);
161 __aio_return(struct aiocb *iocb)
164 if (iocb->aio_sigevent.sigev_notify == SIGEV_THREAD) {
165 if (__sys_aio_error(iocb) == EINPROGRESS) {
175 __sigev_delete(SI_ASYNCIO, (sigev_id_t)iocb);
179 return __sys_aio_return(iocb);
183 __aio_fsync(int op, struct aiocb *iocb)
189 if (iocb->aio_sigevent.sigev_notify != SIGEV_THREAD)
190 return __sys_aio_fsync(op, iocb);
192 ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn,
196 ret = __sys_aio_fsync(op, iocb);
197 iocb->aio_sigevent = saved_ev;