Messages in this thread | | | From | Kyle Moffett <> | Subject | Re: [PATCH 1/4] LOG2: Implement a general integer log2 facility in the kernel [try #4] | Date | Mon, 9 Oct 2006 05:51:14 -0400 |
| |
On Oct 09, 2006, at 04:36:12, Jan Engelhardt wrote:i >>>> Were you planning on porting Linux to a machine with non-8-bit- >>>> bytes any >>>> time soon? Because there's a lot more to fix than this. >>> >>> I am considering the case [assuming 8-bit-byte machines] where >>> sizeof(u32) is not 4. Though I suppose GCC will probably make a >>> 32-bit >>> type up if the hardware does not know one. >> >> If the machine has 8-bit bytes, how can sizeof(u32) be anything >> other than 4? > > typedef unsigned int u32; > > Though this should not be seen in the linux kernel.
Well, uhh, actually...
All presently-supported architectures do exactly that. Well, some do:
typedef unsigned int __u32; #ifdef __KERNEL__ typedef __u32 u32; #endif
It might be possible to clean up the types.h files a bit with something like the following in linux/types.h (nearly identical code is found in all of the asm-*/types.h files):
typedef unsigned char __u8; typedef signed char __s8; typedef unsigned short __u16; typedef signed short __s16; typedef unsigned int __u32; typedef signed int __s32; #if defined(CONFIG_ARCH_HAS_64BIT_WORD) typedef unsigned long __u64; typedef signed long __s64; #elif defined(__GNUC__) __extension__ typedef unsigned long long __u64; __extension__ typedef signed long long __s64; #endif
#ifdef __KERNEL__ typedef __u8 u8; typedef __s8 s8; typedef __u16 u16; typedef __s16 s16; typedef __u32 u32; typedef __s32 s32; typedef __u64 u64; typedef __s64 s64; #endif
With that you could delete ~30 lines from each of the various asm-*/ types.h files in exchange for 3 lines in each of the various arch/*/ Kconfig files.
I'll try to whip up a quick patch later today if I get the time.
Cheers, Kyle Moffett
- 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/
| |