1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* XDP user-space packet buffer
3 * Copyright(c) 2018 Intel Corporation.
9 #include <net/xdp_sock.h>
11 static inline char *xdp_umem_get_data(struct xdp_umem
*umem
, u64 addr
)
13 return umem
->pages
[addr
>> PAGE_SHIFT
].addr
+ (addr
& (PAGE_SIZE
- 1));
16 static inline dma_addr_t
xdp_umem_get_dma(struct xdp_umem
*umem
, u64 addr
)
18 return umem
->pages
[addr
>> PAGE_SHIFT
].dma
+ (addr
& (PAGE_SIZE
- 1));
21 int xdp_umem_assign_dev(struct xdp_umem
*umem
, struct net_device
*dev
,
22 u32 queue_id
, u16 flags
);
23 bool xdp_umem_validate_queues(struct xdp_umem
*umem
);
24 void xdp_get_umem(struct xdp_umem
*umem
);
25 void xdp_put_umem(struct xdp_umem
*umem
);
26 void xdp_add_sk_umem(struct xdp_umem
*umem
, struct xdp_sock
*xs
);
27 void xdp_del_sk_umem(struct xdp_umem
*umem
, struct xdp_sock
*xs
);
28 struct xdp_umem
*xdp_umem_create(struct xdp_umem_reg
*mr
);
30 #endif /* XDP_UMEM_H_ */