authorgravatar for truemedian@gmail.comNameless <truemedian@gmail.com> 2024-04-26 12:57:03-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-04-28 00:20:30-07:00
logaecd9cc6d152443dc7c02dfe373be654d8adae64
tree6789f01a30b6a86720cb4914079376538fd365c5
parentc231d94960ec2cecbea0de877f645ba5d439fd13

std.posix.iovec: use .base and .len instead of .iov_base and .iov_len


21 files changed, 270 insertions(+), 270 deletions(-)

lib/compiler/objcopy.zig+1-1
......@@ -1285,7 +1285,7 @@ const ElfFileHelper = struct {
12851285 for (consolidated.items) |cmd| {
12861286 switch (cmd) {
12871287 .write_data => |data| {
1288 var iovec = [_]std.posix.iovec_const{.{ .iov_base = data.data.ptr, .iov_len = data.data.len }};
1288 var iovec = [_]std.posix.iovec_const{.{ .base = data.data.ptr, .len = data.data.len }};
12891289 try out_file.pwritevAll(&iovec, data.out_offset);
12901290 },
12911291 .copy_range => |range| {
lib/std/crypto/tls/Client.zig+30-30
......@@ -217,12 +217,12 @@ pub fn init(stream: anytype, ca_bundle: Certificate.Bundle, host: []const u8) In
217217 {
218218 var iovecs = [_]std.posix.iovec_const{
219219 .{
220 .iov_base = &plaintext_header,
221 .iov_len = plaintext_header.len,
220 .base = &plaintext_header,
221 .len = plaintext_header.len,
222222 },
223223 .{
224 .iov_base = host.ptr,
225 .iov_len = host.len,
224 .base = host.ptr,
225 .len = host.len,
226226 },
227227 };
228228 try stream.writevAll(&iovecs);
......@@ -678,8 +678,8 @@ pub fn init(stream: anytype, ca_bundle: Certificate.Bundle, host: []const u8) In
678678
679679 const both_msgs = client_change_cipher_spec_msg ++ finished_msg;
680680 var both_msgs_vec = [_]std.posix.iovec_const{.{
681 .iov_base = &both_msgs,
682 .iov_len = both_msgs.len,
681 .base = &both_msgs,
682 .len = both_msgs.len,
683683 }};
684684 try stream.writevAll(&both_msgs_vec);
685685
......@@ -776,8 +776,8 @@ pub fn writeEnd(c: *Client, stream: anytype, bytes: []const u8, end: bool) !usiz
776776 var total_amt: usize = 0;
777777 while (true) {
778778 var amt = try stream.writev(iovecs_buf[i..iovec_end]);
779 while (amt >= iovecs_buf[i].iov_len) {
780 const encrypted_amt = iovecs_buf[i].iov_len;
779 while (amt >= iovecs_buf[i].len) {
780 const encrypted_amt = iovecs_buf[i].len;
781781 total_amt += encrypted_amt - overhead_len;
782782 amt -= encrypted_amt;
783783 i += 1;
......@@ -789,8 +789,8 @@ pub fn writeEnd(c: *Client, stream: anytype, bytes: []const u8, end: bool) !usiz
789789 // not sent; otherwise the caller would not know to retry the call.
790790 if (amt == 0 and (!end or i < iovec_end - 1)) return total_amt;
791791 }
792 iovecs_buf[i].iov_base += amt;
793 iovecs_buf[i].iov_len -= amt;
792 iovecs_buf[i].base += amt;
793 iovecs_buf[i].len -= amt;
794794 }
795795}
796796
......@@ -864,8 +864,8 @@ fn prepareCiphertextRecord(
864864
865865 const record = ciphertext_buf[record_start..ciphertext_end];
866866 iovecs[iovec_end] = .{
867 .iov_base = record.ptr,
868 .iov_len = record.len,
867 .base = record.ptr,
868 .len = record.len,
869869 };
870870 iovec_end += 1;
871871 }
......@@ -885,7 +885,7 @@ pub fn eof(c: Client) bool {
885885/// If the number read is less than `len` it means the stream reached the end.
886886/// Reaching the end of the stream is not an error condition.
887887pub fn readAtLeast(c: *Client, stream: anytype, buffer: []u8, len: usize) !usize {
888 var iovecs = [1]std.posix.iovec{.{ .iov_base = buffer.ptr, .iov_len = buffer.len }};
888 var iovecs = [1]std.posix.iovec{.{ .base = buffer.ptr, .len = buffer.len }};
889889 return readvAtLeast(c, stream, &iovecs, len);
890890}
891891
......@@ -928,12 +928,12 @@ pub fn readvAtLeast(c: *Client, stream: anytype, iovecs: []std.posix.iovec, len:
928928 var amt = try c.readvAdvanced(stream, iovecs[vec_i..]);
929929 off_i += amt;
930930 if (c.eof() or off_i >= len) return off_i;
931 while (amt >= iovecs[vec_i].iov_len) {
932 amt -= iovecs[vec_i].iov_len;
931 while (amt >= iovecs[vec_i].len) {
932 amt -= iovecs[vec_i].len;
933933 vec_i += 1;
934934 }
935 iovecs[vec_i].iov_base += amt;
936 iovecs[vec_i].iov_len -= amt;
935 iovecs[vec_i].base += amt;
936 iovecs[vec_i].len -= amt;
937937 }
938938}
939939
......@@ -1000,12 +1000,12 @@ pub fn readvAdvanced(c: *Client, stream: anytype, iovecs: []const std.posix.iove
10001000
10011001 var ask_iovecs_buf: [2]std.posix.iovec = .{
10021002 .{
1003 .iov_base = first_iov.ptr,
1004 .iov_len = first_iov.len,
1003 .base = first_iov.ptr,
1004 .len = first_iov.len,
10051005 },
10061006 .{
1007 .iov_base = &in_stack_buffer,
1008 .iov_len = in_stack_buffer.len,
1007 .base = &in_stack_buffer,
1008 .len = in_stack_buffer.len,
10091009 },
10101010 };
10111011
......@@ -1364,12 +1364,12 @@ const VecPut = struct {
13641364 var bytes_i: usize = 0;
13651365 while (true) {
13661366 const v = vp.iovecs[vp.idx];
1367 const dest = v.iov_base[vp.off..v.iov_len];
1367 const dest = v.base[vp.off..v.len];
13681368 const src = bytes[bytes_i..][0..@min(dest.len, bytes.len - bytes_i)];
13691369 @memcpy(dest[0..src.len], src);
13701370 bytes_i += src.len;
13711371 vp.off += src.len;
1372 if (vp.off >= v.iov_len) {
1372 if (vp.off >= v.len) {
13731373 vp.off = 0;
13741374 vp.idx += 1;
13751375 if (vp.idx >= vp.iovecs.len) {
......@@ -1388,7 +1388,7 @@ const VecPut = struct {
13881388 fn peek(vp: VecPut) []u8 {
13891389 if (vp.idx >= vp.iovecs.len) return &.{};
13901390 const v = vp.iovecs[vp.idx];
1391 return v.iov_base[vp.off..v.iov_len];
1391 return v.base[vp.off..v.len];
13921392 }
13931393
13941394 // After writing to the result of peek(), one can call next() to
......@@ -1396,7 +1396,7 @@ const VecPut = struct {
13961396 fn next(vp: *VecPut, len: usize) void {
13971397 vp.total += len;
13981398 vp.off += len;
1399 if (vp.off >= vp.iovecs[vp.idx].iov_len) {
1399 if (vp.off >= vp.iovecs[vp.idx].len) {
14001400 vp.off = 0;
14011401 vp.idx += 1;
14021402 }
......@@ -1405,9 +1405,9 @@ const VecPut = struct {
14051405 fn freeSize(vp: VecPut) usize {
14061406 if (vp.idx >= vp.iovecs.len) return 0;
14071407 var total: usize = 0;
1408 total += vp.iovecs[vp.idx].iov_len - vp.off;
1408 total += vp.iovecs[vp.idx].len - vp.off;
14091409 if (vp.idx + 1 >= vp.iovecs.len) return total;
1410 for (vp.iovecs[vp.idx + 1 ..]) |v| total += v.iov_len;
1410 for (vp.iovecs[vp.idx + 1 ..]) |v| total += v.len;
14111411 return total;
14121412 }
14131413};
......@@ -1416,11 +1416,11 @@ const VecPut = struct {
14161416fn limitVecs(iovecs: []std.posix.iovec, len: usize) []std.posix.iovec {
14171417 var bytes_left: usize = len;
14181418 for (iovecs, 0..) |*iovec, vec_i| {
1419 if (bytes_left <= iovec.iov_len) {
1420 iovec.iov_len = bytes_left;
1419 if (bytes_left <= iovec.len) {
1420 iovec.len = bytes_left;
14211421 return iovecs[0 .. vec_i + 1];
14221422 }
1423 bytes_left -= iovec.iov_len;
1423 bytes_left -= iovec.len;
14241424 }
14251425 return iovecs;
14261426}
lib/std/fs/File.zig+32-32
......@@ -1138,7 +1138,7 @@ pub fn readv(self: File, iovecs: []const posix.iovec) ReadError!usize {
11381138 // TODO improve this to use ReadFileScatter
11391139 if (iovecs.len == 0) return @as(usize, 0);
11401140 const first = iovecs[0];
1141 return windows.ReadFile(self.handle, first.iov_base[0..first.iov_len], null);
1141 return windows.ReadFile(self.handle, first.base[0..first.len], null);
11421142 }
11431143
11441144 return posix.readv(self.handle, iovecs);
......@@ -1153,7 +1153,7 @@ pub fn readv(self: File, iovecs: []const posix.iovec) ReadError!usize {
11531153/// reads from the underlying OS layer.
11541154/// * The OS layer expects pointer addresses to be inside the application's address space
11551155/// even if the length is zero. Meanwhile, in Zig, slices may have undefined pointer
1156/// addresses when the length is zero. So this function modifies the iov_base fields
1156/// addresses when the length is zero. So this function modifies the base fields
11571157/// when the length is zero.
11581158///
11591159/// Related open issue: https://github.com/ziglang/zig/issues/7699
......@@ -1165,7 +1165,7 @@ pub fn readvAll(self: File, iovecs: []posix.iovec) ReadError!usize {
11651165 // addresses outside the application's address space.
11661166 var garbage: [1]u8 = undefined;
11671167 for (iovecs) |*v| {
1168 if (v.iov_len == 0) v.iov_base = &garbage;
1168 if (v.len == 0) v.base = &garbage;
11691169 }
11701170
11711171 var i: usize = 0;
......@@ -1174,15 +1174,15 @@ pub fn readvAll(self: File, iovecs: []posix.iovec) ReadError!usize {
11741174 var amt = try self.readv(iovecs[i..]);
11751175 var eof = amt == 0;
11761176 off += amt;
1177 while (amt >= iovecs[i].iov_len) {
1178 amt -= iovecs[i].iov_len;
1177 while (amt >= iovecs[i].len) {
1178 amt -= iovecs[i].len;
11791179 i += 1;
11801180 if (i >= iovecs.len) return off;
11811181 eof = false;
11821182 }
11831183 if (eof) return off;
1184 iovecs[i].iov_base += amt;
1185 iovecs[i].iov_len -= amt;
1184 iovecs[i].base += amt;
1185 iovecs[i].len -= amt;
11861186 }
11871187}
11881188
......@@ -1194,7 +1194,7 @@ pub fn preadv(self: File, iovecs: []const posix.iovec, offset: u64) PReadError!u
11941194 // TODO improve this to use ReadFileScatter
11951195 if (iovecs.len == 0) return @as(usize, 0);
11961196 const first = iovecs[0];
1197 return windows.ReadFile(self.handle, first.iov_base[0..first.iov_len], offset);
1197 return windows.ReadFile(self.handle, first.base[0..first.len], offset);
11981198 }
11991199
12001200 return posix.preadv(self.handle, iovecs, offset);
......@@ -1217,15 +1217,15 @@ pub fn preadvAll(self: File, iovecs: []posix.iovec, offset: u64) PReadError!usiz
12171217 var amt = try self.preadv(iovecs[i..], offset + off);
12181218 var eof = amt == 0;
12191219 off += amt;
1220 while (amt >= iovecs[i].iov_len) {
1221 amt -= iovecs[i].iov_len;
1220 while (amt >= iovecs[i].len) {
1221 amt -= iovecs[i].len;
12221222 i += 1;
12231223 if (i >= iovecs.len) return off;
12241224 eof = false;
12251225 }
12261226 if (eof) return off;
1227 iovecs[i].iov_base += amt;
1228 iovecs[i].iov_len -= amt;
1227 iovecs[i].base += amt;
1228 iovecs[i].len -= amt;
12291229 }
12301230}
12311231
......@@ -1273,7 +1273,7 @@ pub fn writev(self: File, iovecs: []const posix.iovec_const) WriteError!usize {
12731273 // TODO improve this to use WriteFileScatter
12741274 if (iovecs.len == 0) return @as(usize, 0);
12751275 const first = iovecs[0];
1276 return windows.WriteFile(self.handle, first.iov_base[0..first.iov_len], null);
1276 return windows.WriteFile(self.handle, first.base[0..first.len], null);
12771277 }
12781278
12791279 return posix.writev(self.handle, iovecs);
......@@ -1284,7 +1284,7 @@ pub fn writev(self: File, iovecs: []const posix.iovec_const) WriteError!usize {
12841284/// writes from the underlying OS layer.
12851285/// * The OS layer expects pointer addresses to be inside the application's address space
12861286/// even if the length is zero. Meanwhile, in Zig, slices may have undefined pointer
1287/// addresses when the length is zero. So this function modifies the iov_base fields
1287/// addresses when the length is zero. So this function modifies the base fields
12881288/// when the length is zero.
12891289/// See https://github.com/ziglang/zig/issues/7699
12901290/// See equivalent function: `std.net.Stream.writevAll`.
......@@ -1296,19 +1296,19 @@ pub fn writevAll(self: File, iovecs: []posix.iovec_const) WriteError!void {
12961296 // addresses outside the application's address space.
12971297 var garbage: [1]u8 = undefined;
12981298 for (iovecs) |*v| {
1299 if (v.iov_len == 0) v.iov_base = &garbage;
1299 if (v.len == 0) v.base = &garbage;
13001300 }
13011301
13021302 var i: usize = 0;
13031303 while (true) {
13041304 var amt = try self.writev(iovecs[i..]);
1305 while (amt >= iovecs[i].iov_len) {
1306 amt -= iovecs[i].iov_len;
1305 while (amt >= iovecs[i].len) {
1306 amt -= iovecs[i].len;
13071307 i += 1;
13081308 if (i >= iovecs.len) return;
13091309 }
1310 iovecs[i].iov_base += amt;
1311 iovecs[i].iov_len -= amt;
1310 iovecs[i].base += amt;
1311 iovecs[i].len -= amt;
13121312 }
13131313}
13141314
......@@ -1320,7 +1320,7 @@ pub fn pwritev(self: File, iovecs: []posix.iovec_const, offset: u64) PWriteError
13201320 // TODO improve this to use WriteFileScatter
13211321 if (iovecs.len == 0) return @as(usize, 0);
13221322 const first = iovecs[0];
1323 return windows.WriteFile(self.handle, first.iov_base[0..first.iov_len], offset);
1323 return windows.WriteFile(self.handle, first.base[0..first.len], offset);
13241324 }
13251325
13261326 return posix.pwritev(self.handle, iovecs, offset);
......@@ -1339,13 +1339,13 @@ pub fn pwritevAll(self: File, iovecs: []posix.iovec_const, offset: u64) PWriteEr
13391339 while (true) {
13401340 var amt = try self.pwritev(iovecs[i..], offset + off);
13411341 off += amt;
1342 while (amt >= iovecs[i].iov_len) {
1343 amt -= iovecs[i].iov_len;
1342 while (amt >= iovecs[i].len) {
1343 amt -= iovecs[i].len;
13441344 i += 1;
13451345 if (i >= iovecs.len) return;
13461346 }
1347 iovecs[i].iov_base += amt;
1348 iovecs[i].iov_len -= amt;
1347 iovecs[i].base += amt;
1348 iovecs[i].len -= amt;
13491349 }
13501350}
13511351
......@@ -1456,13 +1456,13 @@ fn writeFileAllSendfile(self: File, in_file: File, args: WriteFileOptions) posix
14561456 var i: usize = 0;
14571457 while (i < headers.len) {
14581458 amt = try posix.sendfile(out_fd, in_fd, offset, count, headers[i..], trls, flags);
1459 while (amt >= headers[i].iov_len) {
1460 amt -= headers[i].iov_len;
1459 while (amt >= headers[i].len) {
1460 amt -= headers[i].len;
14611461 i += 1;
14621462 if (i >= headers.len) break :hdrs;
14631463 }
1464 headers[i].iov_base += amt;
1465 headers[i].iov_len -= amt;
1464 headers[i].base += amt;
1465 headers[i].len -= amt;
14661466 }
14671467 }
14681468 if (count == 0) {
......@@ -1482,13 +1482,13 @@ fn writeFileAllSendfile(self: File, in_file: File, args: WriteFileOptions) posix
14821482 }
14831483 var i: usize = 0;
14841484 while (i < trailers.len) {
1485 while (amt >= trailers[i].iov_len) {
1486 amt -= trailers[i].iov_len;
1485 while (amt >= trailers[i].len) {
1486 amt -= trailers[i].len;
14871487 i += 1;
14881488 if (i >= trailers.len) return;
14891489 }
1490 trailers[i].iov_base += amt;
1491 trailers[i].iov_len -= amt;
1490 trailers[i].base += amt;
1491 trailers[i].len -= amt;
14921492 amt = try posix.writev(self.handle, trailers[i..]);
14931493 }
14941494}
lib/std/fs/test.zig+28-28
......@@ -1276,22 +1276,22 @@ test "writev, readv" {
12761276 var buf2: [line2.len]u8 = undefined;
12771277 var write_vecs = [_]posix.iovec_const{
12781278 .{
1279 .iov_base = line1,
1280 .iov_len = line1.len,
1279 .base = line1,
1280 .len = line1.len,
12811281 },
12821282 .{
1283 .iov_base = line2,
1284 .iov_len = line2.len,
1283 .base = line2,
1284 .len = line2.len,
12851285 },
12861286 };
12871287 var read_vecs = [_]posix.iovec{
12881288 .{
1289 .iov_base = &buf2,
1290 .iov_len = buf2.len,
1289 .base = &buf2,
1290 .len = buf2.len,
12911291 },
12921292 .{
1293 .iov_base = &buf1,
1294 .iov_len = buf1.len,
1293 .base = &buf1,
1294 .len = buf1.len,
12951295 },
12961296 };
12971297
......@@ -1318,22 +1318,22 @@ test "pwritev, preadv" {
13181318 var buf2: [line2.len]u8 = undefined;
13191319 var write_vecs = [_]posix.iovec_const{
13201320 .{
1321 .iov_base = line1,
1322 .iov_len = line1.len,
1321 .base = line1,
1322 .len = line1.len,
13231323 },
13241324 .{
1325 .iov_base = line2,
1326 .iov_len = line2.len,
1325 .base = line2,
1326 .len = line2.len,
13271327 },
13281328 };
13291329 var read_vecs = [_]posix.iovec{
13301330 .{
1331 .iov_base = &buf2,
1332 .iov_len = buf2.len,
1331 .base = &buf2,
1332 .len = buf2.len,
13331333 },
13341334 .{
1335 .iov_base = &buf1,
1336 .iov_len = buf1.len,
1335 .base = &buf1,
1336 .len = buf1.len,
13371337 },
13381338 };
13391339
......@@ -1378,12 +1378,12 @@ test "sendfile" {
13781378 const line2 = "second line\n";
13791379 var vecs = [_]posix.iovec_const{
13801380 .{
1381 .iov_base = line1,
1382 .iov_len = line1.len,
1381 .base = line1,
1382 .len = line1.len,
13831383 },
13841384 .{
1385 .iov_base = line2,
1386 .iov_len = line2.len,
1385 .base = line2,
1386 .len = line2.len,
13871387 },
13881388 };
13891389
......@@ -1401,20 +1401,20 @@ test "sendfile" {
14011401 const trailer2 = "second trailer\n";
14021402 var hdtr = [_]posix.iovec_const{
14031403 .{
1404 .iov_base = header1,
1405 .iov_len = header1.len,
1404 .base = header1,
1405 .len = header1.len,
14061406 },
14071407 .{
1408 .iov_base = header2,
1409 .iov_len = header2.len,
1408 .base = header2,
1409 .len = header2.len,
14101410 },
14111411 .{
1412 .iov_base = trailer1,
1413 .iov_len = trailer1.len,
1412 .base = trailer1,
1413 .len = trailer1.len,
14141414 },
14151415 .{
1416 .iov_base = trailer2,
1417 .iov_len = trailer2.len,
1416 .base = trailer2,
1417 .len = trailer2.len,
14181418 },
14191419 };
14201420
lib/std/http/Client.zig+3-3
......@@ -253,7 +253,7 @@ pub const Connection = struct {
253253 if (conn.read_end != conn.read_start) return;
254254
255255 var iovecs = [1]std.posix.iovec{
256 .{ .iov_base = &conn.read_buf, .iov_len = conn.read_buf.len },
256 .{ .base = &conn.read_buf, .len = conn.read_buf.len },
257257 };
258258 const nread = try conn.readvDirect(&iovecs);
259259 if (nread == 0) return error.EndOfStream;
......@@ -289,8 +289,8 @@ pub const Connection = struct {
289289 }
290290
291291 var iovecs = [2]std.posix.iovec{
292 .{ .iov_base = buffer.ptr, .iov_len = buffer.len },
293 .{ .iov_base = &conn.read_buf, .iov_len = conn.read_buf.len },
292 .{ .base = buffer.ptr, .len = buffer.len },
293 .{ .base = &conn.read_buf, .len = conn.read_buf.len },
294294 };
295295 const nread = try conn.readvDirect(&iovecs);
296296
lib/std/http/Server.zig+56-56
......@@ -442,42 +442,42 @@ pub const Request = struct {
442442 var iovecs_len: usize = 0;
443443
444444 iovecs[iovecs_len] = .{
445 .iov_base = h.items.ptr,
446 .iov_len = h.items.len,
445 .base = h.items.ptr,
446 .len = h.items.len,
447447 };
448448 iovecs_len += 1;
449449
450450 for (options.extra_headers) |header| {
451451 iovecs[iovecs_len] = .{
452 .iov_base = header.name.ptr,
453 .iov_len = header.name.len,
452 .base = header.name.ptr,
453 .len = header.name.len,
454454 };
455455 iovecs_len += 1;
456456
457457 iovecs[iovecs_len] = .{
458 .iov_base = ": ",
459 .iov_len = 2,
458 .base = ": ",
459 .len = 2,
460460 };
461461 iovecs_len += 1;
462462
463463 if (header.value.len != 0) {
464464 iovecs[iovecs_len] = .{
465 .iov_base = header.value.ptr,
466 .iov_len = header.value.len,
465 .base = header.value.ptr,
466 .len = header.value.len,
467467 };
468468 iovecs_len += 1;
469469 }
470470
471471 iovecs[iovecs_len] = .{
472 .iov_base = "\r\n",
473 .iov_len = 2,
472 .base = "\r\n",
473 .len = 2,
474474 };
475475 iovecs_len += 1;
476476 }
477477
478478 iovecs[iovecs_len] = .{
479 .iov_base = "\r\n",
480 .iov_len = 2,
479 .base = "\r\n",
480 .len = 2,
481481 };
482482 iovecs_len += 1;
483483
......@@ -492,33 +492,33 @@ pub const Request = struct {
492492 ) catch unreachable;
493493
494494 iovecs[iovecs_len] = .{
495 .iov_base = chunk_header.ptr,
496 .iov_len = chunk_header.len,
495 .base = chunk_header.ptr,
496 .len = chunk_header.len,
497497 };
498498 iovecs_len += 1;
499499
500500 iovecs[iovecs_len] = .{
501 .iov_base = content.ptr,
502 .iov_len = content.len,
501 .base = content.ptr,
502 .len = content.len,
503503 };
504504 iovecs_len += 1;
505505
506506 iovecs[iovecs_len] = .{
507 .iov_base = "\r\n",
508 .iov_len = 2,
507 .base = "\r\n",
508 .len = 2,
509509 };
510510 iovecs_len += 1;
511511 }
512512
513513 iovecs[iovecs_len] = .{
514 .iov_base = "0\r\n\r\n",
515 .iov_len = 5,
514 .base = "0\r\n\r\n",
515 .len = 5,
516516 };
517517 iovecs_len += 1;
518518 } else if (content.len > 0) {
519519 iovecs[iovecs_len] = .{
520 .iov_base = content.ptr,
521 .iov_len = content.len,
520 .base = content.ptr,
521 .len = content.len,
522522 };
523523 iovecs_len += 1;
524524 }
......@@ -912,12 +912,12 @@ pub const Response = struct {
912912 const send_buffer_len = r.send_buffer_end - r.send_buffer_start;
913913 var iovecs: [2]std.posix.iovec_const = .{
914914 .{
915 .iov_base = r.send_buffer.ptr + r.send_buffer_start,
916 .iov_len = send_buffer_len,
915 .base = r.send_buffer.ptr + r.send_buffer_start,
916 .len = send_buffer_len,
917917 },
918918 .{
919 .iov_base = bytes.ptr,
920 .iov_len = bytes.len,
919 .base = bytes.ptr,
920 .len = bytes.len,
921921 },
922922 };
923923 const n = try r.stream.writev(&iovecs);
......@@ -959,24 +959,24 @@ pub const Response = struct {
959959
960960 var iovecs: [5]std.posix.iovec_const = .{
961961 .{
962 .iov_base = r.send_buffer.ptr + r.send_buffer_start,
963 .iov_len = send_buffer_len - r.chunk_len,
962 .base = r.send_buffer.ptr + r.send_buffer_start,
963 .len = send_buffer_len - r.chunk_len,
964964 },
965965 .{
966 .iov_base = chunk_header.ptr,
967 .iov_len = chunk_header.len,
966 .base = chunk_header.ptr,
967 .len = chunk_header.len,
968968 },
969969 .{
970 .iov_base = r.send_buffer.ptr + r.send_buffer_end - r.chunk_len,
971 .iov_len = r.chunk_len,
970 .base = r.send_buffer.ptr + r.send_buffer_end - r.chunk_len,
971 .len = r.chunk_len,
972972 },
973973 .{
974 .iov_base = bytes.ptr,
975 .iov_len = bytes.len,
974 .base = bytes.ptr,
975 .len = bytes.len,
976976 },
977977 .{
978 .iov_base = "\r\n",
979 .iov_len = 2,
978 .base = "\r\n",
979 .len = 2,
980980 },
981981 };
982982 // TODO make this writev instead of writevAll, which involves
......@@ -1042,69 +1042,69 @@ pub const Response = struct {
10421042 var iovecs_len: usize = 0;
10431043
10441044 iovecs[iovecs_len] = .{
1045 .iov_base = http_headers.ptr,
1046 .iov_len = http_headers.len,
1045 .base = http_headers.ptr,
1046 .len = http_headers.len,
10471047 };
10481048 iovecs_len += 1;
10491049
10501050 if (r.chunk_len > 0) {
10511051 iovecs[iovecs_len] = .{
1052 .iov_base = chunk_header.ptr,
1053 .iov_len = chunk_header.len,
1052 .base = chunk_header.ptr,
1053 .len = chunk_header.len,
10541054 };
10551055 iovecs_len += 1;
10561056
10571057 iovecs[iovecs_len] = .{
1058 .iov_base = r.send_buffer.ptr + r.send_buffer_end - r.chunk_len,
1059 .iov_len = r.chunk_len,
1058 .base = r.send_buffer.ptr + r.send_buffer_end - r.chunk_len,
1059 .len = r.chunk_len,
10601060 };
10611061 iovecs_len += 1;
10621062
10631063 iovecs[iovecs_len] = .{
1064 .iov_base = "\r\n",
1065 .iov_len = 2,
1064 .base = "\r\n",
1065 .len = 2,
10661066 };
10671067 iovecs_len += 1;
10681068 }
10691069
10701070 if (end_trailers) |trailers| {
10711071 iovecs[iovecs_len] = .{
1072 .iov_base = "0\r\n",
1073 .iov_len = 3,
1072 .base = "0\r\n",
1073 .len = 3,
10741074 };
10751075 iovecs_len += 1;
10761076
10771077 for (trailers) |trailer| {
10781078 iovecs[iovecs_len] = .{
1079 .iov_base = trailer.name.ptr,
1080 .iov_len = trailer.name.len,
1079 .base = trailer.name.ptr,
1080 .len = trailer.name.len,
10811081 };
10821082 iovecs_len += 1;
10831083
10841084 iovecs[iovecs_len] = .{
1085 .iov_base = ": ",
1086 .iov_len = 2,
1085 .base = ": ",
1086 .len = 2,
10871087 };
10881088 iovecs_len += 1;
10891089
10901090 if (trailer.value.len != 0) {
10911091 iovecs[iovecs_len] = .{
1092 .iov_base = trailer.value.ptr,
1093 .iov_len = trailer.value.len,
1092 .base = trailer.value.ptr,
1093 .len = trailer.value.len,
10941094 };
10951095 iovecs_len += 1;
10961096 }
10971097
10981098 iovecs[iovecs_len] = .{
1099 .iov_base = "\r\n",
1100 .iov_len = 2,
1099 .base = "\r\n",
1100 .len = 2,
11011101 };
11021102 iovecs_len += 1;
11031103 }
11041104
11051105 iovecs[iovecs_len] = .{
1106 .iov_base = "\r\n",
1107 .iov_len = 2,
1106 .base = "\r\n",
1107 .len = 2,
11081108 };
11091109 iovecs_len += 1;
11101110 }
lib/std/net.zig+5-5
......@@ -1826,7 +1826,7 @@ pub const Stream = struct {
18261826 // TODO improve this to use ReadFileScatter
18271827 if (iovecs.len == 0) return @as(usize, 0);
18281828 const first = iovecs[0];
1829 return windows.ReadFile(s.handle, first.iov_base[0..first.iov_len], null);
1829 return windows.ReadFile(s.handle, first.base[0..first.len], null);
18301830 }
18311831
18321832 return posix.readv(s.handle, iovecs);
......@@ -1889,13 +1889,13 @@ pub const Stream = struct {
18891889 var i: usize = 0;
18901890 while (true) {
18911891 var amt = try self.writev(iovecs[i..]);
1892 while (amt >= iovecs[i].iov_len) {
1893 amt -= iovecs[i].iov_len;
1892 while (amt >= iovecs[i].len) {
1893 amt -= iovecs[i].len;
18941894 i += 1;
18951895 if (i >= iovecs.len) return;
18961896 }
1897 iovecs[i].iov_base += amt;
1898 iovecs[i].iov_len -= amt;
1897 iovecs[i].base += amt;
1898 iovecs[i].len -= amt;
18991899 }
19001900 }
19011901};
lib/std/os/linux.zig+2-2
......@@ -1644,7 +1644,7 @@ pub fn sendmmsg(fd: i32, msgvec: [*]mmsghdr_const, vlen: u32, flags: u32) usize
16441644 var size: i32 = 0;
16451645 const msg_iovlen = @as(usize, @intCast(msg.msg_hdr.msg_iovlen)); // kernel side this is treated as unsigned
16461646 for (msg.msg_hdr.msg_iov[0..msg_iovlen]) |iov| {
1647 if (iov.iov_len > std.math.maxInt(i32) or @addWithOverflow(size, @as(i32, @intCast(iov.iov_len)))[1] != 0) {
1647 if (iov.len > std.math.maxInt(i32) or @addWithOverflow(size, @as(i32, @intCast(iov.len)))[1] != 0) {
16481648 // batch-send all messages up to the current message
16491649 if (next_unsent < i) {
16501650 const batch_size = i - next_unsent;
......@@ -1660,7 +1660,7 @@ pub fn sendmmsg(fd: i32, msgvec: [*]mmsghdr_const, vlen: u32, flags: u32) usize
16601660 next_unsent = i + 1;
16611661 break;
16621662 }
1663 size += iov.iov_len;
1663 size += iov.len;
16641664 }
16651665 }
16661666 if (next_unsent < kvlen or next_unsent == 0) { // want to make sure at least one syscall occurs (e.g. to trigger MSG.EOR)
lib/std/os/linux/IoUring.zig+12-12
......@@ -1766,7 +1766,7 @@ test "readv" {
17661766 try ring.register_files(registered_fds[0..]);
17671767
17681768 var buffer = [_]u8{42} ** 128;
1769 var iovecs = [_]posix.iovec{posix.iovec{ .iov_base = &buffer, .iov_len = buffer.len }};
1769 var iovecs = [_]posix.iovec{posix.iovec{ .base = &buffer, .len = buffer.len }};
17701770 const sqe = try ring.read(0xcccccccc, fd_index, .{ .iovecs = iovecs[0..] }, 0);
17711771 try testing.expectEqual(linux.IORING_OP.READV, sqe.opcode);
17721772 sqe.flags |= linux.IOSQE_FIXED_FILE;
......@@ -1803,11 +1803,11 @@ test "writev/fsync/readv" {
18031803
18041804 const buffer_write = [_]u8{42} ** 128;
18051805 const iovecs_write = [_]posix.iovec_const{
1806 posix.iovec_const{ .iov_base = &buffer_write, .iov_len = buffer_write.len },
1806 posix.iovec_const{ .base = &buffer_write, .len = buffer_write.len },
18071807 };
18081808 var buffer_read = [_]u8{0} ** 128;
18091809 var iovecs_read = [_]posix.iovec{
1810 posix.iovec{ .iov_base = &buffer_read, .iov_len = buffer_read.len },
1810 posix.iovec{ .base = &buffer_read, .len = buffer_read.len },
18111811 };
18121812
18131813 const sqe_writev = try ring.writev(0xdddddddd, fd, iovecs_write[0..], 17);
......@@ -1995,8 +1995,8 @@ test "write_fixed/read_fixed" {
19951995 raw_buffers[0][0.."foobar".len].* = "foobar".*;
19961996
19971997 var buffers = [2]posix.iovec{
1998 .{ .iov_base = &raw_buffers[0], .iov_len = raw_buffers[0].len },
1999 .{ .iov_base = &raw_buffers[1], .iov_len = raw_buffers[1].len },
1998 .{ .base = &raw_buffers[0], .len = raw_buffers[0].len },
1999 .{ .base = &raw_buffers[1], .len = raw_buffers[1].len },
20002000 };
20012001 ring.register_buffers(&buffers) catch |err| switch (err) {
20022002 error.SystemResources => {
......@@ -2022,18 +2022,18 @@ test "write_fixed/read_fixed" {
20222022
20232023 try testing.expectEqual(linux.io_uring_cqe{
20242024 .user_data = 0x45454545,
2025 .res = @as(i32, @intCast(buffers[0].iov_len)),
2025 .res = @as(i32, @intCast(buffers[0].len)),
20262026 .flags = 0,
20272027 }, cqe_write);
20282028 try testing.expectEqual(linux.io_uring_cqe{
20292029 .user_data = 0x12121212,
2030 .res = @as(i32, @intCast(buffers[1].iov_len)),
2030 .res = @as(i32, @intCast(buffers[1].len)),
20312031 .flags = 0,
20322032 }, cqe_read);
20332033
2034 try testing.expectEqualSlices(u8, "\x00\x00\x00", buffers[1].iov_base[0..3]);
2035 try testing.expectEqualSlices(u8, "foobar", buffers[1].iov_base[3..9]);
2036 try testing.expectEqualSlices(u8, "zz", buffers[1].iov_base[9..11]);
2034 try testing.expectEqualSlices(u8, "\x00\x00\x00", buffers[1].base[0..3]);
2035 try testing.expectEqualSlices(u8, "foobar", buffers[1].base[3..9]);
2036 try testing.expectEqualSlices(u8, "zz", buffers[1].base[9..11]);
20372037}
20382038
20392039test "openat" {
......@@ -2189,7 +2189,7 @@ test "sendmsg/recvmsg" {
21892189
21902190 const buffer_send = [_]u8{42} ** 128;
21912191 const iovecs_send = [_]posix.iovec_const{
2192 posix.iovec_const{ .iov_base = &buffer_send, .iov_len = buffer_send.len },
2192 posix.iovec_const{ .base = &buffer_send, .len = buffer_send.len },
21932193 };
21942194 const msg_send: posix.msghdr_const = .{
21952195 .name = &address_server.any,
......@@ -2207,7 +2207,7 @@ test "sendmsg/recvmsg" {
22072207
22082208 var buffer_recv = [_]u8{0} ** 128;
22092209 var iovecs_recv = [_]posix.iovec{
2210 posix.iovec{ .iov_base = &buffer_recv, .iov_len = buffer_recv.len },
2210 posix.iovec{ .base = &buffer_recv, .len = buffer_recv.len },
22112211 };
22122212 const addr = [_]u8{0} ** 4;
22132213 var address_recv = net.Address.initIp4(addr, 0);
lib/std/os/linux/io_uring_sqe.zig+2-2
......@@ -117,12 +117,12 @@ pub const io_uring_sqe = extern struct {
117117 }
118118
119119 pub fn prep_read_fixed(sqe: *linux.io_uring_sqe, fd: linux.fd_t, buffer: *std.posix.iovec, offset: u64, buffer_index: u16) void {
120 sqe.prep_rw(.READ_FIXED, fd, @intFromPtr(buffer.iov_base), buffer.iov_len, offset);
120 sqe.prep_rw(.READ_FIXED, fd, @intFromPtr(buffer.base), buffer.len, offset);
121121 sqe.buf_index = buffer_index;
122122 }
123123
124124 pub fn prep_write_fixed(sqe: *linux.io_uring_sqe, fd: linux.fd_t, buffer: *std.posix.iovec, offset: u64, buffer_index: u16) void {
125 sqe.prep_rw(.WRITE_FIXED, fd, @intFromPtr(buffer.iov_base), buffer.iov_len, offset);
125 sqe.prep_rw(.WRITE_FIXED, fd, @intFromPtr(buffer.base), buffer.len, offset);
126126 sqe.buf_index = buffer_index;
127127 }
128128
lib/std/posix.zig+17-17
......@@ -173,13 +173,13 @@ pub const W_OK = system.W_OK;
173173pub const X_OK = system.X_OK;
174174
175175pub const iovec = extern struct {
176 iov_base: [*]u8,
177 iov_len: usize,
176 base: [*]u8,
177 len: usize,
178178};
179179
180180pub const iovec_const = extern struct {
181 iov_base: [*]const u8,
182 iov_len: usize,
181 base: [*]const u8,
182 len: usize,
183183};
184184
185185pub const ACCMODE = enum(u2) {
......@@ -796,8 +796,8 @@ pub fn read(fd: fd_t, buf: []u8) ReadError!usize {
796796 }
797797 if (native_os == .wasi and !builtin.link_libc) {
798798 const iovs = [1]iovec{iovec{
799 .iov_base = buf.ptr,
800 .iov_len = buf.len,
799 .base = buf.ptr,
800 .len = buf.len,
801801 }};
802802
803803 var nread: usize = undefined;
......@@ -865,7 +865,7 @@ pub fn readv(fd: fd_t, iov: []const iovec) ReadError!usize {
865865 // TODO improve this to use ReadFileScatter
866866 if (iov.len == 0) return 0;
867867 const first = iov[0];
868 return read(fd, first.iov_base[0..first.iov_len]);
868 return read(fd, first.base[0..first.len]);
869869 }
870870 if (native_os == .wasi and !builtin.link_libc) {
871871 var nread: usize = undefined;
......@@ -932,8 +932,8 @@ pub fn pread(fd: fd_t, buf: []u8, offset: u64) PReadError!usize {
932932 }
933933 if (native_os == .wasi and !builtin.link_libc) {
934934 const iovs = [1]iovec{iovec{
935 .iov_base = buf.ptr,
936 .iov_len = buf.len,
935 .base = buf.ptr,
936 .len = buf.len,
937937 }};
938938
939939 var nread: usize = undefined;
......@@ -1077,7 +1077,7 @@ pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize {
10771077 // So we simply read into the first vector only.
10781078 if (iov.len == 0) return 0;
10791079 const first = iov[0];
1080 return pread(fd, first.iov_base[0..first.iov_len], offset);
1080 return pread(fd, first.base[0..first.len], offset);
10811081 }
10821082 if (native_os == .wasi and !builtin.link_libc) {
10831083 var nread: usize = undefined;
......@@ -1186,8 +1186,8 @@ pub fn write(fd: fd_t, bytes: []const u8) WriteError!usize {
11861186
11871187 if (native_os == .wasi and !builtin.link_libc) {
11881188 const ciovs = [_]iovec_const{iovec_const{
1189 .iov_base = bytes.ptr,
1190 .iov_len = bytes.len,
1189 .base = bytes.ptr,
1190 .len = bytes.len,
11911191 }};
11921192 var nwritten: usize = undefined;
11931193 switch (wasi.fd_write(fd, &ciovs, ciovs.len, &nwritten)) {
......@@ -1263,7 +1263,7 @@ pub fn writev(fd: fd_t, iov: []const iovec_const) WriteError!usize {
12631263 // TODO improve this to use WriteFileScatter
12641264 if (iov.len == 0) return 0;
12651265 const first = iov[0];
1266 return write(fd, first.iov_base[0..first.iov_len]);
1266 return write(fd, first.base[0..first.len]);
12671267 }
12681268 if (native_os == .wasi and !builtin.link_libc) {
12691269 var nwritten: usize = undefined;
......@@ -1340,8 +1340,8 @@ pub fn pwrite(fd: fd_t, bytes: []const u8, offset: u64) PWriteError!usize {
13401340 }
13411341 if (native_os == .wasi and !builtin.link_libc) {
13421342 const ciovs = [1]iovec_const{iovec_const{
1343 .iov_base = bytes.ptr,
1344 .iov_len = bytes.len,
1343 .base = bytes.ptr,
1344 .len = bytes.len,
13451345 }};
13461346
13471347 var nwritten: usize = undefined;
......@@ -1432,7 +1432,7 @@ pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) PWriteError!usiz
14321432 // So we simply write the first vector only.
14331433 if (iov.len == 0) return 0;
14341434 const first = iov[0];
1435 return pwrite(fd, first.iov_base[0..first.iov_len], offset);
1435 return pwrite(fd, first.base[0..first.len], offset);
14361436 }
14371437 if (native_os == .wasi and !builtin.link_libc) {
14381438 var nwritten: usize = undefined;
......@@ -6361,7 +6361,7 @@ pub fn sendfile(
63616361fn count_iovec_bytes(iovs: []const iovec_const) usize {
63626362 var count: usize = 0;
63636363 for (iovs) |iov| {
6364 count += iov.iov_len;
6364 count += iov.len;
63656365 }
63666366 return count;
63676367}
lib/std/posix/test.zig+1-1
......@@ -939,7 +939,7 @@ test "writev longer than IOV_MAX" {
939939 var file = try tmp.dir.createFile("pwritev", .{});
940940 defer file.close();
941941
942 const iovecs = [_]posix.iovec_const{.{ .iov_base = "a", .iov_len = 1 }} ** (posix.IOV_MAX + 1);
942 const iovecs = [_]posix.iovec_const{.{ .base = "a", .len = 1 }} ** (posix.IOV_MAX + 1);
943943 const amt = try file.writev(&iovecs);
944944 try testing.expectEqual(@as(usize, posix.IOV_MAX), amt);
945945}
lib/std/zig/Server.zig+4-4
......@@ -149,13 +149,13 @@ pub fn serveMessage(
149149 var iovecs: [10]std.posix.iovec_const = undefined;
150150 const header_le = bswap(header);
151151 iovecs[0] = .{
152 .iov_base = @as([*]const u8, @ptrCast(&header_le)),
153 .iov_len = @sizeOf(OutMessage.Header),
152 .base = @as([*]const u8, @ptrCast(&header_le)),
153 .len = @sizeOf(OutMessage.Header),
154154 };
155155 for (bufs, iovecs[1 .. bufs.len + 1]) |buf, *iovec| {
156156 iovec.* = .{
157 .iov_base = buf.ptr,
158 .iov_len = buf.len,
157 .base = buf.ptr,
158 .len = buf.len,
159159 };
160160 }
161161 try s.out.writevAll(iovecs[0 .. bufs.len + 1]);
src/Compilation.zig+4-4
......@@ -2811,8 +2811,8 @@ fn addBuf(bufs_list: []std.posix.iovec_const, bufs_len: *usize, buf: []const u8)
28112811 const i = bufs_len.*;
28122812 bufs_len.* = i + 1;
28132813 bufs_list[i] = .{
2814 .iov_base = buf.ptr,
2815 .iov_len = buf.len,
2814 .base = buf.ptr,
2815 .len = buf.len,
28162816 };
28172817}
28182818
......@@ -3800,8 +3800,8 @@ fn docsCopyModule(comp: *Compilation, module: *Package.Module, name: []const u8,
38003800 };
38013801
38023802 var header_and_trailer: [2]std.posix.iovec_const = .{
3803 .{ .iov_base = header_bytes.ptr, .iov_len = header_bytes.len },
3804 .{ .iov_base = padding.ptr, .iov_len = padding.len },
3803 .{ .base = header_bytes.ptr, .len = header_bytes.len },
3804 .{ .base = padding.ptr, .len = padding.len },
38053805 };
38063806
38073807 try tar_file.writeFileAll(file, .{
src/Module.zig+18-18
......@@ -2336,24 +2336,24 @@ pub fn astGenFile(mod: *Module, file: *File) !void {
23362336 };
23372337 var iovecs = [_]std.posix.iovec_const{
23382338 .{
2339 .iov_base = @as([*]const u8, @ptrCast(&header)),
2340 .iov_len = @sizeOf(Zir.Header),
2339 .base = @as([*]const u8, @ptrCast(&header)),
2340 .len = @sizeOf(Zir.Header),
23412341 },
23422342 .{
2343 .iov_base = @as([*]const u8, @ptrCast(file.zir.instructions.items(.tag).ptr)),
2344 .iov_len = file.zir.instructions.len,
2343 .base = @as([*]const u8, @ptrCast(file.zir.instructions.items(.tag).ptr)),
2344 .len = file.zir.instructions.len,
23452345 },
23462346 .{
2347 .iov_base = data_ptr,
2348 .iov_len = file.zir.instructions.len * 8,
2347 .base = data_ptr,
2348 .len = file.zir.instructions.len * 8,
23492349 },
23502350 .{
2351 .iov_base = file.zir.string_bytes.ptr,
2352 .iov_len = file.zir.string_bytes.len,
2351 .base = file.zir.string_bytes.ptr,
2352 .len = file.zir.string_bytes.len,
23532353 },
23542354 .{
2355 .iov_base = @as([*]const u8, @ptrCast(file.zir.extra.ptr)),
2356 .iov_len = file.zir.extra.len * 4,
2355 .base = @as([*]const u8, @ptrCast(file.zir.extra.ptr)),
2356 .len = file.zir.extra.len * 4,
23572357 },
23582358 };
23592359 cache_file.writevAll(&iovecs) catch |err| {
......@@ -2424,20 +2424,20 @@ fn loadZirCacheBody(gpa: Allocator, header: Zir.Header, cache_file: std.fs.File)
24242424
24252425 var iovecs = [_]std.posix.iovec{
24262426 .{
2427 .iov_base = @as([*]u8, @ptrCast(zir.instructions.items(.tag).ptr)),
2428 .iov_len = header.instructions_len,
2427 .base = @as([*]u8, @ptrCast(zir.instructions.items(.tag).ptr)),
2428 .len = header.instructions_len,
24292429 },
24302430 .{
2431 .iov_base = data_ptr,
2432 .iov_len = header.instructions_len * 8,
2431 .base = data_ptr,
2432 .len = header.instructions_len * 8,
24332433 },
24342434 .{
2435 .iov_base = zir.string_bytes.ptr,
2436 .iov_len = header.string_bytes_len,
2435 .base = zir.string_bytes.ptr,
2436 .len = header.string_bytes_len,
24372437 },
24382438 .{
2439 .iov_base = @as([*]u8, @ptrCast(zir.extra.ptr)),
2440 .iov_len = header.extra_len * 4,
2439 .base = @as([*]u8, @ptrCast(zir.extra.ptr)),
2440 .len = header.extra_len * 4,
24412441 },
24422442 };
24432443 const amt_read = try cache_file.readvAll(&iovecs);
src/link/C.zig+9-9
......@@ -483,15 +483,15 @@ pub fn flushModule(self: *C, arena: Allocator, prog_node: *std.Progress.Node) !v
483483 }
484484
485485 f.all_buffers.items[ctypes_index] = .{
486 .iov_base = if (f.ctypes_buf.items.len > 0) f.ctypes_buf.items.ptr else "",
487 .iov_len = f.ctypes_buf.items.len,
486 .base = if (f.ctypes_buf.items.len > 0) f.ctypes_buf.items.ptr else "",
487 .len = f.ctypes_buf.items.len,
488488 };
489489 f.file_size += f.ctypes_buf.items.len;
490490
491491 const lazy_fwd_decl_len = self.lazy_fwd_decl_buf.items.len;
492492 f.all_buffers.items[lazy_index] = .{
493 .iov_base = if (lazy_fwd_decl_len > 0) self.lazy_fwd_decl_buf.items.ptr else "",
494 .iov_len = lazy_fwd_decl_len,
493 .base = if (lazy_fwd_decl_len > 0) self.lazy_fwd_decl_buf.items.ptr else "",
494 .len = lazy_fwd_decl_len,
495495 };
496496 f.file_size += lazy_fwd_decl_len;
497497
......@@ -527,7 +527,7 @@ const Flush = struct {
527527
528528 fn appendBufAssumeCapacity(f: *Flush, buf: []const u8) void {
529529 if (buf.len == 0) return;
530 f.all_buffers.appendAssumeCapacity(.{ .iov_base = buf.ptr, .iov_len = buf.len });
530 f.all_buffers.appendAssumeCapacity(.{ .base = buf.ptr, .len = buf.len });
531531 f.file_size += buf.len;
532532 }
533533
......@@ -747,8 +747,8 @@ pub fn flushEmitH(zcu: *Zcu) !void {
747747 var file_size: u64 = zig_h.len;
748748 if (zig_h.len != 0) {
749749 all_buffers.appendAssumeCapacity(.{
750 .iov_base = zig_h,
751 .iov_len = zig_h.len,
750 .base = zig_h,
751 .len = zig_h.len,
752752 });
753753 }
754754
......@@ -757,8 +757,8 @@ pub fn flushEmitH(zcu: *Zcu) !void {
757757 const buf = decl_emit_h.fwd_decl.items;
758758 if (buf.len != 0) {
759759 all_buffers.appendAssumeCapacity(.{
760 .iov_base = buf.ptr,
761 .iov_len = buf.len,
760 .base = buf.ptr,
761 .len = buf.len,
762762 });
763763 file_size += buf.len;
764764 }
src/link/Dwarf.zig+26-26
......@@ -2120,32 +2120,32 @@ fn pwriteDbgLineNops(
21202120 var padding_left = prev_padding_size;
21212121 if (padding_left % 2 != 0) {
21222122 vecs[vec_index] = .{
2123 .iov_base = &three_byte_nop,
2124 .iov_len = three_byte_nop.len,
2123 .base = &three_byte_nop,
2124 .len = three_byte_nop.len,
21252125 };
21262126 vec_index += 1;
21272127 padding_left -= three_byte_nop.len;
21282128 }
21292129 while (padding_left > page_of_nops.len) {
21302130 vecs[vec_index] = .{
2131 .iov_base = &page_of_nops,
2132 .iov_len = page_of_nops.len,
2131 .base = &page_of_nops,
2132 .len = page_of_nops.len,
21332133 };
21342134 vec_index += 1;
21352135 padding_left -= page_of_nops.len;
21362136 }
21372137 if (padding_left > 0) {
21382138 vecs[vec_index] = .{
2139 .iov_base = &page_of_nops,
2140 .iov_len = padding_left,
2139 .base = &page_of_nops,
2140 .len = padding_left,
21412141 };
21422142 vec_index += 1;
21432143 }
21442144 }
21452145
21462146 vecs[vec_index] = .{
2147 .iov_base = buf.ptr,
2148 .iov_len = buf.len,
2147 .base = buf.ptr,
2148 .len = buf.len,
21492149 };
21502150 if (buf.len > 0) vec_index += 1;
21512151
......@@ -2153,24 +2153,24 @@ fn pwriteDbgLineNops(
21532153 var padding_left = next_padding_size;
21542154 if (padding_left % 2 != 0) {
21552155 vecs[vec_index] = .{
2156 .iov_base = &three_byte_nop,
2157 .iov_len = three_byte_nop.len,
2156 .base = &three_byte_nop,
2157 .len = three_byte_nop.len,
21582158 };
21592159 vec_index += 1;
21602160 padding_left -= three_byte_nop.len;
21612161 }
21622162 while (padding_left > page_of_nops.len) {
21632163 vecs[vec_index] = .{
2164 .iov_base = &page_of_nops,
2165 .iov_len = page_of_nops.len,
2164 .base = &page_of_nops,
2165 .len = page_of_nops.len,
21662166 };
21672167 vec_index += 1;
21682168 padding_left -= page_of_nops.len;
21692169 }
21702170 if (padding_left > 0) {
21712171 vecs[vec_index] = .{
2172 .iov_base = &page_of_nops,
2173 .iov_len = padding_left,
2172 .base = &page_of_nops,
2173 .len = padding_left,
21742174 };
21752175 vec_index += 1;
21762176 }
......@@ -2237,24 +2237,24 @@ fn pwriteDbgInfoNops(
22372237 var padding_left = prev_padding_size;
22382238 while (padding_left > page_of_nops.len) {
22392239 vecs[vec_index] = .{
2240 .iov_base = &page_of_nops,
2241 .iov_len = page_of_nops.len,
2240 .base = &page_of_nops,
2241 .len = page_of_nops.len,
22422242 };
22432243 vec_index += 1;
22442244 padding_left -= page_of_nops.len;
22452245 }
22462246 if (padding_left > 0) {
22472247 vecs[vec_index] = .{
2248 .iov_base = &page_of_nops,
2249 .iov_len = padding_left,
2248 .base = &page_of_nops,
2249 .len = padding_left,
22502250 };
22512251 vec_index += 1;
22522252 }
22532253 }
22542254
22552255 vecs[vec_index] = .{
2256 .iov_base = buf.ptr,
2257 .iov_len = buf.len,
2256 .base = buf.ptr,
2257 .len = buf.len,
22582258 };
22592259 if (buf.len > 0) vec_index += 1;
22602260
......@@ -2262,16 +2262,16 @@ fn pwriteDbgInfoNops(
22622262 var padding_left = next_padding_size;
22632263 while (padding_left > page_of_nops.len) {
22642264 vecs[vec_index] = .{
2265 .iov_base = &page_of_nops,
2266 .iov_len = page_of_nops.len,
2265 .base = &page_of_nops,
2266 .len = page_of_nops.len,
22672267 };
22682268 vec_index += 1;
22692269 padding_left -= page_of_nops.len;
22702270 }
22712271 if (padding_left > 0) {
22722272 vecs[vec_index] = .{
2273 .iov_base = &page_of_nops,
2274 .iov_len = padding_left,
2273 .base = &page_of_nops,
2274 .len = padding_left,
22752275 };
22762276 vec_index += 1;
22772277 }
......@@ -2280,8 +2280,8 @@ fn pwriteDbgInfoNops(
22802280 if (trailing_zero) {
22812281 var zbuf = [1]u8{0};
22822282 vecs[vec_index] = .{
2283 .iov_base = &zbuf,
2284 .iov_len = zbuf.len,
2283 .base = &zbuf,
2284 .len = zbuf.len,
22852285 };
22862286 vec_index += 1;
22872287 }
src/link/Elf/ZigObject.zig+4-4
......@@ -965,12 +965,12 @@ fn updateDeclCode(
965965 switch (builtin.os.tag) {
966966 .linux => {
967967 var code_vec: [1]std.posix.iovec_const = .{.{
968 .iov_base = code.ptr,
969 .iov_len = code.len,
968 .base = code.ptr,
969 .len = code.len,
970970 }};
971971 var remote_vec: [1]std.posix.iovec_const = .{.{
972 .iov_base = @as([*]u8, @ptrFromInt(@as(usize, @intCast(sym.address(.{}, elf_file))))),
973 .iov_len = code.len,
972 .base = @as([*]u8, @ptrFromInt(@as(usize, @intCast(sym.address(.{}, elf_file))))),
973 .len = code.len,
974974 }};
975975 const rc = std.os.linux.process_vm_writev(pid, &code_vec, &remote_vec, 0);
976976 switch (std.os.linux.E.init(rc)) {
src/link/Elf/synthetic_sections.zig+4-4
......@@ -314,12 +314,12 @@ pub const ZigGotSection = struct {
314314 switch (builtin.os.tag) {
315315 .linux => {
316316 var local_vec: [1]std.posix.iovec_const = .{.{
317 .iov_base = &buf,
318 .iov_len = buf.len,
317 .base = &buf,
318 .len = buf.len,
319319 }};
320320 var remote_vec: [1]std.posix.iovec_const = .{.{
321 .iov_base = @as([*]u8, @ptrFromInt(@as(usize, @intCast(vaddr)))),
322 .iov_len = buf.len,
321 .base = @as([*]u8, @ptrFromInt(@as(usize, @intCast(vaddr)))),
322 .len = buf.len,
323323 }};
324324 const rc = std.os.linux.process_vm_writev(pid, &local_vec, &remote_vec, 0);
325325 switch (std.os.linux.E.init(rc)) {
src/link/Plan9.zig+10-10
......@@ -728,7 +728,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
728728 const hdr_size = if (self.sixtyfour_bit) @as(usize, 40) else 32;
729729 const hdr_slice: []u8 = hdr_buf[0..hdr_size];
730730 var foff = hdr_size;
731 iovecs[0] = .{ .iov_base = hdr_slice.ptr, .iov_len = hdr_slice.len };
731 iovecs[0] = .{ .base = hdr_slice.ptr, .len = hdr_slice.len };
732732 var iovecs_i: usize = 1;
733733 var text_i: u64 = 0;
734734
......@@ -757,7 +757,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
757757 linecount = out.end_line;
758758 }
759759 foff += out.code.len;
760 iovecs[iovecs_i] = .{ .iov_base = out.code.ptr, .iov_len = out.code.len };
760 iovecs[iovecs_i] = .{ .base = out.code.ptr, .len = out.code.len };
761761 iovecs_i += 1;
762762 const off = self.getAddr(text_i, .t);
763763 text_i += out.code.len;
......@@ -787,7 +787,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
787787 const text_atom = if (meta.text_state != .unused) self.getAtomPtr(meta.text_atom) else continue;
788788 const code = text_atom.code.getOwnedCode().?;
789789 foff += code.len;
790 iovecs[iovecs_i] = .{ .iov_base = code.ptr, .iov_len = code.len };
790 iovecs[iovecs_i] = .{ .base = code.ptr, .len = code.len };
791791 iovecs_i += 1;
792792 const off = self.getAddr(text_i, .t);
793793 text_i += code.len;
......@@ -812,7 +812,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
812812 }
813813 }
814814 // global offset table is in data
815 iovecs[iovecs_i] = .{ .iov_base = got_table.ptr, .iov_len = got_table.len };
815 iovecs[iovecs_i] = .{ .base = got_table.ptr, .len = got_table.len };
816816 iovecs_i += 1;
817817 // data
818818 var data_i: u64 = got_size;
......@@ -824,7 +824,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
824824 const code = entry.value_ptr.*;
825825
826826 foff += code.len;
827 iovecs[iovecs_i] = .{ .iov_base = code.ptr, .iov_len = code.len };
827 iovecs[iovecs_i] = .{ .base = code.ptr, .len = code.len };
828828 iovecs_i += 1;
829829 const off = self.getAddr(data_i, .d);
830830 data_i += code.len;
......@@ -847,7 +847,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
847847 const code = atom.code.getOwnedCode().?; // unnamed consts must own their code
848848 log.debug("write unnamed const: ({s})", .{self.syms.items[atom.sym_index.?].name});
849849 foff += code.len;
850 iovecs[iovecs_i] = .{ .iov_base = code.ptr, .iov_len = code.len };
850 iovecs[iovecs_i] = .{ .base = code.ptr, .len = code.len };
851851 iovecs_i += 1;
852852 const off = self.getAddr(data_i, .d);
853853 data_i += code.len;
......@@ -868,7 +868,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
868868 const code = atom.code.getOwnedCode().?;
869869 log.debug("write anon decl: {s}", .{self.syms.items[atom.sym_index.?].name});
870870 foff += code.len;
871 iovecs[iovecs_i] = .{ .iov_base = code.ptr, .iov_len = code.len };
871 iovecs[iovecs_i] = .{ .base = code.ptr, .len = code.len };
872872 iovecs_i += 1;
873873 const off = self.getAddr(data_i, .d);
874874 data_i += code.len;
......@@ -888,7 +888,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
888888 const data_atom = if (meta.rodata_state != .unused) self.getAtomPtr(meta.rodata_atom) else continue;
889889 const code = data_atom.code.getOwnedCode().?; // lazy symbols must own their code
890890 foff += code.len;
891 iovecs[iovecs_i] = .{ .iov_base = code.ptr, .iov_len = code.len };
891 iovecs[iovecs_i] = .{ .base = code.ptr, .len = code.len };
892892 iovecs_i += 1;
893893 const off = self.getAddr(data_i, .d);
894894 data_i += code.len;
......@@ -929,9 +929,9 @@ pub fn flushModule(self: *Plan9, arena: Allocator, prog_node: *std.Progress.Node
929929 const syms = try sym_buf.toOwnedSlice();
930930 defer gpa.free(syms);
931931 assert(2 + self.atomCount() - self.externCount() == iovecs_i); // we didn't write all the decls
932 iovecs[iovecs_i] = .{ .iov_base = syms.ptr, .iov_len = syms.len };
932 iovecs[iovecs_i] = .{ .base = syms.ptr, .len = syms.len };
933933 iovecs_i += 1;
934 iovecs[iovecs_i] = .{ .iov_base = linecountinfo.items.ptr, .iov_len = linecountinfo.items.len };
934 iovecs[iovecs_i] = .{ .base = linecountinfo.items.ptr, .len = linecountinfo.items.len };
935935 iovecs_i += 1;
936936 // generate the header
937937 self.hdr = .{
src/link/Wasm.zig+2-2
......@@ -3047,8 +3047,8 @@ fn writeToFile(
30473047
30483048 // finally, write the entire binary into the file.
30493049 var iovec = [_]std.posix.iovec_const{.{
3050 .iov_base = binary_bytes.items.ptr,
3051 .iov_len = binary_bytes.items.len,
3050 .base = binary_bytes.items.ptr,
3051 .len = binary_bytes.items.len,
30523052 }};
30533053 try wasm.base.file.?.writevAll(&iovec);
30543054}