summaryrefslogtreecommitdiffstats
path: root/arch/um/include/mem.h
diff options
context:
space:
mode:
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>2005-09-10 19:44:56 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-10 12:00:18 -0700
commitd99c4022f60a9aa3a8dc6b7d71f3d0998c696912 (patch)
treed02de9d131b3d45a21ce60e4b5d3380497f86daf /arch/um/include/mem.h
parent4413a511f22ec771edc0b7c93e5b34e05511acb5 (diff)
[PATCH] uml: inline mk_pte and various friends
Turns out that, for UML, a *lot* of VM-related trivial functions are not inlined but rather normal functions. In other sections of UML code, this is justified by having files which interact with the host and cannot therefore include kernel headers, but in this case there's no such justification. I've had to turn many of them to macros because of missing declarations. While doing this, I've decided to reuse some already existing macros. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/include/mem.h')
-rw-r--r--arch/um/include/mem.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/um/include/mem.h b/arch/um/include/mem.h
index 99d3ad4a03e..e8ff0d8fa61 100644
--- a/arch/um/include/mem.h
+++ b/arch/um/include/mem.h
@@ -13,7 +13,17 @@ extern int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w);
extern int is_remapped(void *virt);
extern int physmem_remove_mapping(void *virt);
extern void physmem_forget_descriptor(int fd);
-extern unsigned long to_phys(void *virt);
+
+extern unsigned long uml_physmem;
+static inline unsigned long to_phys(void *virt)
+{
+ return(((unsigned long) virt) - uml_physmem);
+}
+
+static inline void *to_virt(unsigned long phys)
+{
+ return((void *) uml_physmem + phys);
+}
#endif