aio_worker_t
aio_worker_t *req_worker; /* associate request with worker */
aio_worker_t *work_forw; /* forward link in list of workers */
aio_worker_t *work_backw; /* backwards link in list of workers */
extern int _aio_rw(aiocb_t *, aio_lio_t *, aio_worker_t **, int, int);
extern int _aio_rw64(aiocb64_t *, aio_lio_t *, aio_worker_t **, int, int);
extern int _aio_cancel_req(aio_worker_t *, aio_req_t *, int *, int *);
extern aio_worker_t *_aio_worker_alloc(void);
extern int _aio_idle(aio_worker_t *);
extern aio_worker_t *_kaiowp; /* points to kaio cleanup thread */
extern aio_worker_t *__workers_rw; /* list of all rw workers */
extern aio_worker_t *__nextworker_rw; /* worker chosen for next rw request */
extern aio_worker_t *__workers_no; /* list of all notification workers */
extern aio_worker_t *__nextworker_no; /* worker chosen, next notification */
aio_worker_t *aiowp = (aio_worker_t *)arglist;
_aio_finish_request(aio_worker_t *aiowp, ssize_t retval, int error)
aio_worker_t *_kaiowp = NULL; /* points to kaio cleanup thread */
aio_worker_t *aiowp = (aio_worker_t *)arg;
_aio_fsync_del(aio_worker_t *aiowp, aio_req_t *reqp)
_aio_idle(aio_worker_t *aiowp)
_aio_work_done(aio_worker_t *aiowp)
_aio_req_add(aio_req_t *reqp, aio_worker_t **nextworker, int mode)
aio_worker_t *aiowp;
aio_worker_t *first;
_aio_req_get(aio_worker_t *aiowp)
_aio_req_del(aio_worker_t *aiowp, aio_req_t *reqp, int ostate)
_aio_rw(aiocb_t *aiocbp, aio_lio_t *lio_head, aio_worker_t **nextworker,
_aio_rw64(aiocb64_t *aiocbp, aio_lio_t *lio_head, aio_worker_t **nextworker,
static aio_req_t *_aio_req_get(aio_worker_t *);
static void _aio_req_add(aio_req_t *, aio_worker_t **, int);
static void _aio_req_del(aio_worker_t *, aio_req_t *, int);
static void _aio_work_done(aio_worker_t *);
aio_worker_t *aiowp;
static int _aio_fsync_del(aio_worker_t *, aio_req_t *);
static void _aio_cancel_work(aio_worker_t *, int, int *, int *);
static void _aio_finish_request(aio_worker_t *, ssize_t, int);
aio_worker_t *first;
aio_worker_t *next;
aio_worker_t *__workers_rw; /* circular list of AIO workers */
aio_worker_t *__nextworker_rw; /* next worker in list of workers */
_aio_cancel_work(aio_worker_t *aiowp, int fd, int *canceled, int *done)
_aio_cancel_req(aio_worker_t *aiowp, aio_req_t *reqp, int *canceled, int *done)
aio_worker_t *__workers_no; /* circular list of AIO workers */
aio_worker_t *__nextworker_no; /* next worker in list of workers */
aio_worker_t *aiowp, **workers, **nextworker;
worker_freelist = (aio_worker_t *)(uintptr_t)(chp + 1);
nelem = (chunksize - sizeof (chunk_t)) / sizeof (aio_worker_t);
aio_worker_t *aiowp = arg;
aio_worker_t *worker_freelist = NULL; /* free list of worker structures */
aio_worker_t *worker_freelast = NULL;
aio_worker_t *
aio_worker_t *aiowp;
__aio_fsync_bar64(aiocb64_t *aiocbp, aio_lio_t *head, aio_worker_t *aiowp,
aio_worker_t *next = aiowp;
aio_worker_t *aiowp;
__aio_fsync_bar(aiocb_t *aiocbp, aio_lio_t *head, aio_worker_t *aiowp,
aio_worker_t *next = aiowp;
aio_worker_t *aiowp;
aio_worker_t *aiowp = pthread_getspecific(_aio_key);