blob: 5067e5daea916c1ff9317cf38fdbcc565b9f6df7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#ifndef __FLUSHTLB_H__
#define __FLUSHTLB_H__
#include <xen/cpumask.h>
/*
* Filter the given set of CPUs, removing those that definitely flushed their
* TLB since @page_timestamp.
*/
/* XXX lazy implementation just doesn't clear anything.... */
#define tlbflush_filter(mask, page_timestamp) \
do { \
} while ( 0 )
#define tlbflush_current_time() (0)
/* Flush local TLBs, current VMID only */
static inline void flush_tlb_local(void)
{
dsb();
WRITE_CP32((uint32_t) 0, TLBIALL);
dsb();
isb();
}
/* Flush local TLBs, all VMIDs, non-hypervisor mode */
static inline void flush_tlb_all_local(void)
{
dsb();
WRITE_CP32((uint32_t) 0, TLBIALLNSNH);
dsb();
isb();
}
/* Flush specified CPUs' TLBs */
void flush_tlb_mask(const cpumask_t *mask);
#endif /* __FLUSHTLB_H__ */
/*
* Local variables:
* mode: C
* c-set-style: "BSD"
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*/
|