diff -urpN --exclude-from=/home/davej/.exclude bk-linus/fs/jfs/endian24.h linux-2.5/fs/jfs/endian24.h --- bk-linus/fs/jfs/endian24.h 2002-11-21 02:20:20.000000000 +0000 +++ linux-2.5/fs/jfs/endian24.h 2002-11-21 18:02:19.000000000 +0000 @@ -17,33 +17,4 @@ */ #ifndef _H_ENDIAN24 #define _H_ENDIAN24 - -/* - * endian24.h: - * - * Endian conversion for 24-byte data - * - */ -#define __swab24(x) \ -({ \ - __u32 __x = (x); \ - ((__u32)( \ - ((__x & (__u32)0x000000ffUL) << 16) | \ - (__x & (__u32)0x0000ff00UL) | \ - ((__x & (__u32)0x00ff0000UL) >> 16) )); \ -}) - -#if (defined(__KERNEL__) && defined(__LITTLE_ENDIAN)) || (defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN)) - #define __cpu_to_le24(x) ((__u32)(x)) - #define __le24_to_cpu(x) ((__u32)(x)) -#else - #define __cpu_to_le24(x) __swab24(x) - #define __le24_to_cpu(x) __swab24(x) -#endif - -#ifdef __KERNEL__ - #define cpu_to_le24 __cpu_to_le24 - #define le24_to_cpu __le24_to_cpu -#endif - #endif /* !_H_ENDIAN24 */ diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/big_endian.h linux-2.5/include/linux/byteorder/big_endian.h --- bk-linus/include/linux/byteorder/big_endian.h 2002-11-21 02:24:12.000000000 +0000 +++ linux-2.5/include/linux/byteorder/big_endian.h 2002-11-21 18:04:57.000000000 +0000 @@ -18,48 +18,64 @@ #define __constant_le64_to_cpu(x) ___constant_swab64((x)) #define __constant_cpu_to_le32(x) ___constant_swab32((x)) #define __constant_le32_to_cpu(x) ___constant_swab32((x)) +#define __constant_cpu_to_le24(x) ___constant_swab24((x)) +#define __constant_le24_to_cpu(x) ___constant_swab24((x)) #define __constant_cpu_to_le16(x) ___constant_swab16((x)) #define __constant_le16_to_cpu(x) ___constant_swab16((x)) #define __constant_cpu_to_be64(x) ((__u64)(x)) #define __constant_be64_to_cpu(x) ((__u64)(x)) #define __constant_cpu_to_be32(x) ((__u32)(x)) #define __constant_be32_to_cpu(x) ((__u32)(x)) +#define __constant_cpu_to_be24(x) ((__u32)(x)) +#define __constant_be24_to_cpu(x) ((__u32)(x)) #define __constant_cpu_to_be16(x) ((__u16)(x)) #define __constant_be16_to_cpu(x) ((__u16)(x)) #define __cpu_to_le64(x) __swab64((x)) #define __le64_to_cpu(x) __swab64((x)) #define __cpu_to_le32(x) __swab32((x)) #define __le32_to_cpu(x) __swab32((x)) +#define __cpu_to_le24(x) __swab24((x)) +#define __le24_to_cpu(x) __swab24((x)) #define __cpu_to_le16(x) __swab16((x)) #define __le16_to_cpu(x) __swab16((x)) #define __cpu_to_be64(x) ((__u64)(x)) #define __be64_to_cpu(x) ((__u64)(x)) #define __cpu_to_be32(x) ((__u32)(x)) #define __be32_to_cpu(x) ((__u32)(x)) +#define __cpu_to_be24(x) ((__u32)(x)) +#define __be24_to_cpu(x) ((__u32)(x)) #define __cpu_to_be16(x) ((__u16)(x)) #define __be16_to_cpu(x) ((__u16)(x)) #define __cpu_to_le64p(x) __swab64p((x)) #define __le64_to_cpup(x) __swab64p((x)) #define __cpu_to_le32p(x) __swab32p((x)) #define __le32_to_cpup(x) __swab32p((x)) +#define __cpu_to_le24p(x) __swab24p((x)) +#define __le24_to_cpup(x) __swab24p((x)) #define __cpu_to_le16p(x) __swab16p((x)) #define __le16_to_cpup(x) __swab16p((x)) #define __cpu_to_be64p(x) (*(__u64*)(x)) #define __be64_to_cpup(x) (*(__u64*)(x)) #define __cpu_to_be32p(x) (*(__u32*)(x)) #define __be32_to_cpup(x) (*(__u32*)(x)) +#define __cpu_to_be24p(x) (*(__u24*)(x)) +#define __be24_to_cpup(x) (*(__u24*)(x)) #define __cpu_to_be16p(x) (*(__u16*)(x)) #define __be16_to_cpup(x) (*(__u16*)(x)) #define __cpu_to_le64s(x) __swab64s((x)) #define __le64_to_cpus(x) __swab64s((x)) #define __cpu_to_le32s(x) __swab32s((x)) #define __le32_to_cpus(x) __swab32s((x)) +#define __cpu_to_le24s(x) __swab24s((x)) +#define __le24_to_cpus(x) __swab24s((x)) #define __cpu_to_le16s(x) __swab16s((x)) #define __le16_to_cpus(x) __swab16s((x)) #define __cpu_to_be64s(x) do {} while (0) #define __be64_to_cpus(x) do {} while (0) #define __cpu_to_be32s(x) do {} while (0) #define __be32_to_cpus(x) do {} while (0) +#define __cpu_to_be24s(x) do {} while (0) +#define __be24_to_cpus(x) do {} while (0) #define __cpu_to_be16s(x) do {} while (0) #define __be16_to_cpus(x) do {} while (0) diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/little_endian.h linux-2.5/include/linux/byteorder/little_endian.h --- bk-linus/include/linux/byteorder/little_endian.h 2002-11-21 02:24:12.000000000 +0000 +++ linux-2.5/include/linux/byteorder/little_endian.h 2002-11-21 18:04:57.000000000 +0000 @@ -18,48 +18,64 @@ #define __constant_le64_to_cpu(x) ((__u64)(x)) #define __constant_cpu_to_le32(x) ((__u32)(x)) #define __constant_le32_to_cpu(x) ((__u32)(x)) +#define __constant_cpu_to_le24(x) ((__u32)(x)) +#define __constant_le24_to_cpu(x) ((__u32)(x)) #define __constant_cpu_to_le16(x) ((__u16)(x)) #define __constant_le16_to_cpu(x) ((__u16)(x)) #define __constant_cpu_to_be64(x) ___constant_swab64((x)) #define __constant_be64_to_cpu(x) ___constant_swab64((x)) #define __constant_cpu_to_be32(x) ___constant_swab32((x)) #define __constant_be32_to_cpu(x) ___constant_swab32((x)) +#define __constant_cpu_to_be24(x) ___constant_swab24((x)) +#define __constant_be24_to_cpu(x) ___constant_swab24((x)) #define __constant_cpu_to_be16(x) ___constant_swab16((x)) #define __constant_be16_to_cpu(x) ___constant_swab16((x)) #define __cpu_to_le64(x) ((__u64)(x)) #define __le64_to_cpu(x) ((__u64)(x)) #define __cpu_to_le32(x) ((__u32)(x)) #define __le32_to_cpu(x) ((__u32)(x)) +#define __cpu_to_le24(x) ((__u32)(x)) +#define __le24_to_cpu(x) ((__u32)(x)) #define __cpu_to_le16(x) ((__u16)(x)) #define __le16_to_cpu(x) ((__u16)(x)) #define __cpu_to_be64(x) __swab64((x)) #define __be64_to_cpu(x) __swab64((x)) #define __cpu_to_be32(x) __swab32((x)) #define __be32_to_cpu(x) __swab32((x)) +#define __cpu_to_be24(x) __swab24((x)) +#define __be24_to_cpu(x) __swab24((x)) #define __cpu_to_be16(x) __swab16((x)) #define __be16_to_cpu(x) __swab16((x)) #define __cpu_to_le64p(x) (*(__u64*)(x)) #define __le64_to_cpup(x) (*(__u64*)(x)) #define __cpu_to_le32p(x) (*(__u32*)(x)) #define __le32_to_cpup(x) (*(__u32*)(x)) +#define __cpu_to_le24p(x) (*(__u32*)(x)) +#define __le24_to_cpup(x) (*(__u32*)(x)) #define __cpu_to_le16p(x) (*(__u16*)(x)) #define __le16_to_cpup(x) (*(__u16*)(x)) #define __cpu_to_be64p(x) __swab64p((x)) #define __be64_to_cpup(x) __swab64p((x)) #define __cpu_to_be32p(x) __swab32p((x)) #define __be32_to_cpup(x) __swab32p((x)) +#define __cpu_to_be24p(x) __swab24p((x)) +#define __be24_to_cpup(x) __swab24p((x)) #define __cpu_to_be16p(x) __swab16p((x)) #define __be16_to_cpup(x) __swab16p((x)) #define __cpu_to_le64s(x) do {} while (0) #define __le64_to_cpus(x) do {} while (0) #define __cpu_to_le32s(x) do {} while (0) #define __le32_to_cpus(x) do {} while (0) +#define __cpu_to_le24s(x) do {} while (0) +#define __le24_to_cpus(x) do {} while (0) #define __cpu_to_le16s(x) do {} while (0) #define __le16_to_cpus(x) do {} while (0) #define __cpu_to_be64s(x) __swab64s((x)) #define __be64_to_cpus(x) __swab64s((x)) #define __cpu_to_be32s(x) __swab32s((x)) #define __be32_to_cpus(x) __swab32s((x)) +#define __cpu_to_be24s(x) __swab24s((x)) +#define __be24_to_cpus(x) __swab24s((x)) #define __cpu_to_be16s(x) __swab16s((x)) #define __be16_to_cpus(x) __swab16s((x)) diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/swab.h linux-2.5/include/linux/byteorder/swab.h --- bk-linus/include/linux/byteorder/swab.h 2002-11-21 02:24:12.000000000 +0000 +++ linux-2.5/include/linux/byteorder/swab.h 2002-11-21 18:04:57.000000000 +0000 @@ -26,6 +26,15 @@ (((__u16)(__x) & (__u16)0xff00U) >> 8) )); \ }) +#define ___swab24(x) \ +({ \ + __u32 __x = (x); \ + ((__u32)( \ + ((__x & (__u32)0x000000ffUL) << 16) | \ + (__x & (__u32)0x0000ff00UL) | \ + ((__x & (__u32)0x00ff0000UL) >> 16) )); \ +}) + #define ___swab32(x) \ ({ \ __u32 __x = (x); \ @@ -54,6 +63,11 @@ ((__u16)( \ (((__u16)(x) & (__u16)0x00ffU) << 8) | \ (((__u16)(x) & (__u16)0xff00U) >> 8) )) +#define ___constant_swab24(x) \ + ((__u32)( \ + (((__u32)(x) & (__u32)0x000000ffU) << 16) | \ + (((__u32)(x) & (__u32)0x0000ff00U) | \ + (((__u32)(x) & (__u32)0x00ff0000U) >> 16) )) #define ___constant_swab32(x) \ ((__u32)( \ (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ @@ -77,6 +91,9 @@ #ifndef __arch__swab16 # define __arch__swab16(x) ({ __u16 __tmp = (x) ; ___swab16(__tmp); }) #endif +#ifndef __arch__swab24 +# define __arch__swab24(x) ({ __u32 __tmp = (x) ; ___swab24(__tmp); }) +#endif #ifndef __arch__swab32 # define __arch__swab32(x) ({ __u32 __tmp = (x) ; ___swab32(__tmp); }) #endif @@ -87,6 +104,9 @@ #ifndef __arch__swab16p # define __arch__swab16p(x) __arch__swab16(*(x)) #endif +#ifndef __arch__swab24p +# define __arch__swab24p(x) __arch__swab24(*(x)) +#endif #ifndef __arch__swab32p # define __arch__swab32p(x) __arch__swab32(*(x)) #endif @@ -97,6 +117,9 @@ #ifndef __arch__swab16s # define __arch__swab16s(x) do { *(x) = __arch__swab16p((x)); } while (0) #endif +#ifndef __arch__swab24s +# define __arch__swab24s(x) do { *(x) = __arch__swab24p((x)); } while (0) +#endif #ifndef __arch__swab32s # define __arch__swab32s(x) do { *(x) = __arch__swab32p((x)); } while (0) #endif @@ -113,6 +136,10 @@ (__builtin_constant_p((__u16)(x)) ? \ ___swab16((x)) : \ __fswab16((x))) +# define __swab24(x) \ +(__builtin_constant_p((__u32)(x)) ? \ + ___swab24((x)) : \ + __fswab24((x))) # define __swab32(x) \ (__builtin_constant_p((__u32)(x)) ? \ ___swab32((x)) : \ @@ -123,6 +150,7 @@ __fswab64((x))) #else # define __swab16(x) __fswab16(x) +# define __swab24(x) __fswab24(x) # define __swab32(x) __fswab32(x) # define __swab64(x) __fswab64(x) #endif /* OPTIMIZE */ @@ -141,6 +169,19 @@ static __inline__ void __swab16s(__u16 * __arch__swab16s(addr); } +static __inline__ __const__ __u32 __fswab24(__u32 x) +{ + return __arch__swab24(x); +} +static __inline__ __u32 __swab24p(__u32 *x) +{ + return __arch__swab24p(x); +} +static __inline__ void __swab24s(__u32 *addr) +{ + __arch__swab24s(addr); +} + static __inline__ __const__ __u32 __fswab32(__u32 x) { return __arch__swab32(x); @@ -177,12 +218,15 @@ static __inline__ void __swab64s(__u64 * #if defined(__KERNEL__) #define swab16 __swab16 +#define swab24 __swab24 #define swab32 __swab32 #define swab64 __swab64 #define swab16p __swab16p +#define swab24p __swab24p #define swab32p __swab32p #define swab64p __swab64p #define swab16s __swab16s +#define swab24s __swab24s #define swab32s __swab32s #define swab64s __swab64s #endif