authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-03 19:56:42+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-03 20:48:48+02:00
log0f1db901980f9329b3c45c016eb467f083493060
tree8b77b911f551b283204bfe1c6cfa09eee5131f6d
parentc2fcdc21c27803e5cbb6dfcb6f61aa0905f6df38
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.windows.tls: Slightly improve type safety.


1 files changed, 6 insertions(+), 5 deletions(-)

lib/std/os/windows/tls.zig+6-5
......@@ -1,11 +1,12 @@
11const std = @import("std");
22const builtin = @import("builtin");
3const windows = std.os.windows;
34
45export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES;
56export var _tls_start: ?*anyopaque linksection(".tls") = null;
67export var _tls_end: ?*anyopaque linksection(".tls$ZZZ") = null;
7export var __xl_a: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null;
8export var __xl_z: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null;
8export var __xl_a: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null;
9export var __xl_z: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null;
910
1011comptime {
1112 if (builtin.target.cpu.arch == .x86 and builtin.zig_backend != .stage2_c) {
......@@ -33,8 +34,8 @@ comptime {
3334pub const IMAGE_TLS_DIRECTORY = extern struct {
3435 StartAddressOfRawData: *?*anyopaque,
3536 EndAddressOfRawData: *?*anyopaque,
36 AddressOfIndex: *anyopaque,
37 AddressOfCallBacks: *anyopaque,
37 AddressOfIndex: *u32,
38 AddressOfCallBacks: *windows.PIMAGE_TLS_CALLBACK,
3839 SizeOfZeroFill: u32,
3940 Characteristics: u32,
4041};
......@@ -42,7 +43,7 @@ export const _tls_used linksection(".rdata$T") = IMAGE_TLS_DIRECTORY{
4243 .StartAddressOfRawData = &_tls_start,
4344 .EndAddressOfRawData = &_tls_end,
4445 .AddressOfIndex = &_tls_index,
45 .AddressOfCallBacks = @as(*anyopaque, @ptrCast(&__xl_a)),
46 .AddressOfCallBacks = &__xl_a,
4647 .SizeOfZeroFill = 0,
4748 .Characteristics = 0,
4849};