]> Joshua Wise's Git repositories - netwatch.git/blobdiff - lib/paging.c
p2v and v2p, in a manner of type A...
[netwatch.git] / lib / paging.c
diff --git a/lib/paging.c b/lib/paging.c
new file mode 100644 (file)
index 0000000..8fe80a9
--- /dev/null
@@ -0,0 +1,24 @@
+#include <minilib.h>
+#include <output.h>
+
+unsigned long memory_v2p(void *virt)
+{
+       unsigned long _virt = (unsigned long)virt;
+       
+       if (_virt >= 0xA0000 && _virt < 0xC0000)
+               return _virt;
+       if (_virt >= 0x200000 && _virt < 0x300000)
+               return _virt - 0x200000 + /* XXX */ 0x1FF80000;
+       outputf("WARNING: v2p(%08x)", _virt);
+       return 0xFFFFFFFF;
+}
+
+void *memory_p2v(unsigned long phys)
+{
+       if (phys >= 0xA0000 && phys < 0xC0000)
+               return (void*)phys;
+       if (phys >= 0x1FF80000 && phys < 0x20000000)
+               return (void*)(phys - 0x1FF80000 + 0x200000);
+       outputf("WARNING: p2v(%08x)", phys);
+       return (void *)0xFFFFFFFF;
+}
This page took 0.021943 seconds and 4 git commands to generate.