AquilaOS documentation
How it works, and its code
Toggle main menu visibility
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
5
struct
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
23
void
tlb_shootdown
(
struct
pmap
*
pmap
,
vaddr_t
sva,
vaddr_t
eva,
int
leave);
24
32
void
pmap_loaded
(
struct
pmap
*from,
struct
pmap
*to);
33
void
x86_tlb_ipi
(
void
);
34
35
#include_next <mm/pmap.h>
36
37
#endif
/* ! _I386_MM_PMAP_H */
paddr_t
uint64_t paddr_t
Definition
mm.h:39
vaddr_t
uint64_t vaddr_t
Definition
mm.h:40
pmap_loaded
void pmap_loaded(struct pmap *from, struct pmap *to)
Definition
pmap.c:157
tlb_shootdown
void tlb_shootdown(struct pmap *pmap, vaddr_t sva, vaddr_t eva, int leave)
Definition
pmap.c:130
x86_tlb_ipi
void x86_tlb_ipi(void)
Does the pending request if it is for the running CPU.
Definition
tlb.c:87
uint32_t
unsigned int uint32_t
Definition
stddef.h:22
pmap
An address space's page tables, on x86.
Definition
pmap.h:9
pmap::cpus
volatile uint32_t cpus
Definition
pmap.h:8
pmap::map
paddr_t map
Definition
pmap.h:10
pmap::ref
size_t ref
Definition
pmap.h:11
kernel
arch
i386
include
mm
pmap.h
Generated by
1.18.0