Lines Matching defs:dringp

1688 	ldc_dring_t *dringp;
1713 dringp = kmem_zalloc(sizeof (ldc_dring_t), KM_SLEEP);
1716 dringp->length = len;
1717 dringp->dsize = dsize;
1720 dringp->size = (size & MMU_PAGEMASK);
1722 dringp->size += MMU_PAGESIZE;
1724 dringp->status = LDC_UNBOUND;
1727 dringp->base = kmem_zalloc(dringp->size, KM_SLEEP);
1730 mutex_init(&dringp->lock, NULL, MUTEX_DRIVER, NULL);
1734 dringp->next = ldcssp->dring_list;
1735 ldcssp->dring_list = dringp;
1738 *dhandle = (ldc_dring_handle_t)dringp;
1752 ldc_dring_t *dringp;
1762 dringp = (ldc_dring_t *)dhandle;
1764 if (dringp->status == LDC_BOUND) {
1770 mutex_enter(&dringp->lock);
1775 if (tmp_dringp == dringp) {
1776 ldcssp->dring_list = dringp->next;
1777 dringp->next = NULL;
1781 if (tmp_dringp->next == dringp) {
1782 tmp_dringp->next = dringp->next;
1783 dringp->next = NULL;
1792 mutex_exit(&dringp->lock);
1800 kmem_free(dringp->base, dringp->size);
1802 mutex_exit(&dringp->lock);
1805 mutex_destroy(&dringp->lock);
1808 kmem_free(dringp, sizeof (ldc_dring_t));
1826 ldc_dring_t *dringp;
1842 dringp = (ldc_dring_t *)dhandle;
1861 mutex_enter(&dringp->lock);
1863 if (dringp->status == LDC_BOUND) {
1867 mutex_exit(&dringp->lock);
1874 mutex_exit(&dringp->lock);
1880 mutex_exit(&dringp->lock);
1884 dringp->ldcp = ldcp;
1892 mutex_exit(&dringp->lock);
1895 dringp->mhdl = mhandle;
1898 err = i_ldc_mem_bind_handle(mhandle, dringp->base, dringp->size,
1904 mutex_exit(&dringp->lock);
1916 dringp->ldcp = NULL;
1917 dringp->mhdl = NULL;
1920 mutex_exit(&dringp->lock);
1926 dringp->ch_next = ldcp->exp_dring_list;
1927 ldcp->exp_dring_list = dringp;
1930 dringp->status = LDC_BOUND;
1932 mutex_exit(&dringp->lock);
1944 ldc_dring_t *dringp;
1952 dringp = (ldc_dring_t *)dhandle;
1953 mutex_enter(&dringp->lock);
1955 if (dringp->status != LDC_BOUND) {
1958 "is not bound\n", dringp);
1959 mutex_exit(&dringp->lock);
1963 ldcp = dringp->ldcp;
1969 mutex_exit(&dringp->lock);
1973 rv = ldc_mem_nextcookie((ldc_mem_handle_t)dringp->mhdl, cookie);
1974 mutex_exit(&dringp->lock);
1985 ldc_dring_t *dringp;
1994 dringp = (ldc_dring_t *)dhandle;
1996 mutex_enter(&dringp->lock);
1998 if (dringp->status == LDC_UNBOUND) {
2001 dringp);
2002 mutex_exit(&dringp->lock);
2005 ldcp = dringp->ldcp;
2010 if (tmp_dringp == dringp) {
2011 ldcp->exp_dring_list = dringp->ch_next;
2012 dringp->ch_next = NULL;
2016 if (tmp_dringp->ch_next == dringp) {
2017 tmp_dringp->ch_next = dringp->ch_next;
2018 dringp->ch_next = NULL;
2027 mutex_exit(&dringp->lock);
2034 (void) ldc_mem_unbind_handle((ldc_mem_handle_t)dringp->mhdl);
2035 (void) ldc_mem_free_handle((ldc_mem_handle_t)dringp->mhdl);
2037 dringp->ldcp = NULL;
2038 dringp->mhdl = NULL;
2039 dringp->status = LDC_UNBOUND;
2041 mutex_exit(&dringp->lock);
2124 ldc_dring_t *dringp;
2132 dringp = (ldc_dring_t *)dhandle;
2134 mutex_enter(&dringp->lock);
2136 if (dringp->mhdl) {
2137 rv = ldc_mem_info(dringp->mhdl, minfo);
2141 mutex_exit(&dringp->lock);
2145 minfo->vaddr = dringp->base;
2147 minfo->status = dringp->status;
2150 mutex_exit(&dringp->lock);
2169 ldc_dring_t *dringp;
2217 dringp = kmem_zalloc(sizeof (ldc_dring_t), KM_SLEEP);
2224 dringp->length = len;
2225 dringp->dsize = dsize;
2229 dringp->size = (dring_size & MMU_PAGEMASK);
2231 dringp->size += MMU_PAGESIZE;
2233 dringp->ldcp = ldcp;
2241 kmem_free(dringp, sizeof (ldc_dring_t));
2245 dringp->mhdl = mhandle;
2246 dringp->base = NULL;
2250 &(dringp->base), NULL);
2251 if (err || dringp->base == NULL) {
2255 kmem_free(dringp, sizeof (ldc_dring_t));
2260 mutex_init(&dringp->lock, NULL, MUTEX_DRIVER, NULL);
2264 dringp->ch_next = ldcp->imp_dring_list;
2265 ldcp->imp_dring_list = dringp;
2268 dringp->status = LDC_MAPPED;
2270 *dhandle = (ldc_dring_handle_t)dringp;
2281 ldc_dring_t *dringp;
2290 dringp = (ldc_dring_t *)dhandle;
2292 if (dringp->status != LDC_MAPPED) {
2298 mutex_enter(&dringp->lock);
2300 ldcp = dringp->ldcp;
2306 if (tmp_dringp == dringp) {
2307 ldcp->imp_dring_list = dringp->ch_next;
2308 dringp->ch_next = NULL;
2312 if (tmp_dringp->ch_next == dringp) {
2313 tmp_dringp->ch_next = dringp->ch_next;
2314 dringp->ch_next = NULL;
2323 mutex_exit(&dringp->lock);
2331 (void) ldc_mem_unmap(dringp->mhdl);
2332 (void) ldc_mem_free_handle((ldc_mem_handle_t)dringp->mhdl);
2334 dringp->status = 0;
2335 dringp->ldcp = NULL;
2337 mutex_exit(&dringp->lock);
2340 mutex_destroy(&dringp->lock);
2343 kmem_free(dringp, sizeof (ldc_dring_t));
2360 ldc_dring_t *dringp;
2371 dringp = (ldc_dring_t *)dhandle;
2372 mutex_enter(&dringp->lock);
2374 if (dringp->status != LDC_MAPPED || dringp->ldcp == NULL) {
2377 mutex_exit(&dringp->lock);
2381 if (start >= dringp->length || end >= dringp->length) {
2384 mutex_exit(&dringp->lock);
2388 mhdl = (ldc_mhdl_t *)dringp->mhdl;
2392 mutex_exit(&dringp->lock);
2400 mutex_exit(&dringp->lock);
2405 ldcp = dringp->ldcp;
2407 copy_size = (start <= end) ? (((end - start) + 1) * dringp->dsize) :
2408 ((dringp->length - start) * dringp->dsize);
2411 soff = (start * dringp->dsize);
2416 err = i_ldc_mem_acquire_release((ldc_mem_handle_t)dringp->mhdl,
2421 mutex_exit(&dringp->lock);
2427 copy_size = ((end + 1) * dringp->dsize);
2433 err = i_ldc_mem_acquire_release((ldc_mem_handle_t)dringp->mhdl,
2438 mutex_exit(&dringp->lock);
2443 mutex_exit(&dringp->lock);