authorgravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2020-01-31 19:12:23+11:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-31 10:18:17-05:00
logab46713fa6eb7603e604320b77a4d101d30a0998
treee46ecc794c4391d523e88da2846be2e7fae1eb9b
parent176bc53858053866e2a751e8d1e2a6a52871cff0

std: update for linux 5.5 release


1 files changed, 65 insertions(+), 27 deletions(-)

lib/std/os/bits/linux.zig+65-27
...@@ -604,6 +604,11 @@ pub const CLONE_NEWPID = 0x20000000;...@@ -604,6 +604,11 @@ pub const CLONE_NEWPID = 0x20000000;
604pub const CLONE_NEWNET = 0x40000000;604pub const CLONE_NEWNET = 0x40000000;
605pub const CLONE_IO = 0x80000000;605pub const CLONE_IO = 0x80000000;
606606
607// Flags for the clone3() syscall.
608
609/// Clear any signal handler and reset to SIG_DFL.
610pub const CLONE_CLEAR_SIGHAND = 0x100000000;
611
607pub const EFD_SEMAPHORE = 1;612pub const EFD_SEMAPHORE = 1;
608pub const EFD_CLOEXEC = O_CLOEXEC;613pub const EFD_CLOEXEC = O_CLOEXEC;
609pub const EFD_NONBLOCK = O_NONBLOCK;614pub const EFD_NONBLOCK = O_NONBLOCK;
...@@ -1120,17 +1125,22 @@ pub const io_uring_params = extern struct {...@@ -1120,17 +1125,22 @@ pub const io_uring_params = extern struct {
1120// io_uring_params.features flags1125// io_uring_params.features flags
11211126
1122pub const IORING_FEAT_SINGLE_MMAP = 1 << 0;1127pub const IORING_FEAT_SINGLE_MMAP = 1 << 0;
1128pub const IORING_FEAT_NODROP = 1 << 1;
1129pub const IORING_FEAT_SUBMIT_STABLE = 1 << 2;
11231130
1124// io_uring_params.flags1131// io_uring_params.flags
11251132
1126/// io_context is polled1133/// io_context is polled
1127pub const IORING_SETUP_IOPOLL = (1 << 0);1134pub const IORING_SETUP_IOPOLL = 1 << 0;
11281135
1129/// SQ poll thread1136/// SQ poll thread
1130pub const IORING_SETUP_SQPOLL = (1 << 1);1137pub const IORING_SETUP_SQPOLL = 1 << 1;
11311138
1132/// sq_thread_cpu is valid1139/// sq_thread_cpu is valid
1133pub const IORING_SETUP_SQ_AFF = (1 << 2);1140pub const IORING_SETUP_SQ_AFF = 1 << 2;
1141
1142/// app defines CQ size
1143pub const IORING_SETUP_CQSIZE = 1 << 3;
11341144
1135pub const io_sqring_offsets = extern struct {1145pub const io_sqring_offsets = extern struct {
1136 /// offset of ring head1146 /// offset of ring head
...@@ -1178,52 +1188,73 @@ pub const io_uring_sqe = extern struct {...@@ -1178,52 +1188,73 @@ pub const io_uring_sqe = extern struct {
1178 flags: u8,1188 flags: u8,
1179 ioprio: u16,1189 ioprio: u16,
1180 fd: i32,1190 fd: i32,
1181 off: u64,1191 pub const union1 = extern union {
1192 off: u64,
1193 addr2: u64,
1194 };
1195 union1: union1,
1182 addr: u64,1196 addr: u64,
1183 len: u32,1197 len: u32,
1184 pub const union1 = extern union {1198 pub const union2 = extern union {
1185 rw_flags: kernel_rwf,1199 rw_flags: kernel_rwf,
1186 fsync_flags: u32,1200 fsync_flags: u32,
1187 poll_events: u16,1201 poll_events: u16,
1188 sync_range_flags: u32,1202 sync_range_flags: u32,
1189 msg_flags: u32,1203 msg_flags: u32,
1190 timeout_flags: u32,1204 timeout_flags: u32,
1205 accept_flags: u32,
1206 cancel_flags: u32,
1191 };1207 };
1192 union1: union1,1208 union2: union2,
1193 user_data: u64,1209 user_data: u64,
1194 pub const union2 = extern union {1210 pub const union3 = extern union {
1195 buf_index: u16,1211 buf_index: u16,
1196 __pad2: [3]u64,1212 __pad2: [3]u64,
1197 };1213 };
1198 union2: union2,1214 union3: union3,
1199};1215};
12001216
1201// io_uring_sqe.flags1217// io_uring_sqe.flags
12021218
1203/// use fixed fileset1219/// use fixed fileset
1204pub const IOSQE_FIXED_FILE = (1 << 0);1220pub const IOSQE_FIXED_FILE = 1 << 0;
12051221
1206/// issue after inflight IO1222/// issue after inflight IO
1207pub const IOSQE_IO_DRAIN = (1 << 1);1223pub const IOSQE_IO_DRAIN = 1 << 1;
12081224
1209/// links next sqe1225/// links next sqe
1210pub const IOSQE_IO_LINK = (1 << 2);1226pub const IOSQE_IO_LINK = 1 << 2;
12111227
1212pub const IORING_OP_NOP = 0;1228/// like LINK, but stronger
1213pub const IORING_OP_READV = 1;1229pub const IOSQE_IO_HARDLINK = 1 << 3;
1214pub const IORING_OP_WRITEV = 2;1230
1215pub const IORING_OP_FSYNC = 3;1231pub const IORING_OP = extern enum {
1216pub const IORING_OP_READ_FIXED = 4;1232 NOP,
1217pub const IORING_OP_WRITE_FIXED = 5;1233 READV,
1218pub const IORING_OP_POLL_ADD = 6;1234 WRITEV,
1219pub const IORING_OP_POLL_REMOVE = 7;1235 FSYNC,
1220pub const IORING_OP_SYNC_FILE_RANGE = 8;1236 READ_FIXED,
1221pub const IORING_OP_SENDMSG = 9;1237 WRITE_FIXED,
1222pub const IORING_OP_RECVMSG = 10;1238 POLL_ADD,
1223pub const IORING_OP_TIMEOUT = 11;1239 POLL_REMOVE,
1240 SYNC_FILE_RANGE,
1241 SENDMSG,
1242 RECVMSG,
1243 TIMEOUT,
1244 TIMEOUT_REMOVE,
1245 ACCEPT,
1246 ASYNC_CANCEL,
1247 LINK_TIMEOUT,
1248 CONNECT,
1249
1250 _,
1251};
12241252
1225// io_uring_sqe.fsync_flags1253// io_uring_sqe.fsync_flags
1226pub const IORING_FSYNC_DATASYNC = (1 << 0);1254pub const IORING_FSYNC_DATASYNC = 1 << 0;
1255
1256// io_uring_sqe.timeout_flags
1257pub const IORING_TIMEOUT_ABS = 1 << 0;
12271258
1228// IO completion data structure (Completion Queue Entry)1259// IO completion data structure (Completion Queue Entry)
1229pub const io_uring_cqe = extern struct {1260pub const io_uring_cqe = extern struct {
...@@ -1240,8 +1271,8 @@ pub const IORING_OFF_CQ_RING = 0x8000000;...@@ -1240,8 +1271,8 @@ pub const IORING_OFF_CQ_RING = 0x8000000;
1240pub const IORING_OFF_SQES = 0x10000000;1271pub const IORING_OFF_SQES = 0x10000000;
12411272
1242// io_uring_enter flags1273// io_uring_enter flags
1243pub const IORING_ENTER_GETEVENTS = (1 << 0);1274pub const IORING_ENTER_GETEVENTS = 1 << 0;
1244pub const IORING_ENTER_SQ_WAKEUP = (1 << 1);1275pub const IORING_ENTER_SQ_WAKEUP = 1 << 1;
12451276
1246// io_uring_register opcodes and arguments1277// io_uring_register opcodes and arguments
1247pub const IORING_REGISTER_BUFFERS = 0;1278pub const IORING_REGISTER_BUFFERS = 0;
...@@ -1250,6 +1281,13 @@ pub const IORING_REGISTER_FILES = 2;...@@ -1250,6 +1281,13 @@ pub const IORING_REGISTER_FILES = 2;
1250pub const IORING_UNREGISTER_FILES = 3;1281pub const IORING_UNREGISTER_FILES = 3;
1251pub const IORING_REGISTER_EVENTFD = 4;1282pub const IORING_REGISTER_EVENTFD = 4;
1252pub const IORING_UNREGISTER_EVENTFD = 5;1283pub const IORING_UNREGISTER_EVENTFD = 5;
1284pub const IORING_REGISTER_FILES_UPDATE = 6;
1285
1286pub const io_uring_files_update = struct {
1287 offset: u32,
1288 resv: u32,
1289 fds: u64,
1290};
12531291
1254pub const utsname = extern struct {1292pub const utsname = extern struct {
1255 sysname: [65]u8,1293 sysname: [65]u8,