Lines Matching refs:ipsq
281 * * The <ipsq-xop> mapping
284 * into an ill, changing the <ipsq-xop> mapping of an ill, changing the
295 * It also protects the <ipsq-ipxop> mapping
320 * Changing <ill-phyint>, <ipsq-xop> assocications:
326 * To change the <ipsq-xop> association, the ill_g_lock must be held as
327 * writer, the ipsq_lock must be held, and one must be writer on the ipsq.
332 * a writer on the associated ipsq.
335 * writer and the thread must be a writer on the associated ipsq.
338 * must be a writer on the associated ipsq.
3992 ipsq_t *ipsq;
4014 ipsq = ill->ill_phyint->phyint_ipsq;
4029 * Wake up anybody waiting to enter the ipsq. ipsq_enter
4056 * ipsq have seen the error returned by ipsq_enter and have
4143 ipsq_exit(ipsq);
5924 * ill_init initializes the ipsq marking this thread as
8186 * Handling of DLPI messages that require exclusive access to the ipsq.
8193 ip_rput_dlpi_writer(ipsq_t *ipsq, queue_t *q, mblk_t *mp, void *dummy_arg)
8212 ASSERT(ipsq->ipsq_xop == ill->ill_phyint->phyint_ipsq->ipsq_xop);
8215 ipif = ipsq->ipsq_xop->ipx_pending_ipif;
8286 mp1 = ipsq_pending_mp_get(ipsq, &connp);
8310 mp1 = ipsq_pending_mp_get(ipsq, &connp);
8425 mp1 = ipsq_pending_mp_get(ipsq, &connp);
8479 mp1 = ipsq_pending_mp_get(ipsq, &connp);
8622 * We are writer. ill / phyint / ipsq assocs stable.
8694 ipsq_current_start(ipsq, ill->ill_ipif, 0);
8696 ipsq_current_finish(ipsq);
8777 mp1 = ipsq_pending_mp_get(ipsq, &connp);
8865 int, ipsq->ipsq_xop->ipx_current_ioctl, ill_t *, ill,
8868 switch (ipsq->ipsq_xop->ipx_current_ioctl) {
8870 ipsq_current_finish(ipsq);
8898 if (ipsq->ipsq_xop->ipx_current_ioctl == IF_UNITSEL)
8899 ip_ioctl_finish(q, mp1, err, NO_COPYOUT, ipsq);
8901 ip_ioctl_finish(q, mp1, err, COPYOUT, ipsq);
8905 ip_ioctl_finish(q, mp1, err, COPYOUT, ipsq);
8909 ip_ioctl_finish(q, mp1, err, NO_COPYOUT, ipsq);
8916 * state in IP. If 'ipsq' is non-NULL, caller is writer on it.
8920 ip_rput_other(ipsq_t *ipsq, queue_t *q, mblk_t *mp, void *dummy_arg)
8926 if (ipsq != NULL) {
8927 ASSERT(IAM_WRITER_IPSQ(ipsq));
8928 ASSERT(ipsq->ipsq_xop ==
8940 ASSERT(ipsq != NULL);
8947 ipif_all_down_tail(ipsq, q, mp, NULL);
12494 ip_reprocess_ioctl(ipsq_t *ipsq, queue_t *q, mblk_t *mp, void *dummy_arg)
12505 ASSERT(ipsq != NULL);
12512 * ill_phyint_reinit merged the v4 and v6 into a single ipsq.
12515 * the new ipsq.
12518 ipsq_current_start(ipsq, ill->ill_ipif, ipip->ipi_cmd);
12520 ASSERT(ipsq->ipsq_xop->ipx_current_ipif != NULL);
12534 err = (*ipip->ipi_func_restart)(ipsq->ipsq_xop->ipx_current_ipif, sin,
12539 ill_t *, ipsq->ipsq_xop->ipx_current_ipif->ipif_ill,
12540 ipif_t *, ipsq->ipsq_xop->ipx_current_ipif);
12542 ip_ioctl_finish(q, mp, err, IPI2MODE(ipip), ipsq);
12566 * ioctl. Finally ipsq_exit is called if needed to exit the ipsq.
12575 ip_process_ioctl(ipsq_t *ipsq, queue_t *q, mblk_t *mp, void *arg)
12677 * If ipsq is non-NULL, we are already being called exclusively
12679 ASSERT(ipsq == NULL || IAM_WRITER_IPSQ(ipsq));
12680 if (ipsq == NULL) {
12681 ipsq = ipsq_try_enter(ci.ci_ipif, NULL, q, mp, ip_process_ioctl,
12683 if (ipsq == NULL) {
12697 ipsq_current_start(ipsq, ci.ci_ipif, ipip->ipi_cmd);
12710 ip_ioctl_finish(q, mp, err, IPI2MODE(ipip), ipsq);
12713 ipsq_exit(ipsq);
12721 ip_ioctl_finish(queue_t *q, mblk_t *mp, int err, int mode, ipsq_t *ipsq)
12759 if (ipsq != NULL)
12760 ipsq_current_finish(ipsq);