Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
hexagon
include
asm
tlbflush.h
Go to the documentation of this file.
1
/*
2
* TLB flush support for Hexagon
3
*
4
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 and
8
* only version 2 as published by the Free Software Foundation.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18
* 02110-1301, USA.
19
*/
20
21
#ifndef _ASM_TLBFLUSH_H
22
#define _ASM_TLBFLUSH_H
23
24
#include <
linux/mm.h
>
25
#include <asm/processor.h>
26
27
/*
28
* TLB flushing -- in "SMP", these routines get defined to be the
29
* ones from smp.c, else they are some local flavors.
30
*/
31
32
/*
33
* These functions are commonly macros, but in the interests of
34
* VM vs. native implementation and code size, we simply declare
35
* the function prototypes here.
36
*/
37
extern
void
tlb_flush_all
(
void
);
38
extern
void
flush_tlb_mm
(
struct
mm_struct
*mm);
39
extern
void
flush_tlb_page
(
struct
vm_area_struct
*vma,
unsigned
long
addr
);
40
extern
void
flush_tlb_range
(
struct
vm_area_struct
*vma,
41
unsigned
long
start
,
unsigned
long
end
);
42
extern
void
flush_tlb_kernel_range
(
unsigned
long
start
,
unsigned
long
end
);
43
extern
void
flush_tlb_one
(
unsigned
long
);
44
45
/*
46
* "This is called in munmap when we have freed up some page-table pages.
47
* We don't need to do anything here..."
48
*
49
* The VM kernel doesn't walk page tables, and they are passed to the VMM
50
* by logical address. There doesn't seem to be any possibility that they
51
* could be referenced by the VM kernel based on a stale mapping, since
52
* they would only be located by consulting the mm structure, and they
53
* will have been purged from that structure by the munmap. Seems like
54
* a noop on HVM as well.
55
*/
56
#define flush_tlb_pgtables(mm, start, end)
57
58
#endif
Generated on Thu Jan 10 2013 12:50:41 for Linux Kernel by
1.8.2