Thank you very much. But how can I know which file is compiled?
On Wed, May 28, 2014 at 6:55 AM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Tue May 27, 2014 at 13:51:31 -0800, Yuxin Ren wrote:
Now I am learning the kernel code of Fiasco. But as I do not know much about C++, I feel confused about some code.
Some C++ knowledge is required I think...
In the file obj_space-virt.cpp, we have such code EXTENSION class Generic_obj_space :
Obj_space_virt<Generic_obj_space<SPACE>
And similarly, in the file obj_space-phys.cpp, we have EXTENSION class Generic_obj_space : Obj_space_phys<Generic_obj_space<
SPACE
- What's the meaning of these tow line code? Does it mean that the class
Generic_obj_space inherit from both class Obj_space_virt and class Obj_space_phys?
It inherits from just Obj_space_phys which however takes another class as a parameter to implement some specific functionality at compile time.
- I note that class Obj_space_virt and Obj_space_phys have some methods
with the same name, such as lookup_local method. When such a method is called, how can I know which class is invoked?
That depends on the type of the object the method is called on. In this particular case with obj_space-*.cpp, only one file of the two files is compiled, so only one version of Generic_obj_space can ever exist.
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers