Some confusing code of the kernel

Marcus Hähnel mhaehnel at os.inf.tu-dresden.de
Wed May 28 09:44:17 CEST 2014


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

> 
> On Wed, May 28, 2014 at 6:55 AM, Adam Lackorzynski
> <adam at 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
>>>>> 
>>> 
>>> 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                 adam at os.inf.tu-dresden.de
>>   Lackorzynski         http://os.inf.tu-dresden.de/~adam/ [1]
>> 
>> _______________________________________________
>> l4-hackers mailing list
>> l4-hackers at os.inf.tu-dresden.de
>> 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
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers



More information about the l4-hackers mailing list