xsk: Move defines only used by AF_XDP internals to xsk.h

Move the XSK_NEXT_PG_CONTIG_{MASK,SHIFT}, and
XDP_UMEM_USES_NEED_WAKEUP defines from xdp_sock.h to the AF_XDP
internal xsk.h file. Also, start using the BIT{,_ULL} macro instead of
explicit shifts.

Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200520192103.355233-5-bjorn.topel@gmail.com
This commit is contained in:
Björn Töpel 2020-05-20 21:20:52 +02:00 committed by Alexei Starovoitov
parent a71506a4fd
commit 89e4a376e3
3 changed files with 16 additions and 14 deletions

View File

@ -17,13 +17,6 @@ struct net_device;
struct xsk_queue; struct xsk_queue;
struct xdp_buff; struct xdp_buff;
/* Masks for xdp_umem_page flags.
* The low 12-bits of the addr will be 0 since this is the page address, so we
* can use them for flags.
*/
#define XSK_NEXT_PG_CONTIG_SHIFT 0
#define XSK_NEXT_PG_CONTIG_MASK (1ULL << XSK_NEXT_PG_CONTIG_SHIFT)
struct xdp_umem_page { struct xdp_umem_page {
void *addr; void *addr;
dma_addr_t dma; dma_addr_t dma;
@ -35,13 +28,6 @@ struct xdp_umem_fq_reuse {
u64 handles[]; u64 handles[];
}; };
/* Flags for the umem flags field.
*
* The NEED_WAKEUP flag is 1 due to the reuse of the flags field for public
* flags. See inlude/uapi/include/linux/if_xdp.h.
*/
#define XDP_UMEM_USES_NEED_WAKEUP (1 << 1)
struct xdp_umem { struct xdp_umem {
struct xsk_queue *fq; struct xsk_queue *fq;
struct xsk_queue *cq; struct xsk_queue *cq;

View File

@ -4,6 +4,20 @@
#ifndef XSK_H_ #ifndef XSK_H_
#define XSK_H_ #define XSK_H_
/* Masks for xdp_umem_page flags.
* The low 12-bits of the addr will be 0 since this is the page address, so we
* can use them for flags.
*/
#define XSK_NEXT_PG_CONTIG_SHIFT 0
#define XSK_NEXT_PG_CONTIG_MASK BIT_ULL(XSK_NEXT_PG_CONTIG_SHIFT)
/* Flags for the umem flags field.
*
* The NEED_WAKEUP flag is 1 due to the reuse of the flags field for public
* flags. See inlude/uapi/include/linux/if_xdp.h.
*/
#define XDP_UMEM_USES_NEED_WAKEUP BIT(1)
struct xdp_ring_offset_v1 { struct xdp_ring_offset_v1 {
__u64 producer; __u64 producer;
__u64 consumer; __u64 consumer;

View File

@ -10,6 +10,8 @@
#include <linux/if_xdp.h> #include <linux/if_xdp.h>
#include <net/xdp_sock.h> #include <net/xdp_sock.h>
#include "xsk.h"
struct xdp_ring { struct xdp_ring {
u32 producer ____cacheline_aligned_in_smp; u32 producer ____cacheline_aligned_in_smp;
u32 consumer ____cacheline_aligned_in_smp; u32 consumer ____cacheline_aligned_in_smp;