Esempio n. 1
0
int
dls_vlan_walk(int (*fn)(dls_vlan_t *, void *), void *arg)
{
	dls_vlan_walk_state_t	state;

	rw_enter(&i_dls_vlan_lock, RW_READER);

	state.fn = fn;
	state.arg = arg;
	state.rc = 0;
	mod_hash_walk(i_dls_vlan_hash, dls_vlan_walker, (void *)&state);

	rw_exit(&i_dls_vlan_lock);
	return (state.rc);
}
Esempio n. 2
0
static int
drv_fini(void)
{
    int		err;
    boolean_t	exist = B_FALSE;

    rw_enter(&dld_ap_hash_lock, RW_READER);
    mod_hash_walk(dld_ap_hashp, drv_ap_exist, &exist);
    rw_exit(&dld_ap_hash_lock);
    if (exist)
        return (EBUSY);

    if ((err = dld_str_fini()) != 0)
        return (err);

    drv_secobj_fini();
    mod_hash_destroy_idhash(dld_ap_hashp);
    rw_destroy(&dld_ap_hash_lock);
    return (0);
}