mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	This patch add support for various library functions. Signed-off-by: Vincent Chen <vincentc@andestech.com> Signed-off-by: Greentime Hu <greentime@andestech.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			807 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			807 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
// Copyright (C) 2005-2017 Andes Technology Corporation
 | 
						|
 | 
						|
#ifndef __NDS32_SWAB_H__
 | 
						|
#define __NDS32_SWAB_H__
 | 
						|
 | 
						|
#include <linux/types.h>
 | 
						|
#include <linux/compiler.h>
 | 
						|
 | 
						|
static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
 | 
						|
{
 | 
						|
	__asm__("wsbh   %0, %0\n\t"	/* word swap byte within halfword */
 | 
						|
		"rotri  %0, %0, #16\n"
 | 
						|
		:"=r"(x)
 | 
						|
		:"0"(x));
 | 
						|
	return x;
 | 
						|
}
 | 
						|
 | 
						|
static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x)
 | 
						|
{
 | 
						|
	__asm__("wsbh   %0, %0\n"	/* word swap byte within halfword */
 | 
						|
		:"=r"(x)
 | 
						|
		:"0"(x));
 | 
						|
	return x;
 | 
						|
}
 | 
						|
 | 
						|
#define __arch_swab32(x) ___arch__swab32(x)
 | 
						|
#define __arch_swab16(x) ___arch__swab16(x)
 | 
						|
 | 
						|
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
 | 
						|
#define __BYTEORDER_HAS_U64__
 | 
						|
#define __SWAB_64_THRU_32__
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* __NDS32_SWAB_H__ */
 |