qinv
qinv_t *qinv;
qinv = (qinv_t *)immu->immu_qinv;
qinv_table = &(qinv->qinv_table);
qinv_t *qinv;
qinv = kmem_zalloc(sizeof (qinv_t), KM_SLEEP);
&(qinv->qinv_table.qinv_mem_dma_hdl)) != DDI_SUCCESS) {
&(qinv->qinv_sync.qinv_mem_dma_hdl)) != DDI_SUCCESS) {
qinv->qinv_table.qinv_mem_size = (1 << (qinv_iqa_qs + 8));
size = qinv->qinv_table.qinv_mem_size * QINV_ENTRY_SIZE;
if (ddi_dma_mem_alloc(qinv->qinv_table.qinv_mem_dma_hdl,
&(qinv->qinv_table.qinv_mem_vaddr),
&(qinv->qinv_table.qinv_mem_acc_hdl)) != DDI_SUCCESS) {
ASSERT(!((uintptr_t)qinv->qinv_table.qinv_mem_vaddr & MMU_PAGEOFFSET));
bzero(qinv->qinv_table.qinv_mem_vaddr, size);
qinv->qinv_table.qinv_mem_paddr = pfn_to_pa(
hat_getpfnum(kas.a_hat, qinv->qinv_table.qinv_mem_vaddr));
qinv->qinv_table.qinv_mem_head = qinv->qinv_table.qinv_mem_tail = 0;
qinv->qinv_sync.qinv_mem_size = qinv->qinv_table.qinv_mem_size;
size = qinv->qinv_sync.qinv_mem_size * QINV_SYNC_DATA_SIZE;
if (ddi_dma_mem_alloc(qinv->qinv_sync.qinv_mem_dma_hdl,
&(qinv->qinv_sync.qinv_mem_vaddr),
&(qinv->qinv_sync.qinv_mem_acc_hdl)) != DDI_SUCCESS) {
ASSERT(!((uintptr_t)qinv->qinv_sync.qinv_mem_vaddr & MMU_PAGEOFFSET));
bzero(qinv->qinv_sync.qinv_mem_vaddr, size);
qinv->qinv_sync.qinv_mem_paddr = pfn_to_pa(
hat_getpfnum(kas.a_hat, qinv->qinv_sync.qinv_mem_vaddr));
qinv->qinv_sync.qinv_mem_head = qinv->qinv_sync.qinv_mem_tail = 0;
mutex_init(&(qinv->qinv_table.qinv_mem_lock), NULL, MUTEX_DRIVER, NULL);
mutex_init(&(qinv->qinv_sync.qinv_mem_lock), NULL, MUTEX_DRIVER, NULL);
immu->immu_qinv = qinv;
ddi_dma_mem_free(&(qinv->qinv_table.qinv_mem_acc_hdl));
ddi_dma_free_handle(&(qinv->qinv_sync.qinv_mem_dma_hdl));
ddi_dma_free_handle(&(qinv->qinv_table.qinv_mem_dma_hdl));
kmem_free(qinv, sizeof (qinv_t));
qinv_t *qinv;
qinv = (qinv_t *)immu->immu_qinv;
qinv_reg_value = qinv->qinv_table.qinv_mem_paddr | qinv_iqa_qs;
qinv_t *qinv;
qinv = (qinv_t *)(immu->immu_qinv);
dsc = (qinv_dsc_t *)(qinv->qinv_table.qinv_mem_vaddr