Linux 2.6.17.7
[linux/fpc-iii.git] / arch / um / include / tlb.h
blob8efc1e0f1b841ac9a8d1e2aaec2f00c40e637548
1 /*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
4 */
6 #ifndef __TLB_H__
7 #define __TLB_H__
9 #include "um_mmu.h"
11 struct host_vm_op {
12 enum { NONE, MMAP, MUNMAP, MPROTECT } type;
13 union {
14 struct {
15 unsigned long addr;
16 unsigned long len;
17 unsigned int r:1;
18 unsigned int w:1;
19 unsigned int x:1;
20 int fd;
21 __u64 offset;
22 } mmap;
23 struct {
24 unsigned long addr;
25 unsigned long len;
26 } munmap;
27 struct {
28 unsigned long addr;
29 unsigned long len;
30 unsigned int r:1;
31 unsigned int w:1;
32 unsigned int x:1;
33 } mprotect;
34 } u;
37 extern void force_flush_all(void);
38 extern void fix_range_common(struct mm_struct *mm, unsigned long start_addr,
39 unsigned long end_addr, int force,
40 int (*do_ops)(union mm_context *,
41 struct host_vm_op *, int, int,
42 void **));
43 extern int flush_tlb_kernel_range_common(unsigned long start,
44 unsigned long end);
46 #endif