Lines Matching refs:rxwin
565 static void put_rx_win(struct vas_window *rxwin) in put_rx_win() argument
568 WARN_ON_ONCE(rxwin->tx_win); in put_rx_win()
570 atomic_dec(&rxwin->num_txwins); in put_rx_win()
584 struct vas_window *rxwin; in get_user_rxwin() local
591 rxwin = vinst->windows[winid]; in get_user_rxwin()
593 if (!rxwin || rxwin->tx_win || rxwin->cop != VAS_COP_TYPE_FTW) in get_user_rxwin()
596 return rxwin; in get_user_rxwin()
608 struct vas_window *rxwin; in get_vinst_rxwin() local
613 rxwin = get_user_rxwin(vinst, pswid); in get_vinst_rxwin()
615 rxwin = vinst->rxwin[cop] ?: ERR_PTR(-EINVAL); in get_vinst_rxwin()
617 if (!IS_ERR(rxwin)) in get_vinst_rxwin()
618 atomic_inc(&rxwin->num_txwins); in get_vinst_rxwin()
622 return rxwin; in get_vinst_rxwin()
652 WARN_ON_ONCE(vinst->rxwin[window->cop]); in set_vinst_win()
653 vinst->rxwin[window->cop] = window; in set_vinst_win()
674 WARN_ON_ONCE(!vinst->rxwin[window->cop]); in clear_vinst_win()
675 vinst->rxwin[window->cop] = NULL; in clear_vinst_win()
684 static void init_winctx_for_rxwin(struct vas_window *rxwin, in init_winctx_for_rxwin() argument
705 winctx->wcreds_max = rxwin->wcreds_max; in init_winctx_for_rxwin()
752 if (rxwin->vinst->virq) in init_winctx_for_rxwin()
753 winctx->irq_port = rxwin->vinst->irq_port; in init_winctx_for_rxwin()
854 struct vas_window *rxwin; in vas_rx_win_open() local
870 rxwin = vas_window_alloc(vinst); in vas_rx_win_open()
871 if (IS_ERR(rxwin)) { in vas_rx_win_open()
873 return rxwin; in vas_rx_win_open()
876 rxwin->tx_win = false; in vas_rx_win_open()
877 rxwin->nx_win = rxattr->nx_win; in vas_rx_win_open()
878 rxwin->user_win = rxattr->user_win; in vas_rx_win_open()
879 rxwin->cop = cop; in vas_rx_win_open()
880 rxwin->wcreds_max = rxattr->wcreds_max; in vas_rx_win_open()
882 init_winctx_for_rxwin(rxwin, rxattr, &winctx); in vas_rx_win_open()
883 init_winctx_regs(rxwin, &winctx); in vas_rx_win_open()
885 set_vinst_win(vinst, rxwin); in vas_rx_win_open()
887 return rxwin; in vas_rx_win_open()
932 winctx->nx_win = txwin->rxwin->nx_win; in init_winctx_for_txwin()
949 winctx->rx_win_id = txwin->rxwin->winid; in init_winctx_for_txwin()
997 struct vas_window *rxwin; in vas_tx_win_open() local
1020 rxwin = get_vinst_rxwin(vinst, cop, attr->pswid); in vas_tx_win_open()
1021 if (IS_ERR(rxwin)) { in vas_tx_win_open()
1023 return rxwin; in vas_tx_win_open()
1034 txwin->rxwin = rxwin; in vas_tx_win_open()
1035 txwin->nx_win = txwin->rxwin->nx_win; in vas_tx_win_open()
1122 put_rx_win(rxwin); in vas_tx_win_open()
1350 put_rx_win(window->rxwin); in vas_win_close()