diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index cc76bf31b7ce93..dca97aef2af812 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -2049,7 +2049,7 @@ void Processor::Processor::halt() halt_this(); } -void Processor::deferred_call_pool_init() +UNMAP_AFTER_INIT void Processor::deferred_call_pool_init() { size_t pool_count = sizeof(m_deferred_call_pool) / sizeof(m_deferred_call_pool[0]); for (size_t i = 0; i < pool_count; i++) { diff --git a/Kernel/Devices/NullDevice.cpp b/Kernel/Devices/NullDevice.cpp index 6b4d05c65349d2..3d6ff44529e976 100644 --- a/Kernel/Devices/NullDevice.cpp +++ b/Kernel/Devices/NullDevice.cpp @@ -32,7 +32,7 @@ namespace Kernel { static AK::Singleton s_the; -void NullDevice::initialize() +UNMAP_AFTER_INIT void NullDevice::initialize() { s_the.ensure_instance(); } diff --git a/Kernel/Net/E1000NetworkAdapter.cpp b/Kernel/Net/E1000NetworkAdapter.cpp index 8e509132f8b260..0b3fa951bd506e 100644 --- a/Kernel/Net/E1000NetworkAdapter.cpp +++ b/Kernel/Net/E1000NetworkAdapter.cpp @@ -263,7 +263,7 @@ void E1000NetworkAdapter::handle_irq(const RegisterState&) out32(REG_INTERRUPT_MASK_SET, INTERRUPT_LSC | INTERRUPT_RXT0 | INTERRUPT_RXO); } -void E1000NetworkAdapter::detect_eeprom() +UNMAP_AFTER_INIT void E1000NetworkAdapter::detect_eeprom() { out32(REG_EEPROM, 0x1); for (int i = 0; i < 999; ++i) { @@ -276,7 +276,7 @@ void E1000NetworkAdapter::detect_eeprom() m_has_eeprom = false; } -u32 E1000NetworkAdapter::read_eeprom(u8 address) +UNMAP_AFTER_INIT u32 E1000NetworkAdapter::read_eeprom(u8 address) { u16 data = 0; u32 tmp = 0; @@ -293,7 +293,7 @@ u32 E1000NetworkAdapter::read_eeprom(u8 address) return data; } -void E1000NetworkAdapter::read_mac_address() +UNMAP_AFTER_INIT void E1000NetworkAdapter::read_mac_address() { if (m_has_eeprom) { MACAddress mac {}; @@ -317,7 +317,7 @@ bool E1000NetworkAdapter::link_up() return (in32(REG_STATUS) & STATUS_LU); } -void E1000NetworkAdapter::initialize_rx_descriptors() +UNMAP_AFTER_INIT void E1000NetworkAdapter::initialize_rx_descriptors() { auto* rx_descriptors = (e1000_tx_desc*)m_rx_descriptors_region->vaddr().as_ptr(); for (size_t i = 0; i < number_of_rx_descriptors; ++i) { @@ -338,7 +338,7 @@ void E1000NetworkAdapter::initialize_rx_descriptors() out32(REG_RCTRL, RCTL_EN | RCTL_SBP | RCTL_UPE | RCTL_MPE | RCTL_LBM_NONE | RTCL_RDMTS_HALF | RCTL_BAM | RCTL_SECRC | RCTL_BSIZE_8192); } -void E1000NetworkAdapter::initialize_tx_descriptors() +UNMAP_AFTER_INIT void E1000NetworkAdapter::initialize_tx_descriptors() { auto* tx_descriptors = (e1000_tx_desc*)m_tx_descriptors_region->vaddr().as_ptr(); for (size_t i = 0; i < number_of_tx_descriptors; ++i) { diff --git a/Kernel/Net/RTL8139NetworkAdapter.cpp b/Kernel/Net/RTL8139NetworkAdapter.cpp index bc3e85243b537b..44eafc4f4599f7 100644 --- a/Kernel/Net/RTL8139NetworkAdapter.cpp +++ b/Kernel/Net/RTL8139NetworkAdapter.cpp @@ -282,7 +282,7 @@ void RTL8139NetworkAdapter::reset() out16(REG_ISR, 0xffff); } -void RTL8139NetworkAdapter::read_mac_address() +UNMAP_AFTER_INIT void RTL8139NetworkAdapter::read_mac_address() { MACAddress mac {}; for (int i = 0; i < 6; i++) diff --git a/Kernel/Storage/IDEChannel.cpp b/Kernel/Storage/IDEChannel.cpp index e93ef1b6487ef1..2a9de03376cb12 100644 --- a/Kernel/Storage/IDEChannel.cpp +++ b/Kernel/Storage/IDEChannel.cpp @@ -113,7 +113,7 @@ namespace Kernel { #define PCI_Mass_Storage_Class 0x1 #define PCI_IDE_Controller_Subclass 0x1 -NonnullOwnPtr IDEChannel::create(const IDEController& controller, IOAddressGroup io_group, ChannelType type, bool force_pio) +UNMAP_AFTER_INIT NonnullOwnPtr IDEChannel::create(const IDEController& controller, IOAddressGroup io_group, ChannelType type, bool force_pio) { return make(controller, io_group, type, force_pio); } @@ -128,7 +128,7 @@ RefPtr IDEChannel::slave_device() const return m_slave; } -IDEChannel::IDEChannel(const IDEController& controller, IOAddressGroup io_group, ChannelType type, bool force_pio) +UNMAP_AFTER_INIT IDEChannel::IDEChannel(const IDEController& controller, IOAddressGroup io_group, ChannelType type, bool force_pio) : IRQHandler(type == ChannelType::Primary ? PATA_PRIMARY_IRQ : PATA_SECONDARY_IRQ) , m_channel_type(type) , m_io_group(io_group) @@ -153,7 +153,7 @@ void IDEChannel::clear_pending_interrupts() const m_io_group.io_base().offset(ATA_REG_STATUS).in(); } -IDEChannel::~IDEChannel() +UNMAP_AFTER_INIT IDEChannel::~IDEChannel() { } @@ -215,7 +215,7 @@ void IDEChannel::complete_current_request(AsyncDeviceRequest::RequestResult resu }); } -void IDEChannel::initialize(bool force_pio) +UNMAP_AFTER_INIT void IDEChannel::initialize(bool force_pio) { m_parent_controller->enable_pin_based_interrupts(); @@ -368,7 +368,7 @@ String IDEChannel::channel_type_string() const return "Secondary"; } -void IDEChannel::detect_disks() +UNMAP_AFTER_INIT void IDEChannel::detect_disks() { auto channel_string = [](u8 i) -> const char* { if (i == 0) diff --git a/Kernel/Syscall.cpp b/Kernel/Syscall.cpp index f087d2a71f5834..a470bced45569c 100644 --- a/Kernel/Syscall.cpp +++ b/Kernel/Syscall.cpp @@ -71,7 +71,7 @@ namespace Syscall { static int handle(RegisterState&, u32 function, u32 arg1, u32 arg2, u32 arg3); -void initialize() +UNMAP_AFTER_INIT void initialize() { register_user_callable_interrupt_handler(syscall_vector, syscall_asm_entry); klog() << "Syscall: int 0x82 handler installed"; diff --git a/Kernel/Time/PIT.cpp b/Kernel/Time/PIT.cpp index df3af8167be8a0..0a1f15c6531edf 100644 --- a/Kernel/Time/PIT.cpp +++ b/Kernel/Time/PIT.cpp @@ -35,7 +35,7 @@ #define IRQ_TIMER 0 namespace Kernel { -NonnullRefPtr PIT::initialize(Function callback) +UNMAP_AFTER_INIT NonnullRefPtr PIT::initialize(Function callback) { return adopt(*new PIT(move(callback))); }