Re: Some confusing code of the kernel
Yuxin Ren <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <CAAKbDrejtvtk7BkgPWjJO64vW4G9K2eu7G-nzkNkz+Zi369g6w@mail.gmail.com> |
On Tue, May 27, 2014 at 11:44 PM, Marcus Hähnel < [email protected]> wrote: > On 2014-05-28 03:59, Yuxin Ren wrote: > >> Thank you very much. >> But how can I know which file is compiled? >> > > This is decided during build time based on your configuration. The vuild > system decides which file to build based on the CONFIG_VIRT_OBJ_SPACE > setting. See src/Modules.generic. > > - Marcus > > Thanks a lot. But can you tell me a little in detail which kernel compile configuration decides this? I am using x86 and ia32.. Best > >> 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/ [1] >>> >>> >>> _______________________________________________ >>> l4-hackers mailing list >>> [email protected] >>> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers [2] >>> >> >> >> >> Links: >> ------ >> [1] http://os.inf.tu-dresden.de/~adam/ >> [2] 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 >> > > _______________________________________________ > 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