Kernel: Fix 32 bit target
Rewrite some assembly and add some required casts
This commit is contained in:
@@ -856,7 +856,7 @@ acpi_release_global_lock:
|
||||
};
|
||||
|
||||
// TODO: EC can also reside in memory space
|
||||
auto crs_buffer = BAN::ConstByteSpan { crs.as.str_buf->bytes, crs.as.str_buf->size };
|
||||
auto crs_buffer = BAN::ConstByteSpan { crs.as.str_buf->bytes, static_cast<size_t>(crs.as.str_buf->size) };
|
||||
const auto data_port = TRY(extract_io_port(crs_buffer));
|
||||
const auto command_port = TRY(extract_io_port(crs_buffer));
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace Kernel
|
||||
gdt->write_entry(0x20, 0x00000000, 0xFFFFF, 0xF2, data_flags); // user data
|
||||
#if ARCH(i686)
|
||||
gdt->write_entry(0x28, reinterpret_cast<uint32_t>(processor), sizeof(Processor), 0x92, 0x4); // processor data
|
||||
gdt->write_entry(0x30, 0x00000000, 0x00000, 0x00, 0x0); // fsbase
|
||||
gdt->write_entry(0x38, 0x00000000, 0x00000, 0x00, 0x0); // gsbase
|
||||
gdt->write_entry(0x30, 0x00000000, 0x00000, 0xF2, data_flags); // fsbase
|
||||
gdt->write_entry(0x38, 0x00000000, 0x00000, 0xF2, data_flags); // gsbase
|
||||
#endif
|
||||
gdt->write_tss();
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ namespace Kernel::Input
|
||||
result.type = type;
|
||||
|
||||
BAN::Optional<ACPI::ResourceData> data;
|
||||
ACPI::ResourceParser parser({ crs_obj->node.as.str_buf->bytes, crs_obj->node.as.str_buf->size });
|
||||
ACPI::ResourceParser parser({ crs_obj->node.as.str_buf->bytes, static_cast<size_t>(crs_obj->node.as.str_buf->size) });
|
||||
while ((data = parser.get_next()).has_value())
|
||||
{
|
||||
switch (data->type)
|
||||
|
||||
@@ -386,7 +386,7 @@ namespace Kernel
|
||||
|
||||
vaddr_t vaddr = userspace_stack_top() - needed_size;
|
||||
|
||||
const size_t page_count = BAN::Math::div_round_up(needed_size, PAGE_SIZE);
|
||||
const size_t page_count = BAN::Math::div_round_up<size_t>(needed_size, PAGE_SIZE);
|
||||
for (size_t i = 0; i < page_count; i++)
|
||||
TRY(m_userspace_stack->allocate_page_for_demand_paging(vaddr + i * PAGE_SIZE));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user