Lines Matching defs:sipif

11805  * Clone the contents of `sipif' to `dipif'.  Requires that both ipifs are
11808 * that the caller will either free or overwrite `sipif' before it's unlocked.
11811 ipif_clone(const ipif_t *sipif, ipif_t *dipif)
11813 ASSERT(MUTEX_HELD(&sipif->ipif_ill->ill_lock));
11815 ASSERT(!(sipif->ipif_flags & (IPIF_UP|IPIF_DUPLICATE)));
11817 ASSERT(sipif->ipif_ire_type == dipif->ipif_ire_type);
11819 dipif->ipif_flags = sipif->ipif_flags;
11820 dipif->ipif_zoneid = sipif->ipif_zoneid;
11821 dipif->ipif_v6subnet = sipif->ipif_v6subnet;
11822 dipif->ipif_v6lcl_addr = sipif->ipif_v6lcl_addr;
11823 dipif->ipif_v6net_mask = sipif->ipif_v6net_mask;
11824 dipif->ipif_v6brd_addr = sipif->ipif_v6brd_addr;
11825 dipif->ipif_v6pp_dst_addr = sipif->ipif_v6pp_dst_addr;
11828 * As per the comment atop the function, we assume that these sipif
11829 * fields will be changed before sipif is unlocked.
11831 dipif->ipif_seqid = sipif->ipif_seqid;
11832 dipif->ipif_state_flags = sipif->ipif_state_flags;
11836 * Transfer the contents of `sipif' to `dipif', and then free (if `virgipif'
11837 * is NULL) or overwrite `sipif' with `virgipif', which must be a virgin
11838 * (unreferenced) ipif. Also, if `sipif' is used by the current xop, then
11843 ipif_transfer(ipif_t *sipif, ipif_t *dipif, ipif_t *virgipif)
11845 ipsq_t *ipsq = sipif->ipif_ill->ill_phyint->phyint_ipsq;
11848 ASSERT(sipif != dipif);
11849 ASSERT(sipif != virgipif);
11854 GRAB_ILL_LOCKS(sipif->ipif_ill, dipif->ipif_ill);
11856 ipif_clone(sipif, dipif);
11858 ipif_clone(virgipif, sipif);
11862 RELEASE_ILL_LOCKS(sipif->ipif_ill, dipif->ipif_ill);
11867 if (ipx->ipx_current_ipif == sipif) {
11875 mi_free(sipif);