Hi,
It's raining Suday afternoon in Korea where many people are in grief for the
loss of their family members from the ferry accident last week.
We have those victims and families in our thoughts and prayers..
Anyway, I have a question..
In file mm/memory.c (linux 3.3), in funrcion __pmd_alloc, I see a line below.
pmd_t *new = pmd_alloc_one(mm, address);
pmd_alloc_one is defined as below.
#define pmd_alloc_one(mm, address) BTFIXUP_CALL(pmd_alloc_one)(mm,
address)
if I apply the BTFIXUP_CALL macro, (#define BTFIXUP_CALL(__name) ___f_##__name)
it just becomes ___f_pmd_alloc_one which is defined in file
arch/sparc/boot/btfix.S below.
-----------
...
.global ___btfixup_end
___btfixup_end:
! Define undefined references
.global ___f_flush_sig_insns
___f_flush_sig_insns:
...
.global ___f_pmd_alloc_one
___f_pmd_alloc_one:
...
---------------
which makes me think ___f_pmd_alloc_one is just an adress shared by many
___f_... functions.
And I couldn't find ___f_pmd_alloc_one anywhere else. (no definition..)
But actually, as I guessed, the pmd_alloc_one function is actually
srmmu_pmd_alloc_one function.
How is this done? I only know BTFIXUP.. thing is adjusting the functions for
the correct subarchitecture but I can't understand how this is done.
Could anyboy tell me how this is done? or any good reference?
Thanks,
Chan
_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies