Lines Matching refs:xskb
116 void xp_free(struct xdp_buff_xsk *xskb);
118 static inline void xp_init_xskb_addr(struct xdp_buff_xsk *xskb, struct xsk_buff_pool *pool,
121 xskb->orig_addr = addr;
122 xskb->xdp.data_hard_start = pool->addrs + addr + pool->headroom;
125 static inline void xp_init_xskb_dma(struct xdp_buff_xsk *xskb, struct xsk_buff_pool *pool,
128 xskb->frame_dma = (dma_pages[addr >> PAGE_SHIFT] & ~XSK_NEXT_PG_CONTIG_MASK) +
130 xskb->dma = xskb->frame_dma + pool->headroom + XDP_PACKET_HEADROOM;
143 static inline dma_addr_t xp_get_dma(struct xdp_buff_xsk *xskb)
145 return xskb->dma;
148 static inline dma_addr_t xp_get_frame_dma(struct xdp_buff_xsk *xskb)
150 return xskb->frame_dma;
153 void xp_dma_sync_for_cpu_slow(struct xdp_buff_xsk *xskb);
154 static inline void xp_dma_sync_for_cpu(struct xdp_buff_xsk *xskb)
156 xp_dma_sync_for_cpu_slow(xskb);
220 static inline void xp_release(struct xdp_buff_xsk *xskb)
222 if (xskb->pool->unaligned)
223 xskb->pool->free_heads[xskb->pool->free_heads_cnt++] = xskb;
226 static inline u64 xp_get_handle(struct xdp_buff_xsk *xskb)
228 u64 offset = xskb->xdp.data - xskb->xdp.data_hard_start;
230 offset += xskb->pool->headroom;
231 if (!xskb->pool->unaligned)
232 return xskb->orig_addr + offset;
233 return xskb->orig_addr + (offset << XSK_UNALIGNED_BUF_OFFSET_SHIFT);