summaryrefslogtreecommitdiff
path: root/include/linux/vcache.h
blob: d5756643332cc8e6d03a13bb4e226856c4350f9a (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
/*
 * 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