Lines Matching refs:obj

51 	struct ntsync_obj *obj;
58 obj = state->objs[i];
59 if (obj->is_signaled(obj, state, i)) {
61 obj->consume(obj, state, state->index);
71 struct ntsync_obj *obj;
84 obj = state->objs[i];
85 if (!obj->prepare(obj, state, i, stop))
103 struct ntsync_obj *obj;
111 obj = state->objs[i];
112 obj->commit(obj, state, i);
119 struct ntsync_obj *obj;
126 obj = state->objs[i];
129 TAILQ_INSERT_TAIL(&obj->waiters, waiter, link);
136 struct ntsync_obj *obj;
143 obj = state->objs[i];
145 TAILQ_REMOVE(&obj->waiters, waiter, link);
152 struct ntsync_obj *obj;
159 obj = state->objs[i];
160 obj->post_commit(obj, state, i);
186 ae = &state->alert_event->obj;
256 ntsync_wakeup_waiters(struct ntsync_obj *obj)
260 NTSYNC_PRIV_ASSERT(obj->owner);
262 TAILQ_FOREACH(w, &obj->waiters, link) {
270 ntsync_create_obj(struct ntsync_obj *obj, struct fileops *fops,
284 obj->owner = priv;
286 TAILQ_INIT(&obj->waiters);
297 finit(fp, FREAD | FWRITE, DTYPE_NTSYNC, obj, fops);
313 ntsync_close_obj(struct ntsync_obj *obj, struct thread *td)
317 priv = obj->owner;
320 MPASS(TAILQ_EMPTY(&obj->waiters));
327 ntsync_sem_is_signaled(struct ntsync_obj *obj, struct ntsync_wait_state *state,
332 MPASS(obj->type == NTSYNC_OBJ_SEM);
333 NTSYNC_PRIV_ASSERT(obj->owner);
334 sem = OBJ_TO_SEM(obj);
339 ntsync_sem_consume(struct ntsync_obj *obj, struct ntsync_wait_state *state,
344 MPASS(obj->type == NTSYNC_OBJ_SEM);
345 NTSYNC_PRIV_ASSERT(obj->owner);
346 sem = OBJ_TO_SEM(obj);
352 ntsync_sem_prepare(struct ntsync_obj *obj, struct ntsync_wait_state *state,
357 MPASS(obj->type == NTSYNC_OBJ_SEM);
358 NTSYNC_PRIV_ASSERT(obj->owner);
359 sem = OBJ_TO_SEM(obj);
368 ntsync_sem_commit(struct ntsync_obj *obj, struct ntsync_wait_state *state,
373 MPASS(obj->type == NTSYNC_OBJ_SEM);
374 NTSYNC_PRIV_ASSERT(obj->owner);
375 sem = OBJ_TO_SEM(obj);
380 ntsync_sem_post_commit(struct ntsync_obj *obj, struct ntsync_wait_state *state,
391 ntsync_close_obj(&sem->obj, td);
399 struct ntsync_obj *obj;
405 obj = fp->f_data;
406 if (obj->type != NTSYNC_OBJ_SEM)
408 sem = OBJ_TO_SEM(obj);
409 priv = obj->owner;
420 ntsync_wakeup_waiters(obj);
430 struct ntsync_obj *obj;
434 obj = fp->f_data;
435 if (obj->type != NTSYNC_OBJ_SEM)
437 sem = OBJ_TO_SEM(obj);
438 priv = obj->owner;
468 struct ntsync_obj *obj;
472 obj = fp->f_data;
473 MPASS(obj->type == NTSYNC_OBJ_SEM);
474 sem = OBJ_TO_SEM(obj);
478 NTSYNC_PRIV_LOCK(obj->owner);
481 NTSYNC_PRIV_UNLOCK(obj->owner);
489 struct ntsync_obj *obj;
493 obj = fp->f_data;
494 MPASS(obj->type == NTSYNC_OBJ_SEM);
495 sem = OBJ_TO_SEM(obj);
499 kif->kf_un.kf_ntsync.kf_ntsync_dev = (uintptr_t)obj->owner;
532 sem->obj.type = NTSYNC_OBJ_SEM;
533 sem->obj.is_signaled = ntsync_sem_is_signaled;
534 sem->obj.consume = ntsync_sem_consume;
535 sem->obj.prepare = ntsync_sem_prepare;
536 sem->obj.commit = ntsync_sem_commit;
537 sem->obj.post_commit = ntsync_sem_post_commit;
540 error = ntsync_create_obj(&sem->obj, &ntsync_sem_fops, priv, td);
556 ntsync_mutex_is_signaled(struct ntsync_obj *obj,
561 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
562 NTSYNC_PRIV_ASSERT(obj->owner);
563 mutex = OBJ_TO_MUTEX(obj);
568 ntsync_mutex_consume(struct ntsync_obj *obj, struct ntsync_wait_state *state,
573 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
574 NTSYNC_PRIV_ASSERT(obj->owner);
575 mutex = OBJ_TO_MUTEX(obj);
592 ntsync_mutex_prepare(struct ntsync_obj *obj, struct ntsync_wait_state *state,
597 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
598 NTSYNC_PRIV_ASSERT(obj->owner);
599 mutex = OBJ_TO_MUTEX(obj);
617 ntsync_mutex_commit(struct ntsync_obj *obj, struct ntsync_wait_state *state,
622 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
623 NTSYNC_PRIV_ASSERT(obj->owner);
624 mutex = OBJ_TO_MUTEX(obj);
632 ntsync_mutex_post_commit(struct ntsync_obj *obj,
643 ntsync_close_obj(&mutex->obj, td);
652 struct ntsync_obj *obj;
658 obj = fp->f_data;
659 if (obj->type != NTSYNC_OBJ_MUTEX)
661 mutex = OBJ_TO_MUTEX(obj);
662 priv = obj->owner;
677 ntsync_wakeup_waiters(obj);
687 struct ntsync_obj *obj;
692 obj = fp->f_data;
693 if (obj->type != NTSYNC_OBJ_MUTEX)
695 mutex = OBJ_TO_MUTEX(obj);
696 priv = obj->owner;
708 ntsync_wakeup_waiters(obj);
718 struct ntsync_obj *obj;
724 obj = fp->f_data;
725 if (obj->type != NTSYNC_OBJ_MUTEX)
727 mutex = OBJ_TO_MUTEX(obj);
728 priv = obj->owner;
774 struct ntsync_obj *obj;
778 obj = fp->f_data;
779 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
780 mutex = OBJ_TO_MUTEX(obj);
784 NTSYNC_PRIV_LOCK(obj->owner);
787 NTSYNC_PRIV_UNLOCK(obj->owner);
795 struct ntsync_obj *obj;
799 obj = fp->f_data;
800 MPASS(obj->type == NTSYNC_OBJ_MUTEX);
801 mutex = OBJ_TO_MUTEX(obj);
805 kif->kf_un.kf_ntsync.kf_ntsync_dev = (uintptr_t)obj->owner;
841 mutex->obj.type = NTSYNC_OBJ_MUTEX;
842 mutex->obj.is_signaled = ntsync_mutex_is_signaled;
843 mutex->obj.consume = ntsync_mutex_consume;
844 mutex->obj.prepare = ntsync_mutex_prepare;
845 mutex->obj.commit = ntsync_mutex_commit;
846 mutex->obj.post_commit = ntsync_mutex_post_commit;
850 error = ntsync_create_obj(&mutex->obj, &ntsync_mutex_fops, priv, td);
858 ntsync_event_is_signaled(struct ntsync_obj *obj,
863 MPASS(obj->type == NTSYNC_OBJ_EVENT);
864 NTSYNC_PRIV_ASSERT(obj->owner);
865 event = OBJ_TO_EVENT(obj);
870 ntsync_event_consume(struct ntsync_obj *obj, struct ntsync_wait_state *state,
875 MPASS(obj->type == NTSYNC_OBJ_EVENT);
876 NTSYNC_PRIV_ASSERT(obj->owner);
877 MPASS(ntsync_event_is_signaled(obj, state, index));
879 event = OBJ_TO_EVENT(obj);
885 ntsync_event_prepare(struct ntsync_obj *obj, struct ntsync_wait_state *state,
890 MPASS(obj->type == NTSYNC_OBJ_EVENT);
891 NTSYNC_PRIV_ASSERT(obj->owner);
892 event = OBJ_TO_EVENT(obj);
893 if (!ntsync_event_is_signaled(obj, state, index))
900 ntsync_event_commit(struct ntsync_obj *obj, struct ntsync_wait_state *state,
905 MPASS(obj->type == NTSYNC_OBJ_EVENT);
906 NTSYNC_PRIV_ASSERT(obj->owner);
907 event = OBJ_TO_EVENT(obj);
916 ntsync_event_post_commit(struct ntsync_obj *obj,
921 MPASS(obj->type == NTSYNC_OBJ_EVENT);
922 NTSYNC_PRIV_ASSERT(obj->owner);
923 event = OBJ_TO_EVENT(obj);
934 ntsync_close_obj(&event->obj, td);
942 struct ntsync_obj *obj;
947 obj = fp->f_data;
948 if (obj->type != NTSYNC_OBJ_EVENT)
950 event = OBJ_TO_EVENT(obj);
951 priv = obj->owner;
956 ntsync_wakeup_waiters(obj);
966 struct ntsync_obj *obj;
971 obj = fp->f_data;
972 if (obj->type != NTSYNC_OBJ_EVENT)
974 event = OBJ_TO_EVENT(obj);
975 priv = obj->owner;
989 struct ntsync_obj *obj;
994 obj = fp->f_data;
995 if (obj->type != NTSYNC_OBJ_EVENT)
997 event = OBJ_TO_EVENT(obj);
998 priv = obj->owner;
1004 ntsync_wakeup_waiters(obj);
1017 struct ntsync_obj *obj;
1021 obj = fp->f_data;
1022 if (obj->type != NTSYNC_OBJ_EVENT)
1024 event = OBJ_TO_EVENT(obj);
1025 priv = obj->owner;
1063 struct ntsync_obj *obj;
1067 obj = fp->f_data;
1068 MPASS(obj->type == NTSYNC_OBJ_EVENT);
1069 event = OBJ_TO_EVENT(obj);
1073 NTSYNC_PRIV_LOCK(obj->owner);
1076 NTSYNC_PRIV_UNLOCK(obj->owner);
1084 struct ntsync_obj *obj;
1088 obj = fp->f_data;
1089 MPASS(obj->type == NTSYNC_OBJ_EVENT);
1090 event = OBJ_TO_EVENT(obj);
1094 kif->kf_un.kf_ntsync.kf_ntsync_dev = (uintptr_t)obj->owner;
1126 event->obj.type = NTSYNC_OBJ_EVENT;
1127 event->obj.is_signaled = ntsync_event_is_signaled;
1128 event->obj.consume = ntsync_event_consume;
1129 event->obj.prepare = ntsync_event_prepare;
1130 event->obj.commit = ntsync_event_commit;
1131 event->obj.post_commit = ntsync_event_post_commit;
1134 error = ntsync_create_obj(&event->obj, &ntsync_event_fops, priv, td);
1198 struct ntsync_obj *obj;
1228 obj = state->fp_alert->f_data;
1229 if (obj->type != NTSYNC_OBJ_EVENT || obj->owner != owner) {
1233 state->alert_event = OBJ_TO_EVENT(obj);
1244 (obj = state->fps[i]->f_data)->owner != owner) {
1255 state->objs[i] = &state->alert_event->obj;
1262 obj = state->objs[i];
1264 if (obj == state->objs[j]) {