Lines Matching refs:mpp
201 struct mppcb *mpp;
213 mpp = zalloc(mppi->mppi_zone);
214 if (mpp == NULL)
217 bzero(mpp, mppi->mppi_size);
218 lck_mtx_init(&mpp->mpp_lock, mppi->mppi_lock_grp, mppi->mppi_lock_attr);
219 mpp->mpp_pcbinfo = mppi;
220 mpp->mpp_state = MPPCB_STATE_INUSE;
221 mpp->mpp_socket = so;
222 so->so_pcb = mpp;
225 mpp->mpp_flags |= MPP_ATTACHED;
226 TAILQ_INSERT_TAIL(&mppi->mppi_pcbs, mpp, mpp_entry);
234 mp_pcbdetach(struct mppcb *mpp)
236 struct socket *so = mpp->mpp_socket;
238 VERIFY(so->so_pcb == mpp);
240 mpp->mpp_state = MPPCB_STATE_DEAD;
248 mp_pcbdispose(struct mppcb *mpp)
250 struct mppcbinfo *mppi = mpp->mpp_pcbinfo;
255 lck_mtx_assert(&mpp->mpp_lock, LCK_MTX_ASSERT_OWNED);
257 VERIFY(mpp->mpp_state == MPPCB_STATE_DEAD);
259 VERIFY(mpp->mpp_flags & MPP_ATTACHED);
260 mpp->mpp_flags &= ~MPP_ATTACHED;
261 TAILQ_REMOVE(&mppi->mppi_pcbs, mpp, mpp_entry);
265 VERIFY(mpp->mpp_socket != NULL);
266 VERIFY(mpp->mpp_socket->so_usecount == 0);
267 mpp->mpp_socket->so_pcb = NULL;
268 mpp->mpp_socket = NULL;
270 lck_mtx_unlock(&mpp->mpp_lock);
271 lck_mtx_destroy(&mpp->mpp_lock, mppi->mppi_lock_grp);
272 zfree(mppi->mppi_zone, mpp);