Lines Matching defs:mbox_info

193 tavor_mbox_alloc(tavor_state_t *state, tavor_mbox_info_t *mbox_info,
204 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_INMBOX) {
209 &mbox_info->mbi_in, mbox_wait);
215 &state->ts_in_mblist, &mbox_info->mbi_in,
226 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_OUTMBOX) {
231 &mbox_info->mbi_out, mbox_wait);
237 &state->ts_out_mblist, &mbox_info->mbi_out,
241 if (mbox_info->mbi_alloc_flags &
245 &mbox_info->mbi_in);
253 /* Store appropriate context in mbox_info */
254 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(mbox_info->mbi_sleep_context))
255 mbox_info->mbi_sleep_context = sleep_context;
267 tavor_mbox_free(tavor_state_t *state, tavor_mbox_info_t *mbox_info)
273 * allocated. The context is stored in the mbox_info at
277 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(mbox_info->mbi_sleep_context))
278 ASSERT(mbox_info->mbi_sleep_context == TAVOR_SLEEPFLAG_FOR_CONTEXT());
281 if (mbox_info->mbi_sleep_context == TAVOR_NOSLEEP) {
283 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_INMBOX) {
285 &mbox_info->mbi_in);
289 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_OUTMBOX) {
291 &mbox_info->mbi_out);
295 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_INMBOX) {
297 &mbox_info->mbi_in);
301 if (mbox_info->mbi_alloc_flags & TAVOR_ALLOC_OUTMBOX) {
303 &mbox_info->mbi_out);
1368 tavor_mbox_info_t mbox_info;
1380 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
1381 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1392 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1393 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
1397 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1400 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1413 tavor_mbox_free(state, &mbox_info);
1463 tavor_mbox_info_t mbox_info;
1475 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
1476 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1487 ddi_put64(mbox_info.mbi_in->mb_acchdl,
1488 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
1492 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1495 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1508 tavor_mbox_free(state, &mbox_info);
1553 tavor_mbox_info_t mbox_info;
1560 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
1561 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1569 ddi_put32(mbox_info.mbi_in->mb_acchdl,
1570 ((uint32_t *)mbox_info.mbi_in->mb_addr + 0), reset_qkey);
1571 ddi_put32(mbox_info.mbi_in->mb_acchdl,
1572 ((uint32_t *)mbox_info.mbi_in->mb_addr + 1), capmask);
1575 tavor_mbox_sync(mbox_info.mbi_in, 0, TAVOR_CMD_SETIB_SZ,
1579 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1591 tavor_mbox_free(state, &mbox_info);
1605 tavor_mbox_info_t mbox_info;
1622 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_OUTMBOX;
1623 status = tavor_mbox_alloc(state, &mbox_info, TAVOR_NOSLEEP);
1652 ddi_put64(mbox_info.mbi_out->mb_acchdl,
1653 ((uint64_t *)mbox_info.mbi_out->mb_addr + i), data);
1657 tavor_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORDEV);
1660 cmd.cp_inparm = mbox_info.mbi_out->mb_mapaddr;
1676 tavor_mbox_free(state, &mbox_info);
1691 tavor_mbox_info_t mbox_info;
1699 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
1700 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1709 bcopy(mad, mbox_info.mbi_in->mb_addr, size);
1712 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1715 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1716 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
1729 tavor_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
1732 bcopy(mbox_info.mbi_out->mb_addr, resp, size);
1736 tavor_mbox_free(state, &mbox_info);
1751 tavor_mbox_info_t mbox_info;
1760 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
1761 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1771 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
1772 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], TAVOR_CMD_MADHDR0);
1773 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
1774 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
1775 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
1776 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_PORTINFO);
1777 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], port);
1779 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
1783 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1786 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1787 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
1801 tavor_mbox_sync(mbox_info.mbi_out, TAVOR_CMD_MADDATA_OFFSET,
1810 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
1817 tavor_mbox_free(state, &mbox_info);
1833 tavor_mbox_info_t mbox_info;
1845 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
1846 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1856 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
1857 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], TAVOR_CMD_MADHDR0);
1858 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
1859 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
1860 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
1861 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_NODEINFO);
1863 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
1867 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1870 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1871 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
1885 tavor_mbox_sync(mbox_info.mbi_out, TAVOR_CMD_MADDATA_OFFSET,
1893 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
1899 tavor_mbox_free(state, &mbox_info);
1915 tavor_mbox_info_t mbox_info;
1924 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
1925 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
1934 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
1935 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], TAVOR_CMD_MADHDR0);
1936 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
1937 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
1938 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
1939 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_NODEDESC);
1941 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
1945 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
1948 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
1949 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
1963 tavor_mbox_sync(mbox_info.mbi_out, TAVOR_CMD_MADDATA_OFFSET,
1967 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
1972 tavor_mbox_free(state, &mbox_info);
1987 tavor_mbox_info_t mbox_info;
1996 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
1997 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2006 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2007 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], TAVOR_CMD_MADHDR0);
2008 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
2009 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
2010 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
2011 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_GUIDINFO);
2012 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], guidblock);
2014 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2018 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2021 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2022 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2036 tavor_mbox_sync(mbox_info.mbi_out, TAVOR_CMD_MADDATA_OFFSET,
2044 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2051 tavor_mbox_free(state, &mbox_info);
2066 tavor_mbox_info_t mbox_info;
2075 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
2076 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2085 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2086 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0], TAVOR_CMD_MADHDR0);
2087 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
2088 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
2089 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
2090 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_PKEYTBLE);
2091 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], pkeyblock);
2093 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[i], 0);
2097 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2100 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2101 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2115 tavor_mbox_sync(mbox_info.mbi_out, TAVOR_CMD_MADDATA_OFFSET,
2123 bcopy((void *)((uintptr_t)mbox_info.mbi_out->mb_addr +
2130 tavor_mbox_free(state, &mbox_info);
2142 tavor_write_mtt_cmd_post(tavor_state_t *state, tavor_mbox_info_t *mbox_info,
2163 tavor_mbox_sync(mbox_info->mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2166 cmd.cp_inparm = mbox_info->mbi_in->mb_mapaddr;
2252 tavor_mbox_info_t mbox_info;
2261 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2262 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2273 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2274 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
2278 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2281 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2299 tavor_mbox_free(state, &mbox_info);
2325 tavor_mbox_info_t mbox_info;
2390 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2391 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2398 in_mapaddr = mbox_info.mbi_in->mb_mapaddr;
2407 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2408 ((uint64_t *)mbox_info.mbi_in->mb_addr + i + 1),
2411 ddi_put32(mbox_info.mbi_in->mb_acchdl,
2412 ((uint32_t *)mbox_info.mbi_in->mb_addr), opmask);
2419 tavor_mbox_sync(mbox_info.mbi_in, 0, size + 8,
2442 tavor_mbox_free(state, &mbox_info);
2466 tavor_mbox_info_t mbox_info;
2475 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_OUTMBOX;
2476 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2485 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2497 tavor_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
2508 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2509 ((uint64_t *)mbox_info.mbi_out->mb_addr + i + offset));
2515 tavor_mbox_free(state, &mbox_info);
2542 tavor_mbox_info_t mbox_info;
2594 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_OUTMBOX;
2595 status = tavor_mbox_alloc(state, &mbox_info,
2604 out_mapaddr = mbox_info.mbi_out->mb_mapaddr;
2612 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2613 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2624 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2625 ((uint64_t *)mbox_info.mbi_in->mb_addr + i),
2630 tavor_mbox_sync(mbox_info.mbi_in, 0, size,
2633 in_mapaddr = mbox_info.mbi_in->mb_mapaddr;
2660 tavor_mbox_sync(mbox_info.mbi_out, 0, size,
2665 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2666 ((uint64_t *)mbox_info.mbi_out->mb_addr + i));
2674 tavor_mbox_free(state, &mbox_info);
2721 tavor_mbox_info_t mbox_info;
2728 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2729 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2737 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2738 ((uint64_t *)mbox_info.mbi_in->mb_addr + 0), mgid_h);
2739 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2740 ((uint64_t *)mbox_info.mbi_in->mb_addr + 1), mgid_l);
2743 tavor_mbox_sync(mbox_info.mbi_in, 0, TAVOR_CMD_MGIDHASH_SZ,
2747 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2762 tavor_mbox_free(state, &mbox_info);
2782 tavor_mbox_info_t mbox_info;
2791 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_OUTMBOX;
2792 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2801 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
2814 tavor_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
2819 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
2820 ((uint64_t *)mbox_info.mbi_out->mb_addr + i));
2825 data = ddi_get32(mbox_info.mbi_out->mb_acchdl,
2826 ((uint32_t *)mbox_info.mbi_out->mb_addr + i + 8));
2832 tavor_mbox_free(state, &mbox_info);
2852 tavor_mbox_info_t mbox_info;
2861 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2862 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2874 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2875 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
2880 ddi_put32(mbox_info.mbi_in->mb_acchdl,
2881 ((uint32_t *)mbox_info.mbi_in->mb_addr + i + 8), data);
2885 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2888 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2900 tavor_mbox_free(state, &mbox_info);
2916 tavor_mbox_info_t mbox_info;
2925 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX;
2926 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2937 ddi_put64(mbox_info.mbi_in->mb_acchdl,
2938 ((uint64_t *)mbox_info.mbi_in->mb_addr + i), data);
2942 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
2945 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
2958 tavor_mbox_free(state, &mbox_info);
2976 tavor_mbox_info_t mbox_info;
2986 mbox_info.mbi_alloc_flags = TAVOR_ALLOC_INMBOX | TAVOR_ALLOC_OUTMBOX;
2987 status = tavor_mbox_alloc(state, &mbox_info, sleepflag);
2994 mbox = (uint32_t *)mbox_info.mbi_in->mb_addr;
2997 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0],
3000 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[0],
3003 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[1], TAVOR_CMD_MADHDR1);
3004 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[2], TAVOR_CMD_MADHDR2);
3005 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[3], TAVOR_CMD_MADHDR3);
3006 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[4], TAVOR_CMD_PERFCNTRS);
3007 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[5], TAVOR_CMD_PERFATTR);
3011 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[16],
3014 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[22], 0);
3015 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[23], 0);
3016 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[24], 0);
3017 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[25], 0);
3019 ddi_put32(mbox_info.mbi_in->mb_acchdl, &mbox[16], (port << 16));
3022 tavor_mbox_sync(mbox_info.mbi_in, 0, size, DDI_DMA_SYNC_FORDEV);
3025 cmd.cp_inparm = mbox_info.mbi_in->mb_mapaddr;
3026 cmd.cp_outparm = mbox_info.mbi_out->mb_mapaddr;
3039 tavor_mbox_sync(mbox_info.mbi_out, 0, size, DDI_DMA_SYNC_FORCPU);
3050 data = ddi_get64(mbox_info.mbi_out->mb_acchdl,
3051 ((uint64_t *)mbox_info.mbi_out->mb_addr + i + 8));
3058 tavor_mbox_free(state, &mbox_info);