Some confusing code of the kernel
ryx at gwmail.gwu.edu
Wed May 28 03:59:24 CEST 2014
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 at os.inf.tu-dresden.de> wrote:
> 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 :
> > >
> > And similarly, in the file obj_space-phys.cpp, we have
> > EXTENSION class Generic_obj_space : Obj_space_phys<Generic_obj_space<
> > > >
> > 1. 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.
> > 2. 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 at os.inf.tu-dresden.de
> Lackorzynski http://os.inf.tu-dresden.de/~adam/
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the l4-hackers