Kernel: Start working on TLS, add SYS_{SET,GET}_TLS

This commit is contained in:
2025-04-15 23:16:20 +03:00
parent 254fd80088
commit 4bcd3ed86f
11 changed files with 60 additions and 3 deletions

View File

@@ -128,6 +128,10 @@ namespace Kernel
#endif
}
#if ARCH(i686)
void set_tls(uintptr_t addr);
#endif
private:
GDT() = default;
@@ -149,8 +153,8 @@ namespace Kernel
BAN::Array<SegmentDescriptor, 7> m_gdt; // null, kernel code, kernel data, user code, user data, tss low, tss high
static constexpr uint16_t m_tss_offset = 0x28;
#elif ARCH(i686)
BAN::Array<SegmentDescriptor, 7> m_gdt; // null, kernel code, kernel data, user code, user data, processor data, tss
static constexpr uint16_t m_tss_offset = 0x30;
BAN::Array<SegmentDescriptor, 8> m_gdt; // null, kernel code, kernel data, user code, user data, processor data, tls, tss
static constexpr uint16_t m_tss_offset = 0x38;
#endif
TaskStateSegment m_tss;
const GDTR m_gdtr {