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
signaturebadge-check 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 @@...@@ -1,11 +1,12 @@
1const std = @import("std");1const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
3const windows = std.os.windows;
34
4export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES;5export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES;
5export var _tls_start: ?*anyopaque linksection(".tls") = null;6export var _tls_start: ?*anyopaque linksection(".tls") = null;
6export var _tls_end: ?*anyopaque linksection(".tls$ZZZ") = null;7export 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_a: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null;
8export var __xl_z: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null;9export var __xl_z: windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null;
910
10comptime {11comptime {
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 {
33pub const IMAGE_TLS_DIRECTORY = extern struct {34pub 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};