|
From: Ian N. <ian...@ho...> - 2012-06-06 21:33:13
|
Hello,
I inherit some gcc driver code and I'm porting a part of it to my EBC driver.
What's the equivalent of gcc typeof or how to implement the equivalent?
In particular, I'm having problem with this line of code:
list_for_each_entry_safe_from(bn, _bn, &dev->bvec_list.lh, lh)
1.Since list_for_each_entry_safe_from(pos, n, head, member) is defined as:
for (n = list_entry(pos->member.next, typeof(*pos), member); &pos->member != (head); pos = n, n = list_entry(n->member.next, typeof(*n), member))
2. And list_entry(ptr, type, member) = container_of(ptr, type, member)
3. #define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr);
(type *)( (char *)__mptr - offsetof(type,member) );})
By the time I expand all arguments, I'm hopelessly lost (:
Any suggestions?
Thanks!
|