IPI TLB shootdowns

This commit is contained in:
2026-10-18 21:29:47 +02:00
parent 7aaf953a1c
commit 70ca5115df
7 changed files with 107 additions and 59 deletions
+6 -2
View File
@@ -5,6 +5,7 @@
#include <zinnia/spin.h>
#include <zinnia/utils.h>
#include <bits/pmap.h>
#include <config.h>
struct percpu;
@@ -39,13 +40,16 @@ errno_t pmap_extract(struct pmap* pt, uintptr_t vaddr, phys_t* out);
void pmap_destroy(struct pmap* pt);
void pmap_set(struct pmap* pt);
void pmap_shootdown(struct pmap* pt);
void pmap_shootdown_handle();
void pte_clear(pte_t* pte);
void pte_write(pte_t* pte, pte_t val);
void pte_flush(uintptr_t vaddr);
void pte_flush_all();
#if CONFIG_HAVE_TLB_SHOOTDOWN_IPI
void pmap_shootdown_handle();
void pte_shootdown_kick(struct percpu* cpu);
#endif
pte_t pte_build(phys_t addr, enum pte_flags flags, enum cache_mode cache);
pte_t pte_protect(pte_t old, enum pte_flags flags);
bool pte_is_present(pte_t* pte);
bool pte_is_dir(pte_t* pte);
phys_t pte_address(pte_t* pte);