Lines Matching defs:pagep

78 	hermon_udbr_page_t *pagep;
85 pagep = kmem_alloc(sizeof (*pagep), KM_SLEEP);
86 pagep->upg_index = page;
87 pagep->upg_nfree = pagesize / sizeof (hermon_dbr_t);
90 pagep->upg_free = kmem_zalloc(pagesize / sizeof (hermon_dbr_t) / 8,
92 pagep->upg_kvaddr = ddi_umem_alloc(pagesize, DDI_UMEM_SLEEP,
93 &pagep->upg_umemcookie); /* not HERMON_PAGESIZE here */
95 pagep->upg_buf = ddi_umem_iosetup(pagep->upg_umemcookie, 0,
104 DDI_DMA_SLEEP, NULL, &pagep->upg_dmahdl);
110 status = ddi_dma_buf_bind_handle(pagep->upg_dmahdl,
111 pagep->upg_buf, DDI_DMA_RDWR | DDI_DMA_CONSISTENT,
112 DDI_DMA_SLEEP, NULL, &pagep->upg_dmacookie, &cookiecnt);
116 ddi_dma_free_handle(&pagep->upg_dmahdl);
124 (uint64_t)(uintptr_t)pagep);
126 return (pagep);
137 hermon_udbr_page_t *pagep;
154 pagep = udbr->udbr_pagep;
155 next_page = (pagep == NULL) ? 0 : (pagep->upg_index + 1);
156 while (pagep != NULL)
157 if (pagep->upg_nfree > 0)
160 pagep = pagep->upg_link;
161 if (pagep == NULL) {
162 pagep = hermon_dbr_new_user_page(state, index, next_page);
163 if (pagep == NULL) {
167 pagep->upg_link = udbr->udbr_pagep;
168 udbr->udbr_pagep = pagep;
177 if ((pagep->upg_free[i1] & mask) != mask)
179 u64 = pagep->upg_free[i1];
193 pagep->upg_free[i1] |= (1ul << (i3 + 8 * i2));
196 pagep->upg_nfree--;
197 ((uint64_t *)(void *)pagep->upg_kvaddr)[dbr_index] = 0; /* clear dbr */
198 *mapoffset = ((HERMON_DBR_KEY(index, pagep->upg_index) <<
200 *vdbr = (hermon_dbr_t *)((uint64_t *)(void *)pagep->upg_kvaddr +
202 *pdbr = pagep->upg_dmacookie.dmac_laddress + dbr_index *
213 hermon_udbr_page_t *pagep;
233 for (pagep = udbr->udbr_pagep; pagep != NULL; pagep = pagep->upg_link)
234 if (pagep->upg_kvaddr == kvaddr)
236 if (pagep == NULL) {
237 IBTF_DPRINTF_L2("hermon", "free user dbr: pagep struct not"
243 if (pagep->upg_nfree >= max_free) {
252 ASSERT((pagep->upg_free[i1] & (1ul << i2)) == (1ul << i2));
253 pagep->upg_free[i1] &= ~(1ul << i2);
254 pagep->upg_nfree++;
436 hermon_udbr_page_t *pagep, *nextp;
455 pagep = udbr->udbr_pagep;
456 while (pagep != NULL) {
458 (void) ddi_dma_unbind_handle(pagep->upg_dmahdl);
459 ddi_dma_free_handle(&pagep->upg_dmahdl);
460 freerbuf(pagep->upg_buf);
461 ddi_umem_free(pagep->upg_umemcookie);
464 pagep->upg_index), MLNX_UMAP_DBRMEM_RSRC,
468 kmem_free(pagep->upg_free,
470 nextp = pagep->upg_link;
471 kmem_free(pagep, sizeof (*pagep));
472 pagep = nextp;