Skip to content

Commit 0987973

Browse files
arctic-alpacatgross35
authored andcommitted
move AF_XDP structs and constants to linux/mod.rs
(backport <rust-lang#4163>) (cherry picked from commit 7eaea55)
1 parent 6f7b167 commit 0987973

File tree

6 files changed

+140
-276
lines changed

6 files changed

+140
-276
lines changed

libc-test/semver/linux-gnu.txt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ SOL_PPPOL2TP
405405
SOL_RAW
406406
SOL_RDS
407407
SOL_RXRPC
408-
SOL_XDP
409408
STATX_ALL
410409
STATX_ATIME
411410
STATX_ATTR_APPEND
@@ -472,31 +471,8 @@ UDF_SUPER_MAGIC
472471
UNAME26
473472
USBDEVICE_SUPER_MAGIC
474473
USER_PROCESS
475-
XDP_COPY
476-
XDP_MMAP_OFFSETS
477-
XDP_OPTIONS
478-
XDP_OPTIONS_ZEROCOPY
479-
XDP_PGOFF_RX_RING
480-
XDP_PGOFF_TX_RING
481-
XDP_PKT_CONTD
482-
XDP_RING_NEED_WAKEUP
483-
XDP_RX_RING
484-
XDP_SHARED_UMEM
485-
XDP_STATISTICS
486-
XDP_TX_RING
487-
XDP_UMEM_COMPLETION_RING
488-
XDP_UMEM_FILL_RING
489-
XDP_UMEM_PGOFF_COMPLETION_RING
490-
XDP_UMEM_PGOFF_FILL_RING
491-
XDP_UMEM_REG
492-
XDP_UMEM_UNALIGNED_CHUNK_FLAG
493-
XDP_USE_NEED_WAKEUP
494-
XDP_USE_SG
495-
XDP_ZEROCOPY
496474
XENFS_SUPER_MAGIC
497475
XFS_SUPER_MAGIC
498-
XSK_UNALIGNED_BUF_ADDR_MASK
499-
XSK_UNALIGNED_BUF_OFFSET_SHIFT
500476
_CS_GNU_LIBC_VERSION
501477
_CS_GNU_LIBPTHREAD_VERSION
502478
_CS_V6_ENV

libc-test/semver/linux-musl.txt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,7 @@ RWF_DSYNC
3636
RWF_HIPRI
3737
RWF_NOWAIT
3838
RWF_SYNC
39-
SOL_XDP
4039
USER_PROCESS
41-
XDP_COPY
42-
XDP_MMAP_OFFSETS
43-
XDP_OPTIONS
44-
XDP_OPTIONS_ZEROCOPY
45-
XDP_PGOFF_RX_RING
46-
XDP_PGOFF_TX_RING
47-
XDP_PKT_CONTD
48-
XDP_RING_NEED_WAKEUP
49-
XDP_RX_RING
50-
XDP_SHARED_UMEM
51-
XDP_STATISTICS
52-
XDP_TX_RING
53-
XDP_UMEM_COMPLETION_RING
54-
XDP_UMEM_FILL_RING
55-
XDP_UMEM_PGOFF_COMPLETION_RING
56-
XDP_UMEM_PGOFF_FILL_RING
57-
XDP_UMEM_REG
58-
XDP_UMEM_UNALIGNED_CHUNK_FLAG
59-
XDP_USE_NEED_WAKEUP
60-
XDP_USE_SG
61-
XDP_ZEROCOPY
62-
XSK_UNALIGNED_BUF_ADDR_MASK
63-
XSK_UNALIGNED_BUF_OFFSET_SHIFT
6440
_CS_V6_ENV
6541
_CS_V7_ENV
6642
adjtimex

libc-test/semver/linux.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2939,6 +2939,7 @@ SOL_TIPC
29392939
SOL_TLS
29402940
SOL_UDP
29412941
SOL_X25
2942+
SOL_XDP
29422943
SOMAXCONN
29432944
SO_BINDTODEVICE
29442945
SO_BUSY_POLL
@@ -3455,11 +3456,34 @@ W_EXITCODE
34553456
W_STOPCODE
34563457
XATTR_CREATE
34573458
XATTR_REPLACE
3459+
XDP_COPY
3460+
XDP_MMAP_OFFSETS
3461+
XDP_OPTIONS
3462+
XDP_OPTIONS_ZEROCOPY
3463+
XDP_PGOFF_RX_RING
3464+
XDP_PGOFF_TX_RING
3465+
XDP_PKT_CONTD
3466+
XDP_RING_NEED_WAKEUP
3467+
XDP_RX_RING
3468+
XDP_SHARED_UMEM
3469+
XDP_STATISTICS
34583470
XDP_TXMD_FLAGS_CHECKSUM
34593471
XDP_TXMD_FLAGS_TIMESTAMP
34603472
XDP_TX_METADATA
3473+
XDP_TX_RING
3474+
XDP_UMEM_COMPLETION_RING
3475+
XDP_UMEM_FILL_RING
3476+
XDP_UMEM_PGOFF_COMPLETION_RING
3477+
XDP_UMEM_PGOFF_FILL_RING
3478+
XDP_UMEM_REG
34613479
XDP_UMEM_TX_METADATA_LEN
34623480
XDP_UMEM_TX_SW_CSUM
3481+
XDP_UMEM_UNALIGNED_CHUNK_FLAG
3482+
XDP_USE_NEED_WAKEUP
3483+
XDP_USE_SG
3484+
XDP_ZEROCOPY
3485+
XSK_UNALIGNED_BUF_ADDR_MASK
3486+
XSK_UNALIGNED_BUF_OFFSET_SHIFT
34633487
XTABS
34643488
YESEXPR
34653489
YESSTR

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

Lines changed: 0 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -328,84 +328,6 @@ s! {
328328
pub u: __c_anonymous_ptrace_syscall_info_data,
329329
}
330330

331-
// linux/if_xdp.h
332-
333-
pub struct sockaddr_xdp {
334-
pub sxdp_family: crate::__u16,
335-
pub sxdp_flags: crate::__u16,
336-
pub sxdp_ifindex: crate::__u32,
337-
pub sxdp_queue_id: crate::__u32,
338-
pub sxdp_shared_umem_fd: crate::__u32,
339-
}
340-
341-
pub struct xdp_ring_offset {
342-
pub producer: crate::__u64,
343-
pub consumer: crate::__u64,
344-
pub desc: crate::__u64,
345-
pub flags: crate::__u64,
346-
}
347-
348-
pub struct xdp_mmap_offsets {
349-
pub rx: xdp_ring_offset,
350-
pub tx: xdp_ring_offset,
351-
pub fr: xdp_ring_offset,
352-
pub cr: xdp_ring_offset,
353-
}
354-
355-
pub struct xdp_ring_offset_v1 {
356-
pub producer: crate::__u64,
357-
pub consumer: crate::__u64,
358-
pub desc: crate::__u64,
359-
}
360-
361-
pub struct xdp_mmap_offsets_v1 {
362-
pub rx: xdp_ring_offset_v1,
363-
pub tx: xdp_ring_offset_v1,
364-
pub fr: xdp_ring_offset_v1,
365-
pub cr: xdp_ring_offset_v1,
366-
}
367-
368-
pub struct xdp_umem_reg {
369-
pub addr: crate::__u64,
370-
pub len: crate::__u64,
371-
pub chunk_size: crate::__u32,
372-
pub headroom: crate::__u32,
373-
pub flags: crate::__u32,
374-
pub tx_metadata_len: crate::__u32,
375-
}
376-
377-
pub struct xdp_umem_reg_v1 {
378-
pub addr: crate::__u64,
379-
pub len: crate::__u64,
380-
pub chunk_size: crate::__u32,
381-
pub headroom: crate::__u32,
382-
}
383-
384-
pub struct xdp_statistics {
385-
pub rx_dropped: crate::__u64,
386-
pub rx_invalid_descs: crate::__u64,
387-
pub tx_invalid_descs: crate::__u64,
388-
pub rx_ring_full: crate::__u64,
389-
pub rx_fill_ring_empty_descs: crate::__u64,
390-
pub tx_ring_empty_descs: crate::__u64,
391-
}
392-
393-
pub struct xdp_statistics_v1 {
394-
pub rx_dropped: crate::__u64,
395-
pub rx_invalid_descs: crate::__u64,
396-
pub tx_invalid_descs: crate::__u64,
397-
}
398-
399-
pub struct xdp_options {
400-
pub flags: crate::__u32,
401-
}
402-
403-
pub struct xdp_desc {
404-
pub addr: crate::__u64,
405-
pub len: crate::__u32,
406-
pub options: crate::__u32,
407-
}
408-
409331
pub struct iocb {
410332
pub aio_data: crate::__u64,
411333
#[cfg(target_endian = "little")]
@@ -809,7 +731,6 @@ pub const SOL_RDS: c_int = 276;
809731
pub const SOL_IUCV: c_int = 277;
810732
pub const SOL_CAIF: c_int = 278;
811733
pub const SOL_NFC: c_int = 280;
812-
pub const SOL_XDP: c_int = 283;
813734

814735
pub const MSG_TRYHARD: c_int = 4;
815736

@@ -1042,38 +963,6 @@ pub const GENL_UNS_ADMIN_PERM: c_int = 0x10;
1042963
pub const GENL_ID_VFS_DQUOT: c_int = crate::NLMSG_MIN_TYPE + 1;
1043964
pub const GENL_ID_PMCRAID: c_int = crate::NLMSG_MIN_TYPE + 2;
1044965

1045-
// linux/if_xdp.h
1046-
pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0;
1047-
pub const XDP_COPY: crate::__u16 = 1 << 1;
1048-
pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2;
1049-
pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3;
1050-
pub const XDP_USE_SG: crate::__u16 = 1 << 4;
1051-
1052-
pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0;
1053-
1054-
pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0;
1055-
1056-
pub const XDP_MMAP_OFFSETS: c_int = 1;
1057-
pub const XDP_RX_RING: c_int = 2;
1058-
pub const XDP_TX_RING: c_int = 3;
1059-
pub const XDP_UMEM_REG: c_int = 4;
1060-
pub const XDP_UMEM_FILL_RING: c_int = 5;
1061-
pub const XDP_UMEM_COMPLETION_RING: c_int = 6;
1062-
pub const XDP_STATISTICS: c_int = 7;
1063-
pub const XDP_OPTIONS: c_int = 8;
1064-
1065-
pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0;
1066-
1067-
pub const XDP_PGOFF_RX_RING: off_t = 0;
1068-
pub const XDP_PGOFF_TX_RING: off_t = 0x80000000;
1069-
pub const XDP_UMEM_PGOFF_FILL_RING: c_ulonglong = 0x100000000;
1070-
pub const XDP_UMEM_PGOFF_COMPLETION_RING: c_ulonglong = 0x180000000;
1071-
1072-
pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: c_int = 48;
1073-
pub const XSK_UNALIGNED_BUF_ADDR_MASK: c_ulonglong = (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1;
1074-
1075-
pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0;
1076-
1077966
pub const ELFOSABI_ARM_AEABI: u8 = 64;
1078967

1079968
// linux/sched.h

src/unix/linux_like/linux/mod.rs

Lines changed: 116 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,6 +1225,83 @@ s! {
12251225
}
12261226

12271227
// linux/if_xdp.h
1228+
1229+
pub struct sockaddr_xdp {
1230+
pub sxdp_family: crate::__u16,
1231+
pub sxdp_flags: crate::__u16,
1232+
pub sxdp_ifindex: crate::__u32,
1233+
pub sxdp_queue_id: crate::__u32,
1234+
pub sxdp_shared_umem_fd: crate::__u32,
1235+
}
1236+
1237+
pub struct xdp_ring_offset {
1238+
pub producer: crate::__u64,
1239+
pub consumer: crate::__u64,
1240+
pub desc: crate::__u64,
1241+
pub flags: crate::__u64,
1242+
}
1243+
1244+
pub struct xdp_mmap_offsets {
1245+
pub rx: xdp_ring_offset,
1246+
pub tx: xdp_ring_offset,
1247+
pub fr: xdp_ring_offset,
1248+
pub cr: xdp_ring_offset,
1249+
}
1250+
1251+
pub struct xdp_ring_offset_v1 {
1252+
pub producer: crate::__u64,
1253+
pub consumer: crate::__u64,
1254+
pub desc: crate::__u64,
1255+
}
1256+
1257+
pub struct xdp_mmap_offsets_v1 {
1258+
pub rx: xdp_ring_offset_v1,
1259+
pub tx: xdp_ring_offset_v1,
1260+
pub fr: xdp_ring_offset_v1,
1261+
pub cr: xdp_ring_offset_v1,
1262+
}
1263+
1264+
pub struct xdp_umem_reg {
1265+
pub addr: crate::__u64,
1266+
pub len: crate::__u64,
1267+
pub chunk_size: crate::__u32,
1268+
pub headroom: crate::__u32,
1269+
pub flags: crate::__u32,
1270+
pub tx_metadata_len: crate::__u32,
1271+
}
1272+
1273+
pub struct xdp_umem_reg_v1 {
1274+
pub addr: crate::__u64,
1275+
pub len: crate::__u64,
1276+
pub chunk_size: crate::__u32,
1277+
pub headroom: crate::__u32,
1278+
}
1279+
1280+
pub struct xdp_statistics {
1281+
pub rx_dropped: crate::__u64,
1282+
pub rx_invalid_descs: crate::__u64,
1283+
pub tx_invalid_descs: crate::__u64,
1284+
pub rx_ring_full: crate::__u64,
1285+
pub rx_fill_ring_empty_descs: crate::__u64,
1286+
pub tx_ring_empty_descs: crate::__u64,
1287+
}
1288+
1289+
pub struct xdp_statistics_v1 {
1290+
pub rx_dropped: crate::__u64,
1291+
pub rx_invalid_descs: crate::__u64,
1292+
pub tx_invalid_descs: crate::__u64,
1293+
}
1294+
1295+
pub struct xdp_options {
1296+
pub flags: crate::__u32,
1297+
}
1298+
1299+
pub struct xdp_desc {
1300+
pub addr: crate::__u64,
1301+
pub len: crate::__u32,
1302+
pub options: crate::__u32,
1303+
}
1304+
12281305
pub struct xsk_tx_metadata_completion {
12291306
pub tx_timestamp: crate::__u64,
12301307
}
@@ -5671,13 +5748,47 @@ pub const SCHED_FLAG_UTIL_CLAMP_MIN: c_int = 0x20;
56715748
pub const SCHED_FLAG_UTIL_CLAMP_MAX: c_int = 0x40;
56725749

56735750
// linux/if_xdp.h
5674-
pub const XDP_UMEM_TX_SW_CSUM: __u32 = 1 << 1;
5675-
pub const XDP_UMEM_TX_METADATA_LEN: __u32 = 1 << 2;
5751+
pub const XDP_SHARED_UMEM: crate::__u16 = 1 << 0;
5752+
pub const XDP_COPY: crate::__u16 = 1 << 1;
5753+
pub const XDP_ZEROCOPY: crate::__u16 = 1 << 2;
5754+
pub const XDP_USE_NEED_WAKEUP: crate::__u16 = 1 << 3;
5755+
pub const XDP_USE_SG: crate::__u16 = 1 << 4;
5756+
5757+
pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: crate::__u32 = 1 << 0;
5758+
5759+
pub const XDP_RING_NEED_WAKEUP: crate::__u32 = 1 << 0;
5760+
5761+
pub const XDP_MMAP_OFFSETS: c_int = 1;
5762+
pub const XDP_RX_RING: c_int = 2;
5763+
pub const XDP_TX_RING: c_int = 3;
5764+
pub const XDP_UMEM_REG: c_int = 4;
5765+
pub const XDP_UMEM_FILL_RING: c_int = 5;
5766+
pub const XDP_UMEM_COMPLETION_RING: c_int = 6;
5767+
pub const XDP_STATISTICS: c_int = 7;
5768+
pub const XDP_OPTIONS: c_int = 8;
5769+
5770+
pub const XDP_OPTIONS_ZEROCOPY: crate::__u32 = 1 << 0;
5771+
5772+
pub const XDP_PGOFF_RX_RING: crate::off_t = 0;
5773+
pub const XDP_PGOFF_TX_RING: crate::off_t = 0x80000000;
5774+
pub const XDP_UMEM_PGOFF_FILL_RING: crate::c_ulonglong = 0x100000000;
5775+
pub const XDP_UMEM_PGOFF_COMPLETION_RING: crate::c_ulonglong = 0x180000000;
5776+
5777+
pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: crate::c_int = 48;
5778+
pub const XSK_UNALIGNED_BUF_ADDR_MASK: crate::c_ulonglong =
5779+
(1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1;
5780+
5781+
pub const XDP_PKT_CONTD: crate::__u32 = 1 << 0;
5782+
5783+
pub const XDP_UMEM_TX_SW_CSUM: crate::__u32 = 1 << 1;
5784+
pub const XDP_UMEM_TX_METADATA_LEN: crate::__u32 = 1 << 2;
5785+
5786+
pub const XDP_TXMD_FLAGS_TIMESTAMP: crate::__u32 = 1 << 0;
5787+
pub const XDP_TXMD_FLAGS_CHECKSUM: crate::__u32 = 1 << 1;
56765788

5677-
pub const XDP_TXMD_FLAGS_TIMESTAMP: __u32 = 1 << 0;
5678-
pub const XDP_TXMD_FLAGS_CHECKSUM: __u32 = 1 << 1;
5789+
pub const XDP_TX_METADATA: crate::__u32 = 1 << 1;
56795790

5680-
pub const XDP_TX_METADATA: __u32 = 1 << 1;
5791+
pub const SOL_XDP: c_int = 283;
56815792

56825793
// linux/mount.h
56835794
pub const MOUNT_ATTR_RDONLY: crate::__u64 = 0x00000001;

0 commit comments

Comments
 (0)