Commit 7f6e7e3e5d
2021-06-13 02:36:22
1 parent
5c9eb94Changed files (4)
lib
std
lib/std/event/loop.zig
@@ -54,8 +54,12 @@ pub const Loop = struct {
.windows => windows.OVERLAPPED{
.Internal = 0,
.InternalHigh = 0,
- .Offset = 0,
- .OffsetHigh = 0,
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = 0,
+ .OffsetHigh = 0,
+ },
+ },
.hEvent = null,
},
else => {},
lib/std/fs/watch.zig
@@ -437,8 +437,12 @@ pub fn Watch(comptime V: type) type {
.overlapped = windows.OVERLAPPED{
.Internal = 0,
.InternalHigh = 0,
- .Offset = 0,
- .OffsetHigh = 0,
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = 0,
+ .OffsetHigh = 0,
+ },
+ },
.hEvent = null,
},
},
lib/std/os/windows/bits.zig
@@ -363,12 +363,25 @@ pub const FILE_INFORMATION_CLASS = enum(c_int) {
pub const OVERLAPPED = extern struct {
Internal: ULONG_PTR,
InternalHigh: ULONG_PTR,
- Offset: DWORD,
- OffsetHigh: DWORD,
+ DUMMYUNIONNAME: extern union {
+ DUMMYSTRUCTNAME: extern struct {
+ Offset: DWORD,
+ OffsetHigh: DWORD,
+ },
+ Pointer: ?PVOID,
+ },
hEvent: ?HANDLE,
};
pub const LPOVERLAPPED = *OVERLAPPED;
+pub const OVERLAPPED_ENTRY = extern struct {
+ lpCompletionKey: ULONG_PTR,
+ lpOverlapped: LPOVERLAPPED,
+ Internal: ULONG_PTR,
+ dwNumberOfBytesTransferred: DWORD,
+};
+pub const LPOVERLAPPED_ENTRY = *OVERLAPPED_ENTRY;
+
pub const MAX_PATH = 260;
// TODO issue #305
lib/std/os/windows.zig
@@ -454,8 +454,12 @@ pub fn ReadFile(in_hFile: HANDLE, buffer: []u8, offset: ?u64, io_mode: std.io.Mo
.overlapped = OVERLAPPED{
.Internal = 0,
.InternalHigh = 0,
- .Offset = @truncate(u32, off),
- .OffsetHigh = @truncate(u32, off >> 32),
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = @truncate(u32, off),
+ .OffsetHigh = @truncate(u32, off >> 32),
+ },
+ },
.hEvent = null,
},
},
@@ -490,8 +494,12 @@ pub fn ReadFile(in_hFile: HANDLE, buffer: []u8, offset: ?u64, io_mode: std.io.Mo
overlapped_data = .{
.Internal = 0,
.InternalHigh = 0,
- .Offset = @truncate(u32, off),
- .OffsetHigh = @truncate(u32, off >> 32),
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = @truncate(u32, off),
+ .OffsetHigh = @truncate(u32, off >> 32),
+ },
+ },
.hEvent = null,
};
break :blk &overlapped_data;
@@ -534,8 +542,12 @@ pub fn WriteFile(
.overlapped = OVERLAPPED{
.Internal = 0,
.InternalHigh = 0,
- .Offset = @truncate(u32, off),
- .OffsetHigh = @truncate(u32, off >> 32),
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = @truncate(u32, off),
+ .OffsetHigh = @truncate(u32, off >> 32),
+ },
+ },
.hEvent = null,
},
},
@@ -570,8 +582,12 @@ pub fn WriteFile(
overlapped_data = .{
.Internal = 0,
.InternalHigh = 0,
- .Offset = @truncate(u32, off),
- .OffsetHigh = @truncate(u32, off >> 32),
+ .DUMMYUNIONNAME = .{
+ .DUMMYSTRUCTNAME = .{
+ .Offset = @truncate(u32, off),
+ .OffsetHigh = @truncate(u32, off >> 32),
+ },
+ },
.hEvent = null,
};
break :blk &overlapped_data;