Lines Matching defs:qa_info

2395 hermon_queue_alloc(hermon_state_t *state, hermon_qalloc_info_t *qa_info,
2403 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*qa_info))
2415 dma_attr.dma_attr_align = qa_info->qa_bind_align;
2424 &qa_info->qa_dmahdl);
2440 alloc_mask = qa_info->qa_alloc_align - 1;
2441 if (qa_info->qa_bind_align == qa_info->qa_alloc_align) {
2442 realsize = qa_info->qa_size;
2444 realsize = qa_info->qa_size + alloc_mask;
2456 if (qa_info->qa_location == HERMON_QUEUE_LOCATION_NORMAL) {
2458 status = ddi_dma_mem_alloc(qa_info->qa_dmahdl, realsize,
2460 (caddr_t *)&qa_info->qa_buf_real,
2461 (size_t *)&qa_info->qa_buf_realsz, &qa_info->qa_acchdl);
2463 ddi_dma_free_handle(&qa_info->qa_dmahdl);
2471 qa_info->qa_buf_aligned = qa_info->qa_buf_real;
2473 bzero(qa_info->qa_buf_real, qa_info->qa_buf_realsz);
2480 qa_info->qa_buf_real = ddi_umem_alloc(realsize, flag,
2481 &qa_info->qa_umemcookie);
2482 if (qa_info->qa_buf_real == NULL) {
2483 ddi_dma_free_handle(&qa_info->qa_dmahdl);
2491 qa_info->qa_buf_aligned = qa_info->qa_buf_real;
2500 if (qa_info->qa_bind_align != qa_info->qa_alloc_align) {
2501 qa_info->qa_buf_aligned = (uint32_t *)(uintptr_t)(((uintptr_t)
2502 qa_info->qa_buf_aligned + alloc_mask) & ~alloc_mask);
2509 qa_info->qa_pgoffs = (uint_t)((uintptr_t)
2510 qa_info->qa_buf_aligned & HERMON_PAGEOFFSET);
2521 hermon_queue_free(hermon_qalloc_info_t *qa_info)
2523 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*qa_info))
2530 if (qa_info->qa_location == HERMON_QUEUE_LOCATION_NORMAL) {
2532 ddi_dma_mem_free(&qa_info->qa_acchdl);
2534 } else if (qa_info->qa_location == HERMON_QUEUE_LOCATION_USERLAND) {
2536 ddi_umem_free(qa_info->qa_umemcookie);
2541 ddi_dma_free_handle(&qa_info->qa_dmahdl);