]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/jdb/jdb_util.cpp
3c801e12f1985c3879ae9f1dea6e704a9c35d0c4
[l4.git] / kernel / fiasco / src / jdb / jdb_util.cpp
1 INTERFACE:
2
3 class Jdb_util
4 {
5 public:
6   static bool is_mapped(void const *addr);
7 };
8
9 IMPLEMENTATION[ia32|ux|amd64]:
10
11 #include "kmem.h"
12
13 IMPLEMENT
14 bool
15 Jdb_util::is_mapped(void const *x)
16 {
17   return Kmem::virt_to_phys(x) != ~0UL;
18 }
19
20 IMPLEMENTATION[arm]:
21
22 #include "pagetable.h"
23 #include "kmem_space.h"
24
25 IMPLEMENT inline NEEDS["kmem_space.h", "pagetable.h"]
26 bool
27 Jdb_util::is_mapped(void const* addr)
28 {
29   return Kmem_space::kdir()->walk(const_cast<void*>(addr), 0, false, Ptab::Null_alloc(), 0).valid();
30 }
31
32 IMPLEMENTATION[ppc32]:
33
34 IMPLEMENT inline
35 bool
36 Jdb_util::is_mapped(void const * /*addr*/)
37 {
38   return true;
39 }
40
41 IMPLEMENTATION[sparc]:
42
43 IMPLEMENT inline
44 bool
45 Jdb_util::is_mapped(void const * /*addr*/)
46 {
47   return false; // TBD
48 }