static int fjes_rxframe_search_exist(struct fjes_adapter *adapter, int start_epid) { struct fjes_hw *hw = &adapter->hw; enum ep_partner_status pstatus; int max_epid, cur_epid; int i; max_epid = hw->max_epid; start_epid = (start_epid + 1 + max_epid) % max_epid; for (i = 0; i < max_epid; i++) { cur_epid = (start_epid + i) % max_epid; if (cur_epid == hw->my_epid) continue; pstatus = fjes_hw_get_partner_ep_status(hw, cur_epid); if (pstatus == EP_PARTNER_SHARED) { if (!fjes_hw_epbuf_rx_is_empty( &hw->ep_shm_info[cur_epid].rx)) return cur_epid; } } return -1; }
void fjes_hw_epbuf_rx_curpkt_drop(struct epbuf_handler *epbh) { union ep_buffer_info *info = epbh->info; if (fjes_hw_epbuf_rx_is_empty(epbh)) return; EP_RING_INDEX_INC(epbh->info->v1i.head, info->v1i.count_max); }