Lines Matching refs:inst

142 	varpd_instance_t *inst, lookup;  in libvarpd_instance_create()  local
156 inst = umem_alloc(sizeof (varpd_instance_t), UMEM_DEFAULT); in libvarpd_instance_create()
157 if (inst == NULL) in libvarpd_instance_create()
160 inst->vri_id = id_alloc(vip->vdi_idspace); in libvarpd_instance_create()
161 if (inst->vri_id == -1) in libvarpd_instance_create()
164 inst->vri_linkid = linkid; in libvarpd_instance_create()
165 inst->vri_vnetid = vid; in libvarpd_instance_create()
166 inst->vri_mode = plugin->vpp_mode; in libvarpd_instance_create()
167 inst->vri_dest = dest; in libvarpd_instance_create()
168 inst->vri_plugin = plugin; in libvarpd_instance_create()
169 inst->vri_impl = vip; in libvarpd_instance_create()
170 inst->vri_flags = 0; in libvarpd_instance_create()
171 if ((ret = plugin->vpp_ops->vpo_create((varpd_provider_handle_t *)inst, in libvarpd_instance_create()
172 &inst->vri_private, dest)) != 0) { in libvarpd_instance_create()
173 id_free(vip->vdi_idspace, inst->vri_id); in libvarpd_instance_create()
174 umem_free(inst, sizeof (varpd_instance_t)); in libvarpd_instance_create()
178 if (mutex_init(&inst->vri_lock, USYNC_THREAD | LOCK_ERRORCHECK, in libvarpd_instance_create()
183 lookup.vri_id = inst->vri_id; in libvarpd_instance_create()
187 avl_add(&vip->vdi_instances, inst); in libvarpd_instance_create()
188 lookup.vri_linkid = inst->vri_linkid; in libvarpd_instance_create()
192 avl_add(&vip->vdi_linstances, inst); in libvarpd_instance_create()
194 *outp = (varpd_instance_handle_t *)inst; in libvarpd_instance_create()
201 varpd_instance_t *inst = (varpd_instance_t *)ihp; in libvarpd_instance_id() local
202 return (inst->vri_id); in libvarpd_instance_id()
208 varpd_instance_t *inst = (varpd_instance_t *)vhp; in libvarpd_plugin_vnetid() local
209 return (inst->vri_vnetid); in libvarpd_plugin_vnetid()
249 varpd_instance_t *inst = (varpd_instance_t *)ihp; in libvarpd_instance_destroy() local
250 varpd_impl_t *vip = inst->vri_impl; in libvarpd_instance_destroy()
256 avl_remove(&vip->vdi_instances, inst); in libvarpd_instance_destroy()
257 avl_remove(&vip->vdi_linstances, inst); in libvarpd_instance_destroy()
260 mutex_enter(&inst->vri_lock); in libvarpd_instance_destroy()
267 if (inst->vri_flags & VARPD_INSTANCE_F_ACTIVATED) { in libvarpd_instance_destroy()
268 inst->vri_flags &= ~VARPD_INSTANCE_F_ACTIVATED; in libvarpd_instance_destroy()
269 libvarpd_torch_instance(vip, inst); in libvarpd_instance_destroy()
270 inst->vri_plugin->vpp_ops->vpo_stop(inst->vri_private); in libvarpd_instance_destroy()
271 inst->vri_plugin->vpp_ops->vpo_destroy(inst->vri_private); in libvarpd_instance_destroy()
272 inst->vri_private = NULL; in libvarpd_instance_destroy()
274 mutex_exit(&inst->vri_lock); in libvarpd_instance_destroy()
277 if (mutex_destroy(&inst->vri_lock) != 0) in libvarpd_instance_destroy()
279 id_free(vip->vdi_idspace, inst->vri_id); in libvarpd_instance_destroy()
280 umem_free(inst, sizeof (varpd_instance_t)); in libvarpd_instance_destroy()
287 varpd_instance_t *inst = (varpd_instance_t *)ihp; in libvarpd_instance_activate() local
289 mutex_enter(&inst->vri_lock); in libvarpd_instance_activate()
291 if (inst->vri_flags & VARPD_INSTANCE_F_ACTIVATED) { in libvarpd_instance_activate()
296 if ((ret = inst->vri_plugin->vpp_ops->vpo_start(inst->vri_private)) != in libvarpd_instance_activate()
300 if ((ret = libvarpd_persist_instance(inst->vri_impl, inst)) != 0) in libvarpd_instance_activate()
308 if ((ret = libvarpd_overlay_associate(inst)) != 0) in libvarpd_instance_activate()
311 inst->vri_flags |= VARPD_INSTANCE_F_ACTIVATED; in libvarpd_instance_activate()
314 mutex_exit(&inst->vri_lock); in libvarpd_instance_activate()