/* * Look to see if we've already got a module loaded for a CPU just * like this one. If we do, then we'll re-use it. */ static cms_t * cms_search_list(cmi_hdl_t hdl, int match) { cmi_hdl_t dhdl = NULL; cms_t *cms = NULL; ASSERT(MUTEX_HELD(&cms_load_lock)); cmi_hdl_walk(cms_search_list_cb, (void *)hdl, (void *)&match, &dhdl); if (dhdl) { cms = HDL2CMS(dhdl); cmi_hdl_rele(dhdl); /* held in cms_search_list_cb */ } return (cms); }
static void gcpu_xpv_mch_poll(void *arg) { cmi_hdl_t hdl = cmi_hdl_any(); if (hdl != NULL) { cmi_mc_logout(hdl, 0, 0); cmi_hdl_rele(hdl); } if (arg == GCPU_XPV_MCH_POLL_REARM && gcpu_xpv_mch_poll_interval_secs != 0) { gcpu_xpv_mch_poll_timeoutid = timeout(gcpu_xpv_mch_poll, GCPU_XPV_MCH_POLL_REARM, drv_usectohz(gcpu_xpv_mch_poll_interval_secs * MICROSEC)); } }