Messages in this thread | | | From | Jan Blunck <> | Subject | Re: [PATCH RFC] struct list_node | Date | Thu, 14 Jun 2007 10:03:51 +0000 (UTC) |
| |
On Sun, 10 Jun 2007 15:11:30 +1000, Rusty Russell wrote:
> > +/* A list node is the same as the head of the list, but it's useful to > + * think of them as a separate type. */ > +struct list_node { > + struct list_head h; > +}; > + > +/* This allows us to support old style list_head as well as list_node. */ > +union list_head_or_node { > + struct list_head *_h; > + struct list_node *_n; > +}; > +union list_head_or_node_const { > + struct list_head *_h; > + struct list_node *_n; > + const struct list_head *_ch; > + const struct list_node *_cn; > +}; > +#define __lh(n) (((union list_head_or_node)(n))._h) > +#define __clh(n) (((union list_head_or_node_const)(n))._h) > +
Any reason why you don't use __attribute__ ((transparent_union)) ? I guess this is exactly the case for which it was invented.
Cheers, Jan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |