1/* MN10300 Byte-order primitive construction 2 * 3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 */ 11#ifndef _ASM_SWAB_H 12#define _ASM_SWAB_H 13 14#include <linux/types.h> 15 16#ifdef __GNUC__ 17 18static inline __attribute__((const)) 19__u32 __arch_swab32(__u32 x) 20{ 21 __u32 ret; 22 asm("swap %1,%0" : "=r" (ret) : "r" (x)); 23 return ret; 24} 25#define __arch_swab32 __arch_swab32 26 27static inline __attribute__((const)) 28__u16 __arch_swab16(__u16 x) 29{ 30 __u16 ret; 31 asm("swaph %1,%0" : "=r" (ret) : "r" (x)); 32 return ret; 33} 34#define __arch_swab32 __arch_swab32 35 36#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 37# define __SWAB_64_THRU_32__ 38#endif 39 40#endif /* __GNUC__ */ 41 42#endif /* _ASM_SWAB_H */ 43