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??
On Tue, 06 Jan 2015 15:07:17 +0530, nawab said:
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??
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.... :)
When we have to use INIT_LIST_HEAD and LIST_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'. -- Best regards, Chen Weixiang (Alex)
On Tue, Jan 6, 2015 at 1:37 AM, nawab <nawablinux@gmail.com> wrote:
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.
yes but that is minor difference. Major is that one is a macro and other is a function.
When we have to use INIT_LIST_HEAD and LIST_HEAD_INIT??
When do you use macro and when do you use function?
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Tue, Jan 06, 2015 at 01:26:45PM -0800, anish singh wrote:
On Tue, Jan 6, 2015 at 1:37 AM, nawab <nawablinux@gmail.com> wrote:
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.
yes but that is minor difference. Major is that one is a macro and other is a function.
When we have to use INIT_LIST_HEAD and LIST_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
participants (5)
-
anish singh -
Chen Weixiang -
Greg KH -
nawab -
Valdis.Kletnieks@vt.edu