Lines Matching defs:ipx

753 	ipxop_t	*ipx = ipif->ipif_ill->ill_phyint->phyint_ipsq->ipsq_xop;
758 ASSERT(ipx->ipx_pending_mp == NULL);
765 ASSERT(ipx->ipx_current_ipif != NULL);
786 mutex_enter(&ipx->ipx_lock);
787 ipx->ipx_pending_ipif = ipif;
795 ipx->ipx_pending_mp = add_mp;
796 ipx->ipx_waitfor = waitfor;
797 mutex_exit(&ipx->ipx_lock);
813 ipxop_t *ipx = ipsq->ipsq_xop;
816 mutex_enter(&ipx->ipx_lock);
817 if (ipx->ipx_pending_mp == NULL) {
818 mutex_exit(&ipx->ipx_lock);
823 curr = ipx->ipx_pending_mp;
825 ipx->ipx_pending_ipif = NULL;
826 ipx->ipx_pending_mp = NULL;
827 ipx->ipx_waitfor = 0;
828 mutex_exit(&ipx->ipx_lock);
857 ipxop_t *ipx;
863 ipx = ill->ill_phyint->phyint_ipsq->ipsq_xop;
865 mutex_enter(&ipx->ipx_lock);
866 mp = ipx->ipx_pending_mp;
874 mutex_exit(&ipx->ipx_lock);
886 mutex_exit(&ipx->ipx_lock);
892 ipx->ipx_pending_mp = NULL;
893 ipif = ipx->ipx_pending_ipif;
894 ipx->ipx_pending_ipif = NULL;
895 ipx->ipx_waitfor = 0;
896 ipx->ipx_current_ipif = NULL;
897 cmd = ipx->ipx_current_ioctl;
898 ipx->ipx_current_ioctl = 0;
899 ipx->ipx_current_done = B_TRUE;
900 mutex_exit(&ipx->ipx_lock);
3307 ipxop_t *ipx;
3313 ipx = ipsq->ipsq_xop = &ipsq->ipsq_ownxop;
3314 ipx->ipx_ipsq = ipsq;
3318 mutex_init(&ipx->ipx_lock, NULL, MUTEX_DEFAULT, 0);
3321 ipx->ipx_writer = curthread;
3322 ipx->ipx_forced = B_FALSE;
3323 ipx->ipx_reentry_cnt = 1;
3325 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);
11846 ipxop_t *ipx = ipsq->ipsq_xop;
11867 if (ipx->ipx_current_ipif == sipif) {
11868 ASSERT(ipx->ipx_pending_ipif == NULL);
11869 mutex_enter(&ipx->ipx_lock);
11870 ipx->ipx_current_ipif = dipif;
11871 mutex_exit(&ipx->ipx_lock);
12370 ipxop_t *ipx = ipsq->ipsq_xop;
12375 ASSERT(ipsq->ipsq_xopq_mphead == NULL && ipx->ipx_mphead == NULL);
12376 ASSERT(ipx->ipx_pending_mp == NULL);
12980 ipxop_t *ipx = ipsq->ipsq_xop;
12993 if (ipx->ipx_current_done) {
12994 mutex_enter(&ipx->ipx_lock);
12995 ipx->ipx_current_ipif = NULL;
12996 mutex_exit(&ipx->ipx_lock);