Lines Matching defs:mbox_info

287 hermon_mbox_alloc(hermon_state_t *state, hermon_mbox_info_t *mbox_info,
296 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_INMBOX) {
301 &mbox_info->mbi_in, mbox_wait);
307 &state->hs_in_mblist, &mbox_info->mbi_in,
317 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_OUTMBOX) {
322 &mbox_info->mbi_out, mbox_wait);
328 &state->hs_out_mblist, &mbox_info->mbi_out,
332 if (mbox_info->mbi_alloc_flags &
336 &mbox_info->mbi_in);
343 /* Store appropriate context in mbox_info */
344 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(mbox_info->mbi_sleep_context))
345 mbox_info->mbi_sleep_context = sleep_context;
356 hermon_mbox_free(hermon_state_t *state, hermon_mbox_info_t *mbox_info)
360 * allocated. The context is stored in the mbox_info at
364 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(mbox_info->mbi_sleep_context))
365 ASSERT(mbox_info->mbi_sleep_context == HERMON_SLEEPFLAG_FOR_CONTEXT());
368 if (mbox_info->mbi_sleep_context == HERMON_NOSLEEP) {
370 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_INMBOX) {
372 &mbox_info->mbi_in);
376 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_OUTMBOX) {
378 &mbox_info->mbi_out);
382 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_INMBOX) {
384 &mbox_info->mbi_in);
388 if (mbox_info->mbi_alloc_flags & HERMON_ALLOC_OUTMBOX) {
390 &mbox_info->mbi_out);
1327 hermon_mbox_info_t mbox_info;
1339 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
1340 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
1349 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1350 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
1354 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1357 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1366 hermon_mbox_free(state, &mbox_info);
1409 hermon_mbox_info_t mbox_info;
1418 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
1419 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
1428 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1429 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
1433 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1436 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1445 hermon_mbox_free(state, &mbox_info);
1513 hermon_mbox_info_t mbox_info;
1531 mbox_info.mbi_alloc_flags = HERMON_ALLOC_OUTMBOX;
1532 status = hermon_mbox_alloc(state, &mbox_info, HERMON_NOSLEEP);
1560 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1561 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
1565 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1568 cmd.cp_inparm = mbox_info.mbi_out->mb_mapaddr;
1580 hermon_mbox_free(state, &mbox_info);
1596 hermon_mbox_info_t mbox_info;
1612 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
1613 status = hermon_mbox_alloc(state, &mbox_info, HERMON_SLEEP);
1693 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1694 ((uint64_t *)mbox_info.mbi_in->mb_addr + k),
1706 hermon_mbox_sync(mbox_info.mbi_in, 0, (size *
1710 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1740 hermon_mbox_sync(mbox_info.mbi_in, 0, (size * num_vpm_entries),
1744 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1760 hermon_mbox_free(state, &mbox_info);
1925 hermon_mbox_info_t mbox_info;
1933 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
1934 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
1941 bcopy(mad, mbox_info.mbi_in->mb_addr, size);
1944 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1947 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1948 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
1959 hermon_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
1962 bcopy(mbox_info.mbi_out->mb_addr, resp, size);
1966 hermon_mbox_free(state, &mbox_info);
1979 hermon_mbox_info_t mbox_info;
1988 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
1989 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
1996 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
1997 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_MADHDR0);
1998 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
1999 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2000 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2001 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_PORTINFO);
2002 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], port);
2004 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2008 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2011 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2012 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2024 hermon_mbox_sync(mbox_info.mbi_out, HERMON_CMD_MADDATA_OFFSET,
2032 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2039 hermon_mbox_free(state, &mbox_info);
2053 hermon_mbox_info_t mbox_info;
2062 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2063 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2069 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2071 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_PERF_GET);
2072 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2073 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2074 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2075 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4],
2077 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], HERMON_CMD_PERFATTR);
2080 hermon_mbox_sync(mbox_info.mbi_in, 0, HERMON_CMD_MAD_IFC_SIZE,
2084 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2085 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2097 hermon_mbox_sync(mbox_info.mbi_out, 0, HERMON_CMD_MAD_IFC_SIZE,
2104 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2105 ((uint64_t *)mbox_info.mbi_out->mb_addr + 8));
2111 hermon_mbox_free(state, &mbox_info);
2125 hermon_mbox_info_t mbox_info;
2134 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2135 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2141 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2143 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_PERF_GET);
2144 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2145 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2146 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2147 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4],
2149 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], HERMON_CMD_PERFATTR);
2150 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[16], (port << 16));
2153 hermon_mbox_sync(mbox_info.mbi_in, 0, HERMON_CMD_MAD_IFC_SIZE,
2157 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2158 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2170 hermon_mbox_sync(mbox_info.mbi_out, 0, HERMON_CMD_MAD_IFC_SIZE,
2178 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2179 ((uint64_t *)mbox_info.mbi_out->mb_addr + i + 8));
2185 hermon_mbox_free(state, &mbox_info);
2201 hermon_mbox_info_t mbox_info;
2211 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2212 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2219 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2222 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0],
2225 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0],
2228 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2229 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2230 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2231 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_PERFCNTRS);
2232 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], HERMON_CMD_PERFATTR);
2236 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[16],
2239 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[22], 0);
2240 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[23], 0);
2241 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[24], 0);
2242 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[25], 0);
2244 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[16], (port << 16));
2247 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2250 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2251 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2264 hermon_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
2275 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2276 ((uint64_t *)mbox_info.mbi_out->mb_addr + i + 8));
2283 hermon_mbox_free(state, &mbox_info);
2298 hermon_mbox_info_t mbox_info;
2310 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2311 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2318 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2319 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_MADHDR0);
2320 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2321 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2322 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2323 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_NODEINFO);
2325 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2329 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2332 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2333 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2345 hermon_mbox_sync(mbox_info.mbi_out, HERMON_CMD_MADDATA_OFFSET,
2353 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2360 hermon_mbox_free(state, &mbox_info);
2374 hermon_mbox_info_t mbox_info;
2383 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2384 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2391 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2392 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_MADHDR0);
2393 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2394 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2395 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2396 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_NODEDESC);
2398 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2402 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2405 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2406 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2418 hermon_mbox_sync(mbox_info.mbi_out, HERMON_CMD_MADDATA_OFFSET,
2422 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2427 hermon_mbox_free(state, &mbox_info);
2440 hermon_mbox_info_t mbox_info;
2449 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2450 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2457 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2458 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_MADHDR0);
2459 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2460 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2461 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2462 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_GUIDINFO);
2463 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], guidblock);
2465 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2469 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2472 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2473 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2485 hermon_mbox_sync(mbox_info.mbi_out, HERMON_CMD_MADDATA_OFFSET,
2492 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2499 hermon_mbox_free(state, &mbox_info);
2512 hermon_mbox_info_t mbox_info;
2521 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX | HERMON_ALLOC_OUTMBOX;
2522 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2529 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2530 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], HERMON_CMD_MADHDR0);
2531 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], HERMON_CMD_MADHDR1);
2532 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], HERMON_CMD_MADHDR2);
2533 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], HERMON_CMD_MADHDR3);
2534 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], HERMON_CMD_PKEYTBLE);
2535 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], pkeyblock);
2537 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2541 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2544 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2545 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2557 hermon_mbox_sync(mbox_info.mbi_out, HERMON_CMD_MADDATA_OFFSET,
2564 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2571 hermon_mbox_free(state, &mbox_info);
2584 hermon_mbox_info_t mbox_info;
2594 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
2595 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2606 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2607 ((uint64_t *)mbox_info.mbi_in->mb_addr),
2610 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2611 ((uint64_t *)mbox_info.mbi_in->mb_addr + 1), 0x0);
2615 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2616 ((uint64_t *)mbox_info.mbi_in->mb_addr + i + 2), data);
2621 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2624 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2636 hermon_mbox_free(state, &mbox_info);
2702 hermon_mbox_info_t mbox_info;
2711 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
2712 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2721 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2722 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
2726 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2729 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2744 hermon_mbox_free(state, &mbox_info);
2757 hermon_mbox_info_t mbox_info;
2766 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
2767 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2776 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2777 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
2781 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2784 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2793 hermon_mbox_free(state, &mbox_info);
2817 hermon_mbox_info_t mbox_info;
2883 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
2884 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2888 in_mapaddr = mbox_info.mbi_in->mb_mapaddr;
2897 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2898 ((uint64_t *)mbox_info.mbi_in->mb_addr + i + 1),
2901 ddi_put32(mbox_info.mbi_in->mb_acchdl,
2902 ((uint32_t *)mbox_info.mbi_in->mb_addr), opmask);
2909 hermon_mbox_sync(mbox_info.mbi_in, 0, size + 8,
2929 hermon_mbox_free(state, &mbox_info);
2952 hermon_mbox_info_t mbox_info;
2961 mbox_info.mbi_alloc_flags = HERMON_ALLOC_OUTMBOX;
2962 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
2969 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2980 hermon_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
2991 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2992 ((uint64_t *)mbox_info.mbi_out->mb_addr + i + offset));
2998 hermon_mbox_free(state, &mbox_info);
3023 hermon_mbox_info_t mbox_info;
3072 mbox_info.mbi_alloc_flags = HERMON_ALLOC_OUTMBOX;
3073 status = hermon_mbox_alloc(state, &mbox_info,
3079 out_mapaddr = mbox_info.mbi_out->mb_mapaddr;
3087 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3088 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3096 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3097 ((uint64_t *)mbox_info.mbi_in->mb_addr + i),
3102 hermon_mbox_sync(mbox_info.mbi_in, 0, size,
3105 in_mapaddr = mbox_info.mbi_in->mb_mapaddr;
3130 hermon_mbox_sync(mbox_info.mbi_out, 0, size,
3135 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
3136 ((uint64_t *)mbox_info.mbi_out->mb_addr + i));
3144 hermon_mbox_free(state, &mbox_info);
3215 hermon_mbox_info_t mbox_info;
3222 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3223 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3229 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3230 ((uint64_t *)mbox_info.mbi_in->mb_addr + 0), mgid_h);
3231 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3232 ((uint64_t *)mbox_info.mbi_in->mb_addr + 1), mgid_l);
3235 hermon_mbox_sync(mbox_info.mbi_in, 0, HERMON_CMD_MGIDHASH_SZ,
3239 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3251 hermon_mbox_free(state, &mbox_info);
3269 hermon_mbox_info_t mbox_info;
3279 mbox_info.mbi_alloc_flags = HERMON_ALLOC_OUTMBOX;
3280 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3287 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
3299 hermon_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
3304 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
3305 ((uint64_t *)mbox_info.mbi_out->mb_addr + i));
3310 data32 = ddi_get32(mbox_info.mbi_out->mb_acchdl,
3311 ((uint32_t *)mbox_info.mbi_out->mb_addr + i + 8));
3317 hermon_mbox_free(state, &mbox_info);
3335 hermon_mbox_info_t mbox_info;
3344 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3345 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3355 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3356 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
3361 ddi_put32(mbox_info.mbi_in->mb_acchdl,
3362 ((uint32_t *)mbox_info.mbi_in->mb_addr + i + 8), data);
3366 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
3369 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3378 hermon_mbox_free(state, &mbox_info);
3390 hermon_mbox_info_t mbox_info;
3399 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3400 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3409 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3410 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
3414 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
3417 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3426 hermon_mbox_free(state, &mbox_info);
3437 hermon_mbox_info_t mbox_info;
3446 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3447 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3456 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3457 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
3461 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
3464 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3473 hermon_mbox_free(state, &mbox_info);
3490 hermon_mbox_info_t mbox_info;
3500 mbox_info.mbi_alloc_flags = HERMON_ALLOC_INMBOX;
3501 status = hermon_mbox_alloc(state, &mbox_info, sleepflag);
3511 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3512 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
3530 ddi_put64(mbox_info.mbi_in->mb_acchdl,
3531 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
3536 hermon_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
3539 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3548 hermon_mbox_free(state, &mbox_info);
3673 hermon_mbox_info_t mbox_info;
3681 mbox_info.mbi_alloc_flags = HERMON_ALLOC_OUTMBOX;
3682 status = hermon_mbox_alloc(state, &mbox_info, HERMON_CMD_SLEEP_NOSPIN);
3689 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
3701 hermon_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
3705 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
3706 ((uint64_t *)mbox_info.mbi_out->mb_addr + i));
3711 hermon_mbox_free(state, &mbox_info);