Lines Matching defs:mhdl

195 	ldc_mhdl_t	*mhdl;
216 mhdl = kmem_cache_alloc(ldcssp->memhdl_cache, KM_SLEEP);
219 mutex_init(&mhdl->lock, NULL, MUTEX_DRIVER, NULL);
221 mhdl->myshadow = B_FALSE;
222 mhdl->memseg = NULL;
223 mhdl->ldcp = ldcp;
224 mhdl->status = LDC_UNBOUND;
228 ldcp->mhdl_list = mhdl;
229 mhdl->next = NULL;
232 mhdl->next = ldcp->mhdl_list;
233 ldcp->mhdl_list = mhdl;
237 *mhandle = (ldc_mem_handle_t)mhdl;
242 ldcp->id, mhdl);
253 ldc_mhdl_t *mhdl, *phdl;
261 mhdl = (ldc_mhdl_t *)mhandle;
263 mutex_enter(&mhdl->lock);
265 ldcp = mhdl->ldcp;
267 if (mhdl->status == LDC_BOUND || mhdl->status == LDC_MAPPED) {
270 mhdl);
271 mutex_exit(&mhdl->lock);
274 mutex_exit(&mhdl->lock);
281 if (phdl == mhdl) {
282 ldcp->mhdl_list = mhdl->next;
283 mutex_destroy(&mhdl->lock);
284 kmem_cache_free(ldcssp->memhdl_cache, mhdl);
288 ldcp->id, mhdl);
292 if (phdl->next == mhdl) {
293 phdl->next = mhdl->next;
294 mutex_destroy(&mhdl->lock);
295 kmem_cache_free(ldcssp->memhdl_cache, mhdl);
298 "handle 0x%llx\n", ldcp->id, mhdl);
307 "ldc_mem_free_handle: invalid handle 0x%llx\n", mhdl);
348 ldc_mhdl_t *mhdl;
367 mhdl = (ldc_mhdl_t *)mhandle;
368 ldcp = mhdl->ldcp;
373 mutex_enter(&mhdl->lock);
375 if (mhdl->status == LDC_BOUND || mhdl->memseg != NULL) {
379 mutex_exit(&mhdl->lock);
387 mutex_exit(&mhdl->lock);
442 mutex_exit(&mhdl->lock);
483 mutex_exit(&mhdl->lock);
488 memseg = mhdl->memseg =
562 mutex_exit(&mhdl->lock);
641 mhdl->mtype = mtype;
642 mhdl->perm = perm;
643 mhdl->status = LDC_BOUND;
661 ldcp->id, mhdl, vaddr, npages, memseg->ncookies);
663 mutex_exit(&mhdl->lock);
673 ldc_mhdl_t *mhdl;
682 mhdl = (ldc_mhdl_t *)mhandle;
684 mutex_enter(&mhdl->lock);
686 ldcp = mhdl->ldcp;
687 memseg = mhdl->memseg;
693 mutex_exit(&mhdl->lock);
709 mutex_exit(&mhdl->lock);
717 mutex_exit(&mhdl->lock);
729 ldc_mhdl_t *mhdl;
742 mhdl = (ldc_mhdl_t *)mhandle;
744 mutex_enter(&mhdl->lock);
746 if (mhdl->status == LDC_UNBOUND) {
750 mutex_exit(&mhdl->lock);
754 ldcp = mhdl->ldcp;
757 memseg = mhdl->memseg;
811 mhdl->memseg = NULL;
812 mhdl->status = LDC_UNBOUND;
815 ldcp->id, mhdl);
817 mutex_exit(&mhdl->lock);
828 ldc_mhdl_t *mhdl;
834 mhdl = (ldc_mhdl_t *)mhandle;
841 mutex_enter(&mhdl->lock);
843 minfo->status = mhdl->status;
844 if (mhdl->status == LDC_BOUND || mhdl->status == LDC_MAPPED) {
845 minfo->vaddr = mhdl->memseg->vaddr;
846 minfo->raddr = mhdl->memseg->raddr;
847 minfo->mtype = mhdl->mtype;
848 minfo->perm = mhdl->perm;
850 mutex_exit(&mhdl->lock);
1263 ldc_mhdl_t *mhdl;
1276 mhdl = (ldc_mhdl_t *)mhandle;
1278 mutex_enter(&mhdl->lock);
1280 if (mhdl->status == LDC_BOUND || mhdl->status == LDC_MAPPED ||
1281 mhdl->memseg != NULL) {
1284 mutex_exit(&mhdl->lock);
1288 ldcp = mhdl->ldcp;
1297 mutex_exit(&mhdl->lock);
1304 mutex_exit(&mhdl->lock);
1325 memseg = mhdl->memseg =
1357 mutex_exit(&mhdl->lock);
1462 mhdl->myshadow = B_TRUE;
1493 mhdl->mtype = mtype;
1494 mhdl->perm = perm;
1495 mhdl->status = LDC_MAPPED;
1499 ldcp->id, mhdl, memseg->raddr, memseg->vaddr,
1510 mutex_exit(&mhdl->lock);
1521 ldc_mhdl_t *mhdl = (ldc_mhdl_t *)mhandle;
1525 if (mhdl == 0 || mhdl->status != LDC_MAPPED) {
1532 mutex_enter(&mhdl->lock);
1534 ldcp = mhdl->ldcp;
1535 memseg = mhdl->memseg;
1538 ldcp->id, mhdl);
1541 if (mhdl->mtype == LDC_SHADOW_MAP && mhdl->myshadow) {
1543 } else if (mhdl->mtype == LDC_DIRECT_MAP) {
1568 mhdl->memseg = NULL;
1569 mhdl->status = LDC_UNBOUND;
1572 ldcp->id, mhdl);
1574 mutex_exit(&mhdl->lock);
1590 ldc_mhdl_t *mhdl;
1601 mhdl = (ldc_mhdl_t *)mhandle;
1603 mutex_enter(&mhdl->lock);
1605 if (mhdl->status != LDC_MAPPED || mhdl->ldcp == NULL) {
1608 mutex_exit(&mhdl->lock);
1613 if (mhdl->mtype == LDC_DIRECT_MAP) {
1614 mutex_exit(&mhdl->lock);
1619 if ((direction == LDC_COPY_IN && (mhdl->perm & LDC_MEM_R) == 0) ||
1620 (direction == LDC_COPY_OUT && (mhdl->perm & LDC_MEM_W) == 0)) {
1621 mutex_exit(&mhdl->lock);
1625 if (offset >= mhdl->memseg->size ||
1626 (offset + size) > mhdl->memseg->size) {
1629 mutex_exit(&mhdl->lock);
1634 ldcp = mhdl->ldcp;
1635 memseg = mhdl->memseg;
1637 if (mhdl->mtype == LDC_SHADOW_MAP) {
1649 mutex_exit(&mhdl->lock);
1654 mutex_exit(&mhdl->lock);
1895 dringp->mhdl = mhandle;
1917 dringp->mhdl = NULL;
1973 rv = ldc_mem_nextcookie((ldc_mem_handle_t)dringp->mhdl, cookie);
2034 (void) ldc_mem_unbind_handle((ldc_mem_handle_t)dringp->mhdl);
2035 (void) ldc_mem_free_handle((ldc_mem_handle_t)dringp->mhdl);
2038 dringp->mhdl = NULL;
2051 ldc_mhdl_t *mhdl;
2069 if ((mhdl = (ldc_mhdl_t *)dp->mhdl) == NULL)
2072 if ((memseg = mhdl->memseg) == NULL)
2136 if (dringp->mhdl) {
2137 rv = ldc_mem_info(dringp->mhdl, minfo);
2245 dringp->mhdl = mhandle;
2331 (void) ldc_mem_unmap(dringp->mhdl);
2332 (void) ldc_mem_free_handle((ldc_mem_handle_t)dringp->mhdl);
2362 ldc_mhdl_t *mhdl;
2388 mhdl = (ldc_mhdl_t *)dringp->mhdl;
2389 if (mhdl == NULL) {
2396 if (mhdl->mtype != LDC_SHADOW_MAP) {
2399 mhdl->mtype);
2416 err = i_ldc_mem_acquire_release((ldc_mem_handle_t)dringp->mhdl,
2433 err = i_ldc_mem_acquire_release((ldc_mem_handle_t)dringp->mhdl,