Re: Some confusing code of the kernel
Yuxin Ren <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <CAAKbDrfvD8tO1xNRMYC1m9MQH0TqCn6Lrh4za-chnxA9oRO7aQ@mail.gmail.com> |
Thank you very much. But how can I know which file is compiled? On Wed, May 28, 2014 at 6:55 AM, Adam Lackorzynski < [email protected]> 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 > > > > > > > > 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 [email protected] > Lackorzynski http://os.inf.tu-dresden.de/~adam/ > > _______________________________________________ > l4-hackers mailing list > [email protected] > http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers > _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers