On Wed, Jun 04, 2003 at 04:38:45AM -0700, David S. Miller wrote: > From: "Hen, Shmulik" <shmulik.hen@intel.com> > Date: Wed, 4 Jun 2003 14:36:46 +0300 > > While on the subject, what about ethtool.h? It too uses the u<size> kernel > style instead of __u<size> and therefore applications using it has to do all > kinds of loops and twists to work around that (e.g. ethtool.c, ifenslave.c). > > Yep, and while Jeff may disagree with me, using __u* types is better > than whatever people must be doing to get the current header to > work :-) For user-visible headers, I agree that standard kernel "u<size>" is not a solution. However, I disagree that "__u<size>" is the solution. This is only tradition, and NOT a standard. The genesis is that Linux started out as essentially "gcc only OS", and since gcc was the only real compiler, gcc-specific types are used. Nowadays, the situation has changed. There are multiple non-gcc compilers being used to build userland code. The proper solution is to use C99 standard "uint<size>_t" types, which is not gcc-specific. Therefore, on headers I have a say over, like ethtool.h, any type conversion will be to the C99 standard. I feel this way too for xfrm.h, but don't have any say in the matter. __u64 was used because it was the only solution. Not because it was the best solution. Jeff - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html