Skip to content

Commit 7eaea55

Browse files
arctic-alpacatgross35
authored andcommitted
move AF_XDP structs and constants to linux/mod.rs
1 parent ca61220 commit 7eaea55

File tree

6 files changed

+139
-276
lines changed

6 files changed

+139
-276
lines changed

libc-test/semver/linux-gnu.txt

-24
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,6 @@ SOL_PPPOL2TP
411411
SOL_RAW
412412
SOL_RDS
413413
SOL_RXRPC
414-
SOL_XDP
415414
STATX_ALL
416415
STATX_ATIME
417416
STATX_ATTR_APPEND
@@ -478,31 +477,8 @@ UDF_SUPER_MAGIC
478477
UNAME26
479478
USBDEVICE_SUPER_MAGIC
480479
USER_PROCESS
481-
XDP_COPY
482-
XDP_MMAP_OFFSETS
483-
XDP_OPTIONS
484-
XDP_OPTIONS_ZEROCOPY
485-
XDP_PGOFF_RX_RING
486-
XDP_PGOFF_TX_RING
487-
XDP_PKT_CONTD
488-
XDP_RING_NEED_WAKEUP
489-
XDP_RX_RING
490-
XDP_SHARED_UMEM
491-
XDP_STATISTICS
492-
XDP_TX_RING
493-
XDP_UMEM_COMPLETION_RING
494-
XDP_UMEM_FILL_RING
495-
XDP_UMEM_PGOFF_COMPLETION_RING
496-
XDP_UMEM_PGOFF_FILL_RING
497-
XDP_UMEM_REG
498-
XDP_UMEM_UNALIGNED_CHUNK_FLAG
499-
XDP_USE_NEED_WAKEUP
500-
XDP_USE_SG
501-
XDP_ZEROCOPY
502480
XENFS_SUPER_MAGIC
503481
XFS_SUPER_MAGIC
504-
XSK_UNALIGNED_BUF_ADDR_MASK
505-
XSK_UNALIGNED_BUF_OFFSET_SHIFT
506482
_CS_GNU_LIBC_VERSION
507483
_CS_GNU_LIBPTHREAD_VERSION
508484
_CS_V6_ENV

libc-test/semver/linux-musl.txt

-24
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,7 @@ RWF_DSYNC
3535
RWF_HIPRI
3636
RWF_NOWAIT
3737
RWF_SYNC
38-
SOL_XDP
3938
USER_PROCESS
40-
XDP_COPY
41-
XDP_MMAP_OFFSETS
42-
XDP_OPTIONS
43-
XDP_OPTIONS_ZEROCOPY
44-
XDP_PGOFF_RX_RING
45-
XDP_PGOFF_TX_RING
46-
XDP_PKT_CONTD
47-
XDP_RING_NEED_WAKEUP
48-
XDP_RX_RING
49-
XDP_SHARED_UMEM
50-
XDP_STATISTICS
51-
XDP_TX_RING
52-
XDP_UMEM_COMPLETION_RING
53-
XDP_UMEM_FILL_RING
54-
XDP_UMEM_PGOFF_COMPLETION_RING
55-
XDP_UMEM_PGOFF_FILL_RING
56-
XDP_UMEM_REG
57-
XDP_UMEM_UNALIGNED_CHUNK_FLAG
58-
XDP_USE_NEED_WAKEUP
59-
XDP_USE_SG
60-
XDP_ZEROCOPY
61-
XSK_UNALIGNED_BUF_ADDR_MASK
62-
XSK_UNALIGNED_BUF_OFFSET_SHIFT
6339
_CS_V6_ENV
6440
_CS_V7_ENV
6541
adjtimex

libc-test/semver/linux.txt

