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! |