Lines Matching refs:iocb
54 typedef void (*aio_func)(union sigval val, struct aiocb *iocb);
56 extern int __sys_aio_read(struct aiocb *iocb);
57 extern int __sys_aio_write(struct aiocb *iocb);
59 extern ssize_t __sys_aio_return(struct aiocb *iocb);
60 extern int __sys_aio_error(struct aiocb *iocb);
61 extern int __sys_aio_fsync(int op, struct aiocb *iocb);
102 aio_io(struct aiocb *iocb, int (*sysfunc)(struct aiocb *iocb))
108 if (iocb->aio_sigevent.sigev_notify != SIGEV_THREAD) {
109 ret = sysfunc(iocb);
113 ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn,
117 ret = sysfunc(iocb);
118 iocb->aio_sigevent = saved_ev;
130 __aio_read(struct aiocb *iocb)
133 return aio_io(iocb, &__sys_aio_read);
137 __aio_write(struct aiocb *iocb)
140 return aio_io(iocb, &__sys_aio_write);
164 __aio_return(struct aiocb *iocb)
167 if (iocb->aio_sigevent.sigev_notify == SIGEV_THREAD) {
168 if (__sys_aio_error(iocb) == EINPROGRESS) {
178 __sigev_delete(SI_ASYNCIO, (sigev_id_t)iocb);
182 return __sys_aio_return(iocb);
186 __aio_fsync(int op, struct aiocb *iocb)
192 if (iocb->aio_sigevent.sigev_notify != SIGEV_THREAD)
193 return __sys_aio_fsync(op, iocb);
195 ret = aio_sigev_alloc((sigev_id_t)iocb, &iocb->aio_sigevent, &sn,
199 ret = __sys_aio_fsync(op, iocb);
200 iocb->aio_sigevent = saved_ev;