@@ -31,6 +31,11 @@ use core::mem::MaybeUninit;
31
31
use core:: ptr:: { null_mut, write_bytes} ;
32
32
use linux_raw_sys:: net;
33
33
34
+ // Export types used in io_uring APIs.
35
+ pub use crate :: fs:: { Advice , AtFlags , OFlags , RenameFlags , ResolveFlags , Statx } ;
36
+ pub use crate :: net:: { RecvFlags , SendFlags , SocketFlags } ;
37
+ pub use crate :: timespec:: Timespec ;
38
+
34
39
mod sys {
35
40
pub ( super ) use linux_raw_sys:: io_uring:: * ;
36
41
#[ cfg( test) ]
@@ -1062,20 +1067,20 @@ pub union op_flags_union {
1062
1067
pub sync_range_flags : u32 ,
1063
1068
/// `msg_flags` is split into `send_flags` and `recv_flags`.
1064
1069
#[ doc( alias = "msg_flags" ) ]
1065
- pub send_flags : crate :: net :: SendFlags ,
1070
+ pub send_flags : SendFlags ,
1066
1071
/// `msg_flags` is split into `send_flags` and `recv_flags`.
1067
1072
#[ doc( alias = "msg_flags" ) ]
1068
- pub recv_flags : crate :: net :: RecvFlags ,
1073
+ pub recv_flags : RecvFlags ,
1069
1074
pub timeout_flags : IoringTimeoutFlags ,
1070
- pub accept_flags : crate :: net :: SocketFlags ,
1075
+ pub accept_flags : SocketFlags ,
1071
1076
pub cancel_flags : IoringAsyncCancelFlags ,
1072
- pub open_flags : crate :: fs :: OFlags ,
1073
- pub statx_flags : crate :: fs :: AtFlags ,
1074
- pub fadvise_advice : crate :: fs :: Advice ,
1077
+ pub open_flags : OFlags ,
1078
+ pub statx_flags : AtFlags ,
1079
+ pub fadvise_advice : Advice ,
1075
1080
pub splice_flags : SpliceFlags ,
1076
- pub rename_flags : crate :: fs :: RenameFlags ,
1077
- pub unlink_flags : crate :: fs :: AtFlags ,
1078
- pub hardlink_flags : crate :: fs :: AtFlags ,
1081
+ pub rename_flags : RenameFlags ,
1082
+ pub unlink_flags : AtFlags ,
1083
+ pub hardlink_flags : AtFlags ,
1079
1084
pub msg_ring_flags : IoringMsgringFlags ,
1080
1085
}
1081
1086
@@ -1087,12 +1092,33 @@ pub union buf_union {
1087
1092
pub buf_group : u16 ,
1088
1093
}
1089
1094
1095
+ // TODO: Rename this to include `addr_len` when we have a semver bump?
1090
1096
#[ allow( missing_docs) ]
1091
1097
#[ repr( C ) ]
1092
1098
#[ derive( Copy , Clone ) ]
1093
1099
pub union splice_fd_in_or_file_index_union {
1094
1100
pub splice_fd_in : i32 ,
1095
1101
pub file_index : u32 ,
1102
+ pub addr_len : addr_len_struct ,
1103
+ }
1104
+
1105
+ #[ allow( missing_docs) ]
1106
+ #[ repr( C ) ]
1107
+ #[ derive( Copy , Clone ) ]
1108
+ pub struct addr_len_struct {
1109
+ pub addr_len : u16 ,
1110
+ pub __pad3 : [ u16 ; 1 ] ,
1111
+ }
1112
+
1113
+ #[ allow( missing_docs) ]
1114
+ #[ repr( C ) ]
1115
+ #[ derive( Copy , Clone ) ]
1116
+ pub struct io_uring_sync_cancel_reg {
1117
+ pub addr : u64 ,
1118
+ pub fd : i32 ,
1119
+ pub flags : IoringAsyncCancelFlags ,
1120
+ pub timeout : Timespec ,
1121
+ pub pad : [ u64 ; 4 ] ,
1096
1122
}
1097
1123
1098
1124
/// An io_uring Completion Queue Entry.
@@ -1269,16 +1295,12 @@ pub struct iovec {
1269
1295
#[ derive( Debug , Copy , Clone , Default ) ]
1270
1296
pub struct open_how {
1271
1297
/// An [`OFlags`] value represented as a `u64`.
1272
- ///
1273
- /// [`OFlags`]: crate::fs::OFlags
1274
1298
pub flags : u64 ,
1275
1299
1276
1300
/// A [`Mode`] value represented as a `u64`.
1277
- ///
1278
- /// [`Mode`]: crate::fs::Mode
1279
1301
pub mode : u64 ,
1280
1302
1281
- pub resolve : crate :: fs :: ResolveFlags ,
1303
+ pub resolve : ResolveFlags ,
1282
1304
}
1283
1305
1284
1306
#[ allow( missing_docs) ]
@@ -1377,6 +1399,7 @@ fn io_uring_layouts() {
1377
1399
check_renamed_type ! ( op_flags_union, io_uring_sqe__bindgen_ty_3) ;
1378
1400
check_renamed_type ! ( buf_union, io_uring_sqe__bindgen_ty_4) ;
1379
1401
check_renamed_type ! ( splice_fd_in_or_file_index_union, io_uring_sqe__bindgen_ty_5) ;
1402
+ check_renamed_type ! ( addr_len_struct, io_uring_sqe__bindgen_ty_5__bindgen_ty_1) ;
1380
1403
check_renamed_type ! (
1381
1404
register_or_sqe_op_or_sqe_flags_union,
1382
1405
io_uring_restriction__bindgen_ty_1
@@ -1460,4 +1483,5 @@ fn io_uring_layouts() {
1460
1483
check_struct ! ( open_how, flags, mode, resolve) ;
1461
1484
check_struct ! ( io_uring_buf_reg, ring_addr, ring_entries, bgid, pad, resv) ;
1462
1485
check_struct ! ( io_uring_buf, addr, len, bid, resv) ;
1486
+ check_struct ! ( io_uring_sync_cancel_reg, addr, fd, flags, timeout, pad) ;
1463
1487
}
0 commit comments