Prev: Break out types from <linux/list.h> to <linux/list_types.h>.
Next: 2.6.34: simple IOMMU API extension to check safe interrupt remapping
From: Chris Metcalf on 2 Jul 2010 15:40 On 7/2/2010 3:19 PM, Matthew Wilcox wrote: > On Fri, Jul 02, 2010 at 01:41:14PM -0400, Chris Metcalf wrote: > >> This allows a list_head (or hlist_head, etc.) to be used from places >> that used to be impractical, in particular <asm/processor.h>, which >> used to cause include file recursion: <linux/list.h> includes >> <linux/prefetch.h>, which always includes <asm/processor.h> for the >> prefetch macros, as well as <asm/system.h>, which often includes >> <asm/processor.h> directly or indirectly. >> > Why a new header file instead of linux/types.h? > I was working from analogy to kvm_types.h, mm_types.h, rwlock_types.h, spinlock_types.h. My impression is that linux/types.h is generally for basic (non-struct) types, with atomic_t/atomic64_t being added as "almost non-struct types", and of course the historical exception of "struct ustat", which has been there since the dawn of time (0.97 anyway). -- Chris Metcalf, Tilera Corp. http://www.tilera.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Chris Metcalf on 2 Jul 2010 17:20
On 7/2/2010 4:48 PM, Matthew Wilcox wrote: > On Fri, Jul 02, 2010 at 03:33:52PM -0400, Chris Metcalf wrote: > >> On 7/2/2010 3:19 PM, Matthew Wilcox wrote: >> >>> Why a new header file instead of linux/types.h? >>> >> I was working from analogy to kvm_types.h, mm_types.h, rwlock_types.h, >> spinlock_types.h. My impression is that linux/types.h is generally for >> basic (non-struct) types, with atomic_t/atomic64_t being added as >> "almost non-struct types", and of course the historical exception of >> "struct ustat", which has been there since the dawn of time (0.97 anyway). >> > I think list_head, hlist_head and hlist_node qualify as "almost non-struct > types", don't you? :-) > I see the smiley, but to reply seriously, the distinction I was making was that atomic_t is really just an integer type, but with typing magic to protect it from implicit conversion -- unlike list_head, which really is a more complex type. I suppose one could make a kind of "intent of the founders" constitutional law-type argument suggesting that the presence of "struct ustat" suggests more complex types are in fact appropriate in <linux/types.h>. :-) > I wouldn't mind seeing kvm_types.h, rwlock_types.h and spinlock_types.h > merged into types.h, personally. They're all pretty fundamental kernel > kind of types. It's a matter of taste, and I'm not particularly fussed > one way or the other. > Somehow it's hard to see kvm_ioapic_redirect_entry on a par with size_t :-) > I just object to the unnecessary creation of tiny files like this. > Which is how we ended up with atomic_t and atomic64_t in there in the > first place :-) > In any case, I think this either way is plausible, but in the absence of more folks weighing in, I think "avoid adding a complex type to <linux/types.h>" sounds more convincing to me than "avoid adding a new tiny file", though I certainly do buy the latter argument. -- Chris Metcalf, Tilera Corp. http://www.tilera.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |