summaryrefslogtreecommitdiff
path: root/include/linux/vcache.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2002-09-26 22:43:29 -0700
committerIngo Molnar <mingo@elte.hu>2002-09-26 22:43:29 -0700
commit7c2149e943bf3fae3e6e14189463390ef4c5b7a1 (patch)
tree96ce1fec80e6ac90e250c7e46fe2991c72ebf2a7 /include/linux/vcache.h
parentc2dd03a9e2d8bf508f6b3d9ee327c37a928b3351 (diff)
[PATCH] virtual => physical page mapping cache
Implement a "mapping change" notification for virtual lookup caches, and make the futex code use that to keep the futex page pinning consistent across copy-on-write events in the VM space.
Diffstat (limited to 'include/linux/vcache.h')
-rw-r--r--include/linux/vcache.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/linux/vcache.h b/include/linux/vcache.h
new file mode 100644
index 000000000000..d5756643332c
--- /dev/null
+++ b/include/linux/vcache.h
@@ -0,0 +1,26 @@
+/*
+ * virtual => physical mapping cache support.
+ */
+#ifndef _LINUX_VCACHE_H
+#define _LINUX_VCACHE_H
+
+typedef struct vcache_s {
+ unsigned long address;
+ struct mm_struct *mm;
+ struct list_head hash_entry;
+ void (*callback)(struct vcache_s *data, struct page *new_page);
+} vcache_t;
+
+extern spinlock_t vcache_lock;
+
+extern void __attach_vcache(vcache_t *vcache,
+ unsigned long address,
+ struct mm_struct *mm,
+ void (*callback)(struct vcache_s *data, struct page *new_page));
+
+extern void detach_vcache(vcache_t *vcache);
+
+extern void invalidate_vcache(unsigned long address, struct mm_struct *mm,
+ struct page *new_page);
+
+#endif