const AreaDesc = struct size: usizealignment: usizedtv: struct { /// Offset into the TLS area. offset: usize, }abi_tcb: struct { /// Offset into the TLS area. offset: usize, }block: struct { /// The initial data to be copied into the TLS block. Note that this may be smaller than /// `size`, in which case any remaining data in the TLS block is simply left uninitialized. init: []const u8, /// Offset into the TLS area. offset: usize, /// This is the effective size of the TLS block, which may be greater than `init.len`. size: usize, }gdt_entry_number: usizeOnly used on the 32-bit x86 architecture (not x86_64, nor x32).
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216const AreaDesc = struct {
size: usize,
alignment: usize,
dtv: struct {
/// Offset into the TLS area.
offset: usize,
},
abi_tcb: struct {
/// Offset into the TLS area.
offset: usize,
},
block: struct {
/// The initial data to be copied into the TLS block. Note that this may be smaller than
/// `size`, in which case any remaining data in the TLS block is simply left uninitialized.
init: []const u8,
/// Offset into the TLS area.
offset: usize,
/// This is the effective size of the TLS block, which may be greater than `init.len`.
size: usize,
},
/// Only used on the 32-bit x86 architecture (not x86_64, nor x32).
gdt_entry_number: usize,
}
Describes a process's TLS area. The area encompasses the DTV, both TCBs, and the TLS block, with the exact layout of these being dependent primarily on
current_variant.