aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/pre/src/context_switching
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2025-10-29 15:01:43 +0100
committerFelix Morgner <felix.morgner@ost.ch>2025-10-29 15:01:43 +0100
commitb157e2c472d8bd67ac1656404a6a6ee821260f4b (patch)
tree9c4ebaee21c9ad3521f86c543dc1f29906305baa /arch/x86_64/pre/src/context_switching
parentc2b0bdfe3b725166f16c742cdaca7969052df382 (diff)
downloadteachos-b157e2c472d8bd67ac1656404a6a6ee821260f4b.tar.xz
teachos-b157e2c472d8bd67ac1656404a6a6ee821260f4b.zip
chore: reformat source code
Diffstat (limited to 'arch/x86_64/pre/src/context_switching')
-rw-r--r--arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/idt_flags.cpp5
-rw-r--r--arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp2
-rw-r--r--arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/segment_selector.cpp15
-rw-r--r--arch/x86_64/pre/src/context_switching/main.cpp13
-rw-r--r--arch/x86_64/pre/src/context_switching/segment_descriptor_table/access_byte.cpp5
-rw-r--r--arch/x86_64/pre/src/context_switching/segment_descriptor_table/gdt_flags.cpp10
-rw-r--r--arch/x86_64/pre/src/context_switching/segment_descriptor_table/global_descriptor_table.cpp10
-rw-r--r--arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp5
-rw-r--r--arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp10
-rw-r--r--arch/x86_64/pre/src/context_switching/syscall/syscall_enable.cpp10
-rw-r--r--arch/x86_64/pre/src/context_switching/syscall/syscall_handler.cpp11
11 files changed, 66 insertions, 30 deletions
diff --git a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/idt_flags.cpp b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/idt_flags.cpp
index d36a4c1..f3b9d5e 100644
--- a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/idt_flags.cpp
+++ b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/idt_flags.cpp
@@ -13,5 +13,8 @@ namespace teachos::arch::context_switching::interrupt_descriptor_table
return (std::bitset<8U>{_flags} & other) == other;
}
- auto idt_flags::operator|=(std::bitset<8U> other) -> void { _flags |= other.to_ulong(); }
+ auto idt_flags::operator|=(std::bitset<8U> other) -> void
+ {
+ _flags |= other.to_ulong();
+ }
} // namespace teachos::arch::context_switching::interrupt_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp
index 7aa0859..8640385 100644
--- a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp
+++ b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/interrupt_descriptor_table.cpp
@@ -33,7 +33,7 @@ namespace teachos::arch::context_switching::interrupt_descriptor_table
auto get_or_create_interrupt_descriptor_table() -> interrupt_descriptor_table &
{
// Interrupt Descriptor Table needs to be kept alive
- static interrupt_descriptor_table idt = create_interrupt_descriptor_table();
+ interrupt_descriptor_table static idt = create_interrupt_descriptor_table();
return idt;
}
diff --git a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/segment_selector.cpp b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/segment_selector.cpp
index 27f0a3b..25ba859 100644
--- a/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/segment_selector.cpp
+++ b/arch/x86_64/pre/src/context_switching/interrupt_descriptor_table/segment_selector.cpp
@@ -7,9 +7,18 @@ namespace teachos::arch::context_switching::interrupt_descriptor_table
return (std::bitset<3U>{_flags} & other) == other;
}
- auto segment_selector::get_index() const -> uint16_t { return _index; }
+ auto segment_selector::get_index() const -> uint16_t
+ {
+ return _index;
+ }
- auto segment_selector::operator|=(std::bitset<3U> other) -> void { _flags |= other.to_ulong(); }
+ auto segment_selector::operator|=(std::bitset<3U> other) -> void
+ {
+ _flags |= other.to_ulong();
+ }
- segment_selector::operator uint16_t() const { return *reinterpret_cast<uint16_t const *>(this); }
+ segment_selector::operator uint16_t() const
+ {
+ return *reinterpret_cast<uint16_t const *>(this);
+ }
} // namespace teachos::arch::context_switching::interrupt_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/main.cpp b/arch/x86_64/pre/src/context_switching/main.cpp
index 9539428..3eb6dae 100644
--- a/arch/x86_64/pre/src/context_switching/main.cpp
+++ b/arch/x86_64/pre/src/context_switching/main.cpp
@@ -13,20 +13,23 @@ namespace teachos::arch::context_switching
namespace
{
constexpr interrupt_descriptor_table::segment_selector KERNEL_CODE_SEGMENT_SELECTOR{
- 1U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL};
+ 1U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL};
constexpr kernel::cpu::far_pointer KERNEL_CODE_POINTER{&kernel::cpu::reload_data_segment_registers,
KERNEL_CODE_SEGMENT_SELECTOR};
constexpr context_switching::interrupt_descriptor_table::segment_selector USER_CODE_SEGMENT_SELECTOR{
- 3U, context_switching::interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_USER};
+ 3U, context_switching::interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_USER};
constexpr context_switching::interrupt_descriptor_table::segment_selector USER_DATA_SEGMENT_SELECTOR{
- 4U, context_switching::interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_USER};
+ 4U, context_switching::interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_USER};
- auto reload_gdtr() -> void { kernel::cpu::call(KERNEL_CODE_POINTER); }
+ auto reload_gdtr() -> void
+ {
+ kernel::cpu::call(KERNEL_CODE_POINTER);
+ }
} // namespace
auto initialize_descriptor_tables() -> descriptor_tables
{
- static bool initalized = false;
+ bool static initalized = false;
if (!initalized)
{
diff --git a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/access_byte.cpp b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/access_byte.cpp
index e31e021..fcc72cf 100644
--- a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/access_byte.cpp
+++ b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/access_byte.cpp
@@ -13,5 +13,8 @@ namespace teachos::arch::context_switching::segment_descriptor_table
return (std::bitset<8U>{_flags} & other) == other;
}
- auto access_byte::operator|=(std::bitset<8U> other) -> void { _flags |= other.to_ulong(); }
+ auto access_byte::operator|=(std::bitset<8U> other) -> void
+ {
+ _flags |= other.to_ulong();
+ }
} // namespace teachos::arch::context_switching::segment_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/gdt_flags.cpp b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/gdt_flags.cpp
index e444a24..ad1366a 100644
--- a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/gdt_flags.cpp
+++ b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/gdt_flags.cpp
@@ -14,7 +14,13 @@ namespace teachos::arch::context_switching::segment_descriptor_table
return (std::bitset<4U>{_flags} & other) == other;
}
- auto gdt_flags::get_limit() const -> std::bitset<4U> { return std::bitset<4U>{_limit_2}; }
+ auto gdt_flags::get_limit() const -> std::bitset<4U>
+ {
+ return std::bitset<4U>{_limit_2};
+ }
- auto gdt_flags::operator|=(std::bitset<4U> other) -> void { _flags |= other.to_ulong(); }
+ auto gdt_flags::operator|=(std::bitset<4U> other) -> void
+ {
+ _flags |= other.to_ulong();
+ }
} // namespace teachos::arch::context_switching::segment_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/global_descriptor_table.cpp b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/global_descriptor_table.cpp
index bbcee31..1c4729f 100644
--- a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/global_descriptor_table.cpp
+++ b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/global_descriptor_table.cpp
@@ -12,8 +12,8 @@ namespace teachos::arch::context_switching::segment_descriptor_table
auto create_segment_descriptor(segment_descriptor_type segment_descriptor_type, access_byte access_level)
-> segment_descriptor_base
{
- uint64_t constexpr BASE = 0x0;
- std::bitset<20U> constexpr LIMIT{0xFFFFF};
+ constexpr uint64_t BASE = 0x0;
+ constexpr std::bitset<20U> LIMIT{0xFFFFF};
gdt_flags flags{gdt_flags::GRANULARITY, LIMIT};
access_level |= access_byte::PRESENT | access_byte::CODE_OR_DATA_SEGMENT;
@@ -33,7 +33,7 @@ namespace teachos::arch::context_switching::segment_descriptor_table
auto create_tss_descriptor(task_state_segment * tss) -> segment_descriptor_extension
{
- uint64_t constexpr TSS_LIMIT = sizeof(task_state_segment) - 1;
+ constexpr uint64_t TSS_LIMIT = sizeof(task_state_segment) - 1;
access_byte const tss_access_byte{access_byte::PRESENT | access_byte::DESCRIPTOR_LEVEL_KERNEL |
access_byte::TASK_STATE_SEGMENT_AVAILABLE};
gdt_flags const tss_gdt_flags{0U, TSS_LIMIT};
@@ -55,7 +55,7 @@ namespace teachos::arch::context_switching::segment_descriptor_table
create_segment_descriptor(segment_descriptor_type::DATA_SEGMENT, access_byte::DESCRIPTOR_LEVEL_USER);
// Task State Segment needs to be kept alive
- static auto tss = new task_state_segment();
+ auto static tss = new task_state_segment();
segment_descriptor_extension const tss_descriptor = create_tss_descriptor(tss);
global_descriptor_table global_descriptor_table{null_segment,
@@ -72,7 +72,7 @@ namespace teachos::arch::context_switching::segment_descriptor_table
auto get_or_create_gdt() -> global_descriptor_table &
{
// Global Descriptor Table needs to be kept alive
- static global_descriptor_table gdt = create_gdt();
+ global_descriptor_table static gdt = create_gdt();
return gdt;
}
diff --git a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp
index 04804d9..c3a03fc 100644
--- a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp
+++ b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_base.cpp
@@ -33,6 +33,9 @@ namespace teachos::arch::context_switching::segment_descriptor_table
: segment_descriptor_type::DATA_SEGMENT;
}
- segment_descriptor_base::operator uint64_t() const { return *reinterpret_cast<uint64_t const *>(this); }
+ segment_descriptor_base::operator uint64_t() const
+ {
+ return *reinterpret_cast<uint64_t const *>(this);
+ }
} // namespace teachos::arch::context_switching::segment_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp
index a28ec9b..5ea0d8a 100644
--- a/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp
+++ b/arch/x86_64/pre/src/context_switching/segment_descriptor_table/segment_descriptor_extension.cpp
@@ -17,8 +17,14 @@ namespace teachos::arch::context_switching::segment_descriptor_table
// Nothing to do
}
- auto segment_descriptor_extension::get_first_gdt_entry() const -> segment_descriptor_base { return _base; }
+ auto segment_descriptor_extension::get_first_gdt_entry() const -> segment_descriptor_base
+ {
+ return _base;
+ }
- auto segment_descriptor_extension::get_second_gdt_entry() const -> uint64_t { return _base_3; }
+ auto segment_descriptor_extension::get_second_gdt_entry() const -> uint64_t
+ {
+ return _base_3;
+ }
} // namespace teachos::arch::context_switching::segment_descriptor_table
diff --git a/arch/x86_64/pre/src/context_switching/syscall/syscall_enable.cpp b/arch/x86_64/pre/src/context_switching/syscall/syscall_enable.cpp
index 3c43336..dbb3ed9 100644
--- a/arch/x86_64/pre/src/context_switching/syscall/syscall_enable.cpp
+++ b/arch/x86_64/pre/src/context_switching/syscall/syscall_enable.cpp
@@ -8,12 +8,12 @@ namespace teachos::arch::context_switching::syscall
{
namespace
{
- interrupt_descriptor_table::segment_selector constexpr KERNEL_CODE_SEGMENT_SELECTOR{
- 1U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL};
+ constexpr interrupt_descriptor_table::segment_selector KERNEL_CODE_SEGMENT_SELECTOR{
+ 1U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL};
- auto constexpr IA32_STAR_ADDRESS = 0xC0000081;
- auto constexpr IA32_LSTAR_ADDRESS = 0xC0000082;
- auto constexpr IA32_FMASK_ADDRESS = 0xC0000084;
+ constexpr auto IA32_STAR_ADDRESS = 0xC000'0081;
+ constexpr auto IA32_LSTAR_ADDRESS = 0xC000'0082;
+ constexpr auto IA32_FMASK_ADDRESS = 0xC000'0084;
} // namespace
diff --git a/arch/x86_64/pre/src/context_switching/syscall/syscall_handler.cpp b/arch/x86_64/pre/src/context_switching/syscall/syscall_handler.cpp
index 84dbe5f..c120f77 100644
--- a/arch/x86_64/pre/src/context_switching/syscall/syscall_handler.cpp
+++ b/arch/x86_64/pre/src/context_switching/syscall/syscall_handler.cpp
@@ -14,7 +14,7 @@ namespace teachos::arch::context_switching::syscall
{
auto write_to_vga_buffer(uint64_t buffer) -> response
{
- video::vga::text::write(reinterpret_cast<const char *>(buffer),
+ video::vga::text::write(reinterpret_cast<char const *>(buffer),
video::vga::text::common_attributes::green_on_black);
video::vga::text::newline();
return {error::OK};
@@ -22,11 +22,14 @@ namespace teachos::arch::context_switching::syscall
auto expand_user_heap() -> response
{
- static auto current_heap_end = memory::heap::USER_HEAP_START;
+ auto static current_heap_end = memory::heap::USER_HEAP_START;
uint64_t const heap_start = current_heap_end;
memory::remap_heap(heap_start, memory::heap::USER_HEAP_SIZE, memory::paging::entry::USER_ACCESSIBLE);
current_heap_end += memory::heap::USER_HEAP_SIZE;
- return {error::OK, {heap_start, memory::heap::USER_HEAP_SIZE}};
+ return {
+ error::OK,
+ {heap_start, memory::heap::USER_HEAP_SIZE}
+ };
}
} // namespace
@@ -62,7 +65,7 @@ namespace teachos::arch::context_switching::syscall
result = expand_user_heap();
break;
case type::ASSERT:
- teachos::arch::exception_handling::assert(arg_0, reinterpret_cast<const char *>(arg_1));
+ teachos::arch::exception_handling::assert(arg_0, reinterpret_cast<char const *>(arg_1));
break;
default:
teachos::arch::exception_handling::panic("[Syscall Handler] Invalid syscall number");