genode/repos/base-hw/src/core/spec/arm/kernel/pd.cc
Stefan Kalkowski 87015df66c hw: change update_pd to invalidate_tlb
In the past, the core-only privileged syscall `update_pd` was used only
to invalidate the TLB after removal of page-table entries.
By now, the whole TLB at least for one protection domain got invalidated,
but in preparation for optimization and upcomingARM v8 support,
it is necessary to deliver the virtual memory region that needs to get
invalidated. Moreover, the name of the call shall represent explicitely
that it is used to invalidate the TLB.

Ref #3405
2019-07-09 08:55:22 +02:00

30 lines
668 B
C++

/*
* \brief Kernel PD object implementations specific to ARM
* \author Stefan Kalkowski
* \date 2018-11-22
*/
/*
* Copyright (C) 2018 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
#include <kernel/cpu.h>
#include <kernel/pd.h>
bool Kernel::Pd::invalidate_tlb(Cpu & cpu, addr_t, size_t)
{
/* invalidate the TLB on the local CPU only */
if (cpu.id() == Cpu::executing_id()) {
Cpu::invalidate_tlb(mmu_regs.id());
}
/*
* on all SMP ARM platforms we support the TLB can be maintained
* cross-cpu coherently
*/
return false;
}