Lines Matching defs:ipx
757 ipxop_t *ipx = ipif->ipif_ill->ill_phyint->phyint_ipsq->ipsq_xop;
762 ASSERT(ipx->ipx_pending_mp == NULL);
769 ASSERT(ipx->ipx_current_ipif != NULL);
790 mutex_enter(&ipx->ipx_lock);
791 ipx->ipx_pending_ipif = ipif;
799 ipx->ipx_pending_mp = add_mp;
800 ipx->ipx_waitfor = waitfor;
801 mutex_exit(&ipx->ipx_lock);
817 ipxop_t *ipx = ipsq->ipsq_xop;
820 mutex_enter(&ipx->ipx_lock);
821 if (ipx->ipx_pending_mp == NULL) {
822 mutex_exit(&ipx->ipx_lock);
827 curr = ipx->ipx_pending_mp;
829 ipx->ipx_pending_ipif = NULL;
830 ipx->ipx_pending_mp = NULL;
831 ipx->ipx_waitfor = 0;
832 mutex_exit(&ipx->ipx_lock);
861 ipxop_t *ipx;
867 ipx = ill->ill_phyint->phyint_ipsq->ipsq_xop;
869 mutex_enter(&ipx->ipx_lock);
870 mp = ipx->ipx_pending_mp;
878 mutex_exit(&ipx->ipx_lock);
890 mutex_exit(&ipx->ipx_lock);
896 ipx->ipx_pending_mp = NULL;
897 ipif = ipx->ipx_pending_ipif;
898 ipx->ipx_pending_ipif = NULL;
899 ipx->ipx_waitfor = 0;
900 ipx->ipx_current_ipif = NULL;
901 cmd = ipx->ipx_current_ioctl;
902 ipx->ipx_current_ioctl = 0;
903 ipx->ipx_current_done = B_TRUE;
904 mutex_exit(&ipx->ipx_lock);
3311 ipxop_t *ipx;
3317 ipx = ipsq->ipsq_xop = &ipsq->ipsq_ownxop;
3318 ipx->ipx_ipsq = ipsq;
3322 mutex_init(&ipx->ipx_lock, NULL, MUTEX_DEFAULT, 0);
3325 ipx->ipx_writer = curthread;
3326 ipx->ipx_forced = B_FALSE;
3327 ipx->ipx_reentry_cnt = 1;
3329 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH);
4925 ipxop_t *ipx;
4938 ipx = ipsq->ipsq_xop;
4939 mutex_enter(&ipx->ipx_lock);
4940 if (ipx->ipx_waitfor == 0) /* no one's waiting; bail */
4943 ASSERT(ipx->ipx_pending_mp != NULL && ipx->ipx_pending_ipif != NULL);
4945 ipif = ipx->ipx_pending_ipif;
4949 switch (ipx->ipx_waitfor) {
4973 (void *)ipsq, ipx->ipx_waitfor);
4977 mutex_exit(&ipx->ipx_lock);
5031 mutex_exit(&ipx->ipx_lock);
6216 ipxop_t *ipx = ipsq->ipsq_xop;
6219 ASSERT(MUTEX_HELD(&ipx->ipx_lock));
6228 if (ipx->ipx_mptail != NULL) {
6229 ASSERT(ipx->ipx_mphead != NULL);
6230 ipx->ipx_mptail->b_next = mp;
6232 ASSERT(ipx->ipx_mphead == NULL);
6233 ipx->ipx_mphead = mp;
6235 ipx->ipx_mptail = mp;
6247 ipx->ipx_ipsq_queued = B_TRUE;
6255 ipx->ipx_ipsq_queued = B_TRUE;
6300 ipxop_t *ipx;
6312 ipx = ipsq->ipsq_xop;
6313 mutex_enter(&ipx->ipx_lock);
6319 if ((mp = ipx->ipx_mphead) != NULL) {
6320 ipx->ipx_mphead = mp->b_next;
6321 if (ipx->ipx_mphead == NULL)
6322 ipx->ipx_mptail = NULL;
6327 if (ipx->ipx_current_ipif != NULL)
6357 xopipsq = ipx->ipx_ipsq;
6374 mutex_exit(&ipx->ipx_lock);
6377 * Third, set ipx to point to our own xop (which was
6380 ipx = ipsq->ipsq_xop;
6381 mutex_enter(&ipx->ipx_lock);
6382 ASSERT(ipx->ipx_writer == NULL);
6383 ASSERT(ipx->ipx_current_ipif == NULL);
6413 ASSERT(ipx->ipx_writer == curthread);
6414 ipx->ipx_writer = NULL;
6415 VERIFY(--ipx->ipx_reentry_cnt == 0);
6416 ipx->ipx_ipsq_queued = B_FALSE;
6417 mutex_exit(&ipx->ipx_lock);
6420 * Third, set ipx to point to our new xop, and check
6426 ipx = ipsq->ipsq_xop;
6427 mutex_enter(&ipx->ipx_lock);
6428 if (ipx->ipx_writer != NULL ||
6429 ipx->ipx_current_ipif != NULL) {
6435 * Fourth, become writer on our new ipx before we continue
6439 * no other thread can examine the ipx right now.
6441 ASSERT(ipx->ipx_current_ipif == NULL);
6442 ASSERT(ipx->ipx_mphead == NULL && ipx->ipx_mptail == NULL);
6443 VERIFY(ipx->ipx_reentry_cnt++ == 0);
6444 ipx->ipx_writer = curthread;
6445 ipx->ipx_forced = B_FALSE;
6447 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH);
6478 ipx->ipx_writer = NULL;
6479 ipx->ipx_forced = B_FALSE;
6480 VERIFY(--ipx->ipx_reentry_cnt == 0);
6481 ipx->ipx_ipsq_queued = B_FALSE;
6484 ipx->ipx_depth = 0;
6487 mutex_exit(&ipx->ipx_lock);
6584 ipxop_t *ipx;
6607 ipx = ipsq->ipsq_xop;
6608 mutex_enter(&ipx->ipx_lock);
6610 if (ipx->ipx_writer == NULL && (type == CUR_OP ||
6611 (ipx->ipx_current_ipif == NULL && ipsq_dlpi_done(ipsq)) ||
6617 if (!force || ipx->ipx_writer != NULL) {
6618 mutex_exit(&ipx->ipx_lock);
6622 mutex_exit(&ipx->ipx_lock);
6631 ASSERT(ipx->ipx_mphead == NULL && ipx->ipx_mptail == NULL);
6632 ASSERT(ipx->ipx_reentry_cnt == 0);
6633 ipx->ipx_writer = curthread;
6634 ipx->ipx_forced = (ipx->ipx_current_ipif != NULL);
6635 ipx->ipx_reentry_cnt++;
6637 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH);
6639 mutex_exit(&ipx->ipx_lock);
6659 ipxop_t *ipx;
6666 * ipx of an ipsq can't change when ipsq_lock is held.
6673 ipx = ipsq->ipsq_xop;
6674 mutex_enter(&ipx->ipx_lock);
6688 if ((ipx->ipx_writer == curthread && reentry_ok) ||
6689 (ipx->ipx_writer == NULL && (type == CUR_OP || (type == NEW_OP &&
6690 !ipx->ipx_ipsq_queued && ipx->ipx_current_ipif == NULL &&
6693 ipx->ipx_reentry_cnt++;
6694 ipx->ipx_writer = curthread;
6695 ipx->ipx_forced = B_FALSE;
6696 mutex_exit(&ipx->ipx_lock);
6701 ipx->ipx_depth = getpcstack(ipx->ipx_stack, IPX_STACK_DEPTH);
6709 mutex_exit(&ipx->ipx_lock);
6897 ipxop_t *ipx = ipsq->ipsq_xop;
6900 ASSERT(ipx->ipx_current_ipif == NULL);
6901 ASSERT(ipx->ipx_current_ioctl == 0);
6903 ipx->ipx_current_done = B_FALSE;
6904 ipx->ipx_current_ioctl = ioccmd;
6905 mutex_enter(&ipx->ipx_lock);
6906 ipx->ipx_current_ipif = ipif;
6907 mutex_exit(&ipx->ipx_lock);
6954 ipxop_t *ipx = ipsq->ipsq_xop;
6956 ipif_t *ipif = ipx->ipx_current_ipif;
6965 if (ipx->ipx_current_ioctl != SIOCLIFREMOVEIF) {
6970 if (ipx->ipx_current_ioctl == 0) {
6980 ASSERT(!ipx->ipx_current_done);
6981 ipx->ipx_current_done = B_TRUE;
6982 ipx->ipx_current_ioctl = 0;
6984 mutex_enter(&ipx->ipx_lock);
6985 ipx->ipx_current_ipif = NULL;
6986 mutex_exit(&ipx->ipx_lock);
7003 ipxop_t *ipx = ill->ill_phyint->phyint_ipsq->ipsq_xop;
7010 mutex_enter(&ipx->ipx_lock);
7011 for (prev = NULL, mp = ipx->ipx_mphead; mp != NULL; mp = mp_next) {
7017 ipx->ipx_mphead = mp->b_next;
7020 if (ipx->ipx_mptail == mp) {
7022 ipx->ipx_mptail = prev;
7029 mutex_exit(&ipx->ipx_lock);
11826 ipxop_t *ipx = ipsq->ipsq_xop;
11847 if (ipx->ipx_current_ipif == sipif) {
11848 ASSERT(ipx->ipx_pending_ipif == NULL);
11849 mutex_enter(&ipx->ipx_lock);
11850 ipx->ipx_current_ipif = dipif;
11851 mutex_exit(&ipx->ipx_lock);
12350 ipxop_t *ipx = ipsq->ipsq_xop;
12355 ASSERT(ipsq->ipsq_xopq_mphead == NULL && ipx->ipx_mphead == NULL);
12356 ASSERT(ipx->ipx_pending_mp == NULL);
12960 ipxop_t *ipx = ipsq->ipsq_xop;
12973 if (ipx->ipx_current_done) {
12974 mutex_enter(&ipx->ipx_lock);
12975 ipx->ipx_current_ipif = NULL;
12976 mutex_exit(&ipx->ipx_lock);