Lines Matching defs:lj
486 struct aioliojob *lj;
505 lj = job->lio;
506 if (lj) {
507 lj->lioj_count--;
508 lj->lioj_finished_count--;
510 if (lj->lioj_count == 0) {
511 TAILQ_REMOVE(&ki->kaio_liojoblist, lj, lioj_list);
513 knlist_delete(&lj->klist, curthread, 1);
515 sigqueue_take(&lj->lioj_ksi);
517 uma_zfree(aiolio_zone, lj);
625 struct aioliojob *lj;
658 while ((lj = TAILQ_FIRST(&ki->kaio_liojoblist)) != NULL) {
659 if (lj->lioj_count == 0) {
660 TAILQ_REMOVE(&ki->kaio_liojoblist, lj, lioj_list);
661 knlist_delete(&lj->klist, curthread, 1);
663 sigqueue_take(&lj->lioj_ksi);
665 uma_zfree(aiolio_zone, lj);
668 lj->lioj_count, lj->lioj_finished_count);
865 struct aioliojob *lj;
873 lj = job->lio;
875 if (lj) {
876 lj->lioj_finished_count++;
877 if (lj->lioj_count == lj->lioj_finished_count)
893 if (lj->lioj_signal.sigev_notify == SIGEV_KEVENT) {
894 lj->lioj_flags |= LIOJ_KEVENT_POSTED;
895 KNOTE_LOCKED(&lj->klist, 1);
897 if ((lj->lioj_flags & (LIOJ_SIGNAL | LIOJ_SIGNAL_POSTED))
899 (lj->lioj_signal.sigev_notify == SIGEV_SIGNAL ||
900 lj->lioj_signal.sigev_notify == SIGEV_THREAD_ID)) {
901 aio_sendsig(userp, &lj->lioj_signal, &lj->lioj_ksi,
903 lj->lioj_flags |= LIOJ_SIGNAL_POSTED;
1482 aio_aqueue(struct thread *td, struct aiocb *ujob, struct aioliojob *lj,
1648 job->lio = lj;
1688 if (lj)
1689 lj->lioj_count++;
2206 struct aioliojob *lj;
2223 lj = uma_zalloc(aiolio_zone, M_WAITOK);
2224 lj->lioj_flags = 0;
2225 lj->lioj_count = 0;
2226 lj->lioj_finished_count = 0;
2227 lj->lioj_signal.sigev_notify = SIGEV_NONE;
2228 knlist_init_mtx(&lj->klist, AIO_MTX(ki));
2229 ksiginfo_init(&lj->lioj_ksi);
2235 bcopy(sig, &lj->lioj_signal, sizeof(lj->lioj_signal));
2236 if (lj->lioj_signal.sigev_notify == SIGEV_KEVENT) {
2242 kev.data = (intptr_t)lj;
2244 kev.udata = lj->lioj_signal.sigev_value.sival_ptr;
2246 lj->lioj_signal.sigev_notify_kqueue, &kev, td,
2249 uma_zfree(aiolio_zone, lj);
2252 } else if (lj->lioj_signal.sigev_notify == SIGEV_NONE) {
2254 } else if (lj->lioj_signal.sigev_notify == SIGEV_SIGNAL ||
2255 lj->lioj_signal.sigev_notify == SIGEV_THREAD_ID) {
2256 if (!_SIG_VALID(lj->lioj_signal.sigev_signo)) {
2257 uma_zfree(aiolio_zone, lj);
2260 lj->lioj_flags |= LIOJ_SIGNAL;
2262 uma_zfree(aiolio_zone, lj);
2268 TAILQ_INSERT_TAIL(&ki->kaio_liojoblist, lj, lioj_list);
2275 lj->lioj_count = 1;
2286 error = aio_aqueue(td, job, lj, LIO_NOP, ops);
2297 while (lj->lioj_count - 1 != lj->lioj_finished_count) {
2307 if (lj->lioj_count - 1 == lj->lioj_finished_count) {
2308 if (lj->lioj_signal.sigev_notify == SIGEV_KEVENT) {
2309 lj->lioj_flags |= LIOJ_KEVENT_POSTED;
2310 KNOTE_LOCKED(&lj->klist, 1);
2312 if ((lj->lioj_flags & (LIOJ_SIGNAL |
2314 (lj->lioj_signal.sigev_notify == SIGEV_SIGNAL ||
2315 lj->lioj_signal.sigev_notify == SIGEV_THREAD_ID)) {
2316 aio_sendsig(p, &lj->lioj_signal, &lj->lioj_ksi,
2317 lj->lioj_count != 1);
2318 lj->lioj_flags |= LIOJ_SIGNAL_POSTED;
2322 lj->lioj_count--;
2323 if (lj->lioj_count == 0) {
2324 TAILQ_REMOVE(&ki->kaio_liojoblist, lj, lioj_list);
2325 knlist_delete(&lj->klist, curthread, 1);
2327 sigqueue_take(&lj->lioj_ksi);
2330 uma_zfree(aiolio_zone, lj);
2649 struct aioliojob *lj;
2651 lj = (struct aioliojob *)(uintptr_t)kn->kn_sdata;
2660 kn->kn_ptr.p_lio = lj;
2663 knlist_add(&lj->klist, kn, 0);
2686 struct aioliojob * lj = kn->kn_ptr.p_lio;
2688 return (lj->lioj_flags & LIOJ_KEVENT_POSTED);