Re: container_of

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






> On Jan 17, 2015, at 8:32 AM, Simon Brand <simon.brand@xxxxxxxxxxxxxxxx> wrote:
> 
> Good evening,
> 
> i read the article about the container_of function:
> http://www.kroah.com/log/linux/container_of.html
> 
> I understand what it does and how it works.
> 
> I thought, it could be simplified by replacing it through this:
> 
> #define container_of(ptr, type, member) ({ \
>                (type *)( (char *)ptr - offsetof(type,member) );})
> 
> Original:
> #define container_of(ptr, type, member) ({ \
>                const typeof( ((type *)0)->member ) *__mptr = (ptr); 
>                (type *)( (char *)__mptr - offsetof(type,member) );})
> 
> 
> ptr has the type of a pointer to the member, which should be the same
> as __mptr? The value should although be the same.
> 
> First I tried it in a self written script, then replaced it in
> include/linux/kernel.h and compiled it as usermode linux -> working
> well.
> 
> Then I compiled it and run it in a VM, but it is not working.
What do you mean by that? What is not working?
> 
> Can you please explain to me, why the original version is always working
> and "mine" is not? 
> 
> Thank you for your time!
> 
> Regards,
> Simon
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux