diff --git a/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h b/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h index a96a106bb3..fdb02411a4 100644 --- a/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h +++ b/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h @@ -31,6 +31,8 @@ struct X86VMTranslationMap : VMTranslationMap { virtual X86PagingStructures* PagingStructures() const = 0; + inline void InvalidatePage(addr_t address); + protected: TranslationMapPhysicalPageMapper* fPageMapper; int fInvalidPagesCount; @@ -39,4 +41,14 @@ protected: }; +void +X86VMTranslationMap::InvalidatePage(addr_t address) +{ + if (fInvalidPagesCount < PAGE_INVALIDATE_CACHE_SIZE) + fInvalidPages[fInvalidPagesCount] = address; + + fInvalidPagesCount++; +} + + #endif // KERNEL_ARCH_X86_X86_VM_TRANSLATION_MAP_H