+24
Original file line numberDiff line numberDiff line change
@@ -2892,6 +2892,7 @@ SOL_TIPC
28922892
SOL_TLS
28932893
SOL_UDP
28942894
SOL_X25
2895+
SOL_XDP
28952896
SOMAXCONN
28962897
SO_BINDTODEVICE
28972898
SO_BUSY_POLL
@@ -3400,11 +3401,34 @@ W_EXITCODE
34003401
W_STOPCODE
34013402
XATTR_CREATE
34023403
XATTR_REPLACE
3404+
XDP_COPY
3405+
XDP_MMAP_OFFSETS
3406+
XDP_OPTIONS
3407+
XDP_OPTIONS_ZEROCOPY
3408+
XDP_PGOFF_RX_RING
3409+
XDP_PGOFF_TX_RING
3410+
XDP_PKT_CONTD
3411+
XDP_RING_NEED_WAKEUP
3412+
XDP_RX_RING
3413+
XDP_SHARED_UMEM
3414+
XDP_STATISTICS
34033415
XDP_TXMD_FLAGS_CHECKSUM
34043416
XDP_TXMD_FLAGS_TIMESTAMP
34053417
XDP_TX_METADATA
3418+
XDP_TX_RING
3419+
XDP_UMEM_COMPLETION_RING
3420+
XDP_UMEM_FILL_RING
3421+
XDP_UMEM_PGOFF_COMPLETION_RING
3422+
XDP_UMEM_PGOFF_FILL_RING
3423+
XDP_UMEM_REG
34063424
XDP_UMEM_TX_METADATA_LEN
34073425
XDP_UMEM_TX_SW_CSUM
3426+
XDP_UMEM_UNALIGNED_CHUNK_FLAG
3427+
XDP_USE_NEED_WAKEUP
3428+
XDP_USE_SG
3429+
XDP_ZEROCOPY
3430+
XSK_UNALIGNED_BUF_ADDR_MASK
3431+
XSK_UNALIGNED_BUF_OFFSET_SHIFT
34083432
XTABS
34093433
YESEXPR
34103434
YESSTR

src/unix/linux_like/linux/gnu/mod.rs

-111
Original file line numberDiff line numberDiff line change
@@ -310,84 +310,6 @@ s! {
310310
pub u: __c_anonymous_ptrace_syscall_info_data,
311311
}
312312

