| ... | @@ -1,11 +1,12 @@ | ... | @@ -1,11 +1,12 @@ |
| 1 | const std = @import("std"); | 1 | const std = @import("std"); |
| 2 | const builtin = @import("builtin"); | 2 | const builtin = @import("builtin"); |
| | 3 | const windows = std.os.windows; |
| 3 | | 4 | |
| 4 | export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES; | 5 | export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES; |
| 5 | export var _tls_start: ?*anyopaque linksection(".tls") = null; | 6 | export var _tls_start: ?*anyopaque linksection(".tls") = null; |
| 6 | export var _tls_end: ?*anyopaque linksection(".tls$ZZZ") = null; | 7 | export var _tls_end: ?*anyopaque linksection(".tls$ZZZ") = null; |
| 7 | export var __xl_a: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null; | 8 | export var __xl_a: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null; |
| 8 | export var __xl_z: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null; | 9 | export var __xl_z: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null; |
| 9 | | 10 | |
| 10 | comptime { | 11 | comptime { |
| 11 | if (builtin.target.cpu.arch == .x86 and builtin.zig_backend != .stage2_c) { | 12 | if (builtin.target.cpu.arch == .x86 and builtin.zig_backend != .stage2_c) { |
| ... | @@ -33,8 +34,8 @@ comptime { | ... | @@ -33,8 +34,8 @@ comptime { |
| 33 | pub const IMAGE_TLS_DIRECTORY = extern struct { | 34 | pub const IMAGE_TLS_DIRECTORY = extern struct { |
| 34 | StartAddressOfRawData: *?*anyopaque, | 35 | StartAddressOfRawData: *?*anyopaque, |
| 35 | EndAddressOfRawData: *?*anyopaque, | 36 | EndAddressOfRawData: *?*anyopaque, |
| 36 | AddressOfIndex: *anyopaque, | 37 | AddressOfIndex: *u32, |
| 37 | AddressOfCallBacks: *anyopaque, | 38 | AddressOfCallBacks: *windows.PIMAGE_TLS_CALLBACK, |
| 38 | SizeOfZeroFill: u32, | 39 | SizeOfZeroFill: u32, |
| 39 | Characteristics: u32, | 40 | Characteristics: u32, |
| 40 | }; | 41 | }; |
| ... | @@ -42,7 +43,7 @@ export const _tls_used linksection(".rdata$T") = IMAGE_TLS_DIRECTORY{ | ... | @@ -42,7 +43,7 @@ export const _tls_used linksection(".rdata$T") = IMAGE_TLS_DIRECTORY{ |
| 42 | .StartAddressOfRawData = &_tls_start, | 43 | .StartAddressOfRawData = &_tls_start, |
| 43 | .EndAddressOfRawData = &_tls_end, | 44 | .EndAddressOfRawData = &_tls_end, |
| 44 | .AddressOfIndex = &_tls_index, | 45 | .AddressOfIndex = &_tls_index, |
| 45 | .AddressOfCallBacks = @as(*anyopaque, @ptrCast(&__xl_a)), | 46 | .AddressOfCallBacks = &__xl_a, |
| 46 | .SizeOfZeroFill = 0, | 47 | .SizeOfZeroFill = 0, |
| 47 | .Characteristics = 0, | 48 | .Characteristics = 0, |
| 48 | }; | 49 | }; |