AquilaOS documentation
How it works, and its code
Loading...
Searching...
No Matches
pmap.h
Go to the documentation of this file.
1#ifndef _I386_MM_PMAP_H
2#define _I386_MM_PMAP_H
3
5struct pmap {
6 paddr_t map; /* the top table's physical address (CR3) */
7 size_t ref;
8 volatile uint32_t cpus; /* the CPUs it's loaded on (mm/tlb.c) */
9};
10
23void tlb_shootdown(struct pmap *pmap, vaddr_t sva, vaddr_t eva, int leave);
24
32void pmap_loaded(struct pmap *from, struct pmap *to);
33void x86_tlb_ipi(void);
34
35#include_next <mm/pmap.h>
36
37#endif /* ! _I386_MM_PMAP_H */
uint64_t paddr_t
Definition mm.h:39
uint64_t vaddr_t
Definition mm.h:40
void pmap_loaded(struct pmap *from, struct pmap *to)
Definition pmap.c:157
void tlb_shootdown(struct pmap *pmap, vaddr_t sva, vaddr_t eva, int leave)
Definition pmap.c:130
void x86_tlb_ipi(void)
Does the pending request if it is for the running CPU.
Definition tlb.c:87
unsigned int uint32_t
Definition stddef.h:22
An address space's page tables, on x86.
Definition pmap.h:9
volatile uint32_t cpus
Definition pmap.h:8
paddr_t map
Definition pmap.h:10
size_t ref
Definition pmap.h:11