xref: /linux/drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.h (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Marvell RVU PF/VF Netdev Devlink
3  *
4  * Copyright (C) 2024 Marvell.
5  *
6  */
7 
8 #ifndef	OTX2_XSK_H
9 #define	OTX2_XSK_H
10 
11 struct otx2_nic;
12 struct xsk_buff_pool;
13 
14 int otx2_xsk_pool_setup(struct otx2_nic *pf, struct xsk_buff_pool *pool, u16 qid);
15 int otx2_xsk_pool_enable(struct otx2_nic *pf, struct xsk_buff_pool *pool, u16 qid);
16 int otx2_xsk_pool_disable(struct otx2_nic *pf, u16 qid);
17 int otx2_xsk_pool_alloc_buf(struct otx2_nic *pfvf, struct otx2_pool *pool,
18 			    dma_addr_t *dma, int idx);
19 int otx2_xsk_wakeup(struct net_device *dev, u32 queue_id, u32 flags);
20 void otx2_zc_napi_handler(struct otx2_nic *pfvf, struct xsk_buff_pool *pool,
21 			  int queue, int budget);
22 void otx2_attach_xsk_buff(struct otx2_nic *pfvf, struct otx2_snd_queue *sq, int qidx);
23 
24 #endif /* OTX2_XSK_H */
25