Difference between INIT_LIST_HEAD and LIST_HEAD_INIT
hi friends ,
i have a simple doubt when i was looking on linux/list.h
I have seen that INIT_LIST_HEAD and LIST_HEAD_INIT are performing the
same functionality,the major difference is
the argument passed.
When we have to use INIT_LIST_HEAD and LIST_HEAD_INIT??
Quoted 9 lines · nawab
hi friends ,
i have a simple doubt when i was looking on
linux/list.hI have seen that
INIT_LIST_HEADandLIST_HEAD_INITare performing the
same functionality,the major difference is
the argument passed.When we have to use
INIT_LIST_HEADandLIST_HEAD_INIT??
At the risk of sounding snarky - you use INIT_LIST_HEAD when you have an argument of the type it takes, and you use LIST_INIT_HEAD when you have something of the type that *that* one takes. Just like math.h gives us:
double sin(double x);
float sinf(float x);so if you have a float, you call sinf() and if you have a double, you call sin().
(Hint: One looks suspiciously like a data initializer, the other looks like executable code.... :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150106/109fc439/attachment.bin
Quoted 3 lines
Quoted 2 lines
When we have to use
INIT_LIST_HEADandLIST_HEAD_INIT??
I believe it's better to use macro LIST_HEAD(name) to define and initialize a variable of type 'struct list_head'.
The method INIT_LIST_HEAD() is used to initialize a predefined variable of type 'struct list_head'.
Signature · 2 lines
Best regards, Chen Weixiang (Alex)
Quoted 8 lines · nawab
hi friends ,
i have a simple doubt when i was looking on
linux/list.hI have seen that
INIT_LIST_HEADandLIST_HEAD_INITare performing the
same functionality,the major difference is
the argument passed.
yes but that is minor difference. Major is that one is a macro and other is a function.
Quoted 2 lines
When we have to use
INIT_LIST_HEADandLIST_HEAD_INIT??
When do you use macro and when do you use function?
Quoted 6 lines
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies at kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150106/d9c54d49/attachment.html
Quoted 17 lines · anish singh
On Tue, Jan 6, 2015 at 1:37 AM, nawab <[email protected]> wrote:
hi friends ,
i have a simple doubt when i was looking on
linux/list.hI have seen that? ?INIT_LIST_HEAD and
LIST_HEAD_INITare performing the same functionality,the major difference is
the argument passed.?
yes but that is minor difference. Major is that one is a macro and other is a function.
?
Quoted 4 lines
When we have to use
INIT_LIST_HEADandLIST_HEAD_INIT??When do you use macro and when do you use function?
It depends on your need. Look at how the two are used in the kernel, we have thousands of examples. Seeing them should explain more than what we can here.
Or, try it out yourself, write a tiny module using a list and see how the different functions and macros work.
good luck,
greg k-h