313-
// linux/if_xdp.h
314-
315-
pub struct sockaddr_xdp {
316-
pub sxdp_family: crate::__u16,
317-
pub sxdp_flags: crate::__u16,
318-
pub sxdp_ifindex: crate::__u32,
319-
pub sxdp_queue_id: crate::__u32,
320-
pub sxdp_shared_umem_fd: crate::__u32,
321-
}
322-
323-
pub struct xdp_ring_offset {
324-
pub producer: crate::__u64,
325-
pub consumer: crate::__u64,
326-
pub desc: crate::__u64,
327-
pub flags: crate::__u64,
328-
}
329-
330-
pub struct xdp_mmap_offsets {
331-
pub rx: xdp_ring_offset,
332-
pub tx: xdp_ring_offset,
333-
pub fr: xdp_ring_offset,
334-
pub cr: xdp_ring_offset,
335-
}
336-
337-
pub struct xdp_ring_offset_v1 {
338-
pub producer: crate::__u64,
339-
pub consumer: crate::__u64,
340-
pub desc: crate::__u64,
341-
}
342-
343-
pub struct xdp_mmap_offsets_v1 {
344-
pub rx: xdp_ring_offset_v1,
345-
pub tx: xdp_ring_offset_v1,
346-
pub fr: xdp_ring_offset_v1,
347-
pub cr: xdp_ring_offset_v1,
348-
}
349-
350-
pub struct xdp_umem_reg {
351-
pub addr: crate::__u64,
352-
pub len: crate::__u64,
353-
pub chunk_size: crate::__u32,
354-
pub headroom: crate::__u32,
355-
pub flags: crate::__u32,
356-
pub tx_metadata_len: crate::__u32,
357-
}
358-
359-
pub struct xdp_umem_reg_v1 {
360-
pub addr: crate::__u64,
361-
pub len: crate::__u64,
362-
pub chunk_size: crate::__u32,
363-
pub headroom: crate::__u32,
364-
}
365-
366-
pub struct xdp_statistics {
367-
pub rx_dropped: crate::__u64,
368-
pub rx_invalid_descs: crate::__u64,
369-
pub tx_invalid_descs: crate::__u64,
370-
pub rx_ring_full: crate::__u64,
371-
pub rx_fill_ring_empty_descs: crate::__u64,
372-
pub tx_ring_empty_descs: crate::__u64,
373-
}
374-
375-
pub struct xdp_statistics_v1 {
376-
pub rx_dropped: crate::__u64,
377-
pub rx_invalid_descs: crate::__u64,
378-
pub tx_invalid_descs: crate::__u64,
379-
}
380-
381-
pub struct xdp_options {
382-
pub flags: crate::__u32,
383-
}
384-
385-
pub struct xdp_desc {
386-
pub addr: crate::__u64,
387-
pub len: crate::__u32,
388-
pub options: crate::__u32,
389-
}
390-
391313
pub struct iocb {
392314
pub aio_data: crate::__u64,
393315
#[cfg(target_endian = "little")]
@@ -813,7 +735,6 @@ pub const SOL_RDS: c_int = 276;
813735
pub const SOL_IUCV: c_int = 277;
814736
pub const SOL_CAIF: c_int = 278;
815737
pub const SOL_NFC: c_int = 280;
816-
pub const SOL_XDP: c_int = 283;
817738

818739
pub const MSG_TRYHARD: c_int = 4;
819740

@@ -1054,38 +975,6 @@ pub const GENL_UNS_ADMIN_PERM: c_int = 0x10;
1054975
pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1;
1055976
pub const GENL_ID_PMCRAID: c_int = crate::NLMSG_MIN_TYPE + 2;
1056977

1057-
// linux/if_xdp.h
1058-
pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0;
1059-
pub const XDP_COPY: crate::__u16 = 1 << 1;
1060-
pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2;
1061-
pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3;
1062-
pub const XDP_USE_SG: crate::__u16 = 1 << 4;
1063-
1064-
pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0;
1065-
1066-
pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0;
1067-
1068-
pub const XDP_MMAP_OFFSETS: c_int = 1;
1069-
pub const XDP_RX_RING: c_int = 2;
1070-
pub const XDP_TX_RING: c_int = 3;
1071-
pub const XDP_UMEM_REG: c_int = 4;
1072-
pub const XDP_UMEM_FILL_RING: c_int = 5;
1073-
pub const XDP_UMEM_COMPLETION_RING: c_int = 6;
1074-
pub const XDP_STATISTICS: c_int = 7;
1075-
pub const XDP_OPTIONS: c_int = 8;
1076-
1077-
pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0;
1078-
1079-
pub const XDP_PGOFF_RX_RING: off_t = 0;
1080-
pub const XDP_PGOFF_TX_RING: off_t = 0x80000000;
1081-
pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000;
1082-
pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000;
1083-
1084-
pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48;
1085-
pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1;
1086-
1087-
pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0;
1088-
1089978
pub const ELFOSABI_ARM_AEABI: u8 = 64;
1090979

1091980
// linux/sched.h

src/unix/linux_like/linux/mod.rs

+115-5
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,83 @@ s! {
12111211
}
12121212

12131213
// linux/if_xdp.h
1214+
1215+
pub struct sockaddr_xdp {
1216+
pub sxdp_family: crate::__u16,
1217+
pub sxdp_flags: crate::__u16,
1218+
pub sxdp_ifindex: crate::__u32,
1219+
pub sxdp_queue_id: crate::__u32,
1220+
pub sxdp_shared_umem_fd: crate::__u32,
1221+
}
1222+
1223+
pub struct xdp_ring_offset {
1224+
pub producer: crate::__u64,
1225+
pub consumer: crate::__u64,
1226+
pub desc: crate::__u64,
1227+
pub flags: crate::__u64,
1228+
}
1229+
1230+
pub struct xdp_mmap_offsets {
1231+
pub rx: xdp_ring_offset,
1232+
pub tx: xdp_ring_offset,
1233+
pub fr: xdp_ring_offset,
1234+
pub cr: xdp_ring_offset,
1235+
}
1236+
1237+
pub struct xdp_ring_offset_v1 {
1238+
pub producer: crate::__u64,
1239+
pub consumer: crate::__u64,
1240+
pub desc: crate::__u64,
1241+
}
1242+
1243+
pub struct xdp_mmap_offsets_v1 {
1244+
pub rx: xdp_ring_offset_v1,
1245+
pub tx: xdp_ring_offset_v1,
1246+
pub fr: xdp_ring_offset_v1,
1247+
pub cr: xdp_ring_offset_v1,
1248+
}
1249+
1250+
pub struct xdp_umem_reg {
1251+
pub addr: crate::__u64,
1252+
pub len: crate::__u64,
1253+
pub chunk_size: crate::__u32,
1254+
pub headroom: crate::__u32,
1255+
pub flags: crate::__u32,
1256+
pub tx_metadata_len: crate::__u32,
1257+
}
1258+
1259+
pub struct xdp_umem_reg_v1 {
1260+
pub addr: crate::__u64,
1261+
pub len: crate::__u64,
1262+
pub chunk_size: crate::__u32,
1263+
pub headroom: crate::__u32,
1264+
}
1265+
1266+
pub struct xdp_statistics {
1267+
pub rx_dropped: crate::__u64,
1268+
pub rx_invalid_descs: crate::__u64,
1269+
pub tx_invalid_descs: crate::__u64,
1270+
pub rx_ring_full: crate::__u64,
1271+
pub rx_fill_ring_empty_descs: crate::__u64,
1272+
pub tx_ring_empty_descs: crate::__u64,
1273+
}
1274+
1275+
pub struct xdp_statistics_v1 {
1276+
pub rx_dropped: crate::__u64,
1277+
pub rx_invalid_descs: crate::__u64,
1278+
pub tx_invalid_descs: crate::__u64,
1279+
}
1280+
1281+
pub struct xdp_options {
1282+
pub flags: crate::__u32,
1283+
}
1284+
1285+
pub struct xdp_desc {
1286+
pub addr: crate::__u64,
1287+
pub len: crate::__u32,
1288+
pub options: crate::__u32,
1289+
}
1290+
12141291
pub struct xsk_tx_metadata_completion {
12151292
pub tx_timestamp: crate::__u64,
12161293
}
@@ -5639,13 +5716,46 @@ pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20;
56395716
pub const SCHED_FLAG_UTIL_CLAMP_MAX: c_int = 0x40;
56405717

56415718
// linux/if_xdp.h
5642-
pub const XDP_UMEM_TX_SW_CSUM: __u32 = 1 << 1;
5643-
pub const XDP_UMEM_TX_METADATA_LEN: __u32 = 1 << 2;
5719+
pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0;
5720+
pub const XDP_COPY: crate::__u16 = 1 << 1;
5721+
pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2;
5722+
pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3;
5723+
pub const XDP_USE_SG: crate::__u16 = 1 << 4;
5724+
5725+
pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0;
5726+
5727+
pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0;
5728+
5729+
pub const XDP_MMAP_OFFSETS: c_int = 1;
5730+
pub const XDP_RX_RING: c_int = 2;
5731+
pub const XDP_TX_RING: c_int = 3;
5732+
pub const XDP_UMEM_REG: c_int = 4;
5733+
pub const XDP_UMEM_FILL_RING: c_int = 5;
5734+
pub const XDP_UMEM_COMPLETION_RING: c_int = 6;
5735+
pub const XDP_STATISTICS: c_int = 7;
5736+
pub const XDP_OPTIONS: c_int = 8;
5737+
5738+
pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0;
5739+
5740+
pub const XDP_PGOFF_RX_RING: crate::off_t = 0;
5741+
pub const XDP_PGOFF_TX_RING: crate::off_t = 0x80000000;
5742+
pub const XDP_UMEM_PGOFF_FILL_RING: crate::c_ulonglong = 0x100000000;
5743+
pub const XDP_UMEM_PGOFF_COMPLETION_RING: crate::c_ulonglong = 0x180000000;
5744+
5745+
pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: crate::c_int = 48;
5746+
pub const XSK_UNALIGNED_BUF_ADDR_MASK: crate::c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1;
5747+
5748+
pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0;
5749+
5750+
pub const XDP_UMEM_TX_SW_CSUM: crate::__u32 = 1 << 1;
5751+
pub const XDP_UMEM_TX_METADATA_LEN: crate::__u32 = 1 << 2;
5752+
5753+
pub const XDP_TXMD_FLAGS_TIMESTAMP: crate::__u32 = 1 << 0;
5754+
pub const XDP_TXMD_FLAGS_CHECKSUM: crate::__u32 = 1 << 1;
56445755

5645-
pub const XDP_TXMD_FLAGS_TIMESTAMP: __u32 = 1 << 0;
5646-
pub const XDP_TXMD_FLAGS_CHECKSUM: __u32 = 1 << 1;
5756+
pub const XDP_TX_METADATA: crate::__u32 = 1 << 1;
56475757

5648-
pub const XDP_TX_METADATA: __u32 = 1 << 1;
5758+
pub const SOL_XDP: c_int = 283;
56495759

56505760
// linux/mount.h
56515761
pub const MOUNT_ATTR_RDONLY: crate::__u64 = 0x00000001;

0 commit comments

Comments
 (0)