fn writeIpc(writer: *Io.Writer, serialized: Serialized) Io.Writer.Error!void writer: *Io.Writerserialized: Serialized1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541fn writeIpc(writer: *Io.Writer, serialized: Serialized) Io.Writer.Error!void {
// Byteswap if necessary to ensure little endian over the pipe. This is
// needed because the parent or child process might be running in qemu.
if (is_big_endian) for (serialized.storage) |*s| s.byteSwap();
assert(serialized.parents.len == serialized.storage.len);
const serialized_len: u8 = @intCast(serialized.parents.len);
const header = std.mem.asBytes(&serialized_len);
const storage = std.mem.sliceAsBytes(serialized.storage);
const parents = std.mem.sliceAsBytes(serialized.parents);
var vec = [3][]const u8{ header, storage, parents };
try writer.writeVecAll(&vec);
}