Some confusing code of the kernel

Yuxin Ren ryx at gwmail.gwu.edu
Thu May 29 18:22:41 CEST 2014


On Tue, May 27, 2014 at 11:44 PM, Marcus Hähnel <
mhaehnel at os.inf.tu-dresden.de> 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
>> <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
>>
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140529/2cff3415/attachment.html>


More information about the l4-hackers mailing list