Lines Matching defs:mdescp
185 machine_descrip_t *mdescp;
188 mdescp = obs_machine_descrip_list;
190 while (mdescp != NULL) {
191 if (mdescp->gen == gen) {
193 return (mdescp);
195 mdescp = mdescp->next;
199 return (mdescp);
203 md_obs_list_remove(machine_descrip_t *mdescp)
211 if (obs_machine_descrip_list == mdescp) {
212 obs_machine_descrip_list = mdescp->next;
215 if (lmdescp->next == mdescp) {
216 lmdescp->next = mdescp->next;
217 mdescp->next = NULL;
228 md_obs_list_add(machine_descrip_t *mdescp)
232 mdescp->next = obs_machine_descrip_list;
233 obs_machine_descrip_list = mdescp;
245 machine_descrip_t *mdescp;
247 mdescp = (machine_descrip_t *)(*curr_mach_descrip_memops->meta_allocp)
249 if (mdescp != NULL) {
250 bzero(mdescp, sizeof (*mdescp));
251 mdescp->memops = curr_mach_descrip_memops;
252 mutex_init(&mdescp->lock, NULL, MUTEX_DRIVER, NULL);
255 return (mdescp);
263 destroy_machine_descrip(machine_descrip_t *mdescp)
267 ASSERT((mdescp != NULL));
269 mdesc_memopsp = mdescp->memops;
270 if (mdescp->memops == NULL)
273 (*mdesc_memopsp->buf_freep)(mdescp->va, mdescp->space);
274 mutex_destroy(&mdescp->lock);
275 (*mdesc_memopsp->meta_freep)(mdescp, sizeof (*mdescp));
605 machine_descrip_t *mdescp;
628 mdescp = md_obs_list_look_up_by_gen(mdp->gen);
629 if (mdescp == NULL)
632 mutex_enter(&mdescp->lock);
633 mdescp->refcnt--;
634 if (mdescp->refcnt == 0) {
635 md_obs_list_remove(mdescp);
636 mutex_exit(&mdescp->lock);
637 destroy_machine_descrip(mdescp);
640 mutex_exit(&mdescp->lock);