2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-24 05:04:00 +08:00
linux-next/arch/avr32/include/asm/byteorder.h
Harvey Harrison f3c450be7b avr32: use the new byteorder headers
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
[haavard.skinnemoen@atmel.com: fix <mach/io.h> build breakage]
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-09-22 09:51:00 +02:00

38 lines
842 B
C

/*
* AVR32 endian-conversion functions.
*/
#ifndef __ASM_AVR32_BYTEORDER_H
#define __ASM_AVR32_BYTEORDER_H
#include <asm/types.h>
#include <linux/compiler.h>
#define __BIG_ENDIAN
#define __SWAB_64_THRU_32__
#ifdef __CHECKER__
extern unsigned long __builtin_bswap_32(unsigned long x);
extern unsigned short __builtin_bswap_16(unsigned short x);
#endif
/*
* avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
* the result.
*/
#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
static inline __attribute_const__ __u16 __arch_swab16(__u16 val)
{
return __builtin_bswap_16(val);
}
#define __arch_swab16 __arch_swab16
static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
{
return __builtin_bswap_32(val);
}
#define __arch_swab32 __arch_swab32
#endif
#include <linux/byteorder.h>
#endif /* __ASM_AVR32_BYTEORDER_H */