15cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison/* MN10300 Byte-order primitive construction 25cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * 35cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 45cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * Written by David Howells (dhowells@redhat.com) 55cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * 65cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * This program is free software; you can redistribute it and/or 75cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * modify it under the terms of the GNU General Public Licence 85cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * as published by the Free Software Foundation; either version 95cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison * 2 of the Licence, or (at your option) any later version. 105cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison */ 115cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#ifndef _ASM_SWAB_H 125cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#define _ASM_SWAB_H 135cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 14bef53ca086e069a3fb8e6bf4ecf06221de9b445fJaswinder Singh Rajput#include <linux/types.h> 155cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 165cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#ifdef __GNUC__ 175cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 185cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrisonstatic inline __attribute__((const)) 195cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison__u32 __arch_swab32(__u32 x) 205cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison{ 215cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison __u32 ret; 225cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison asm("swap %1,%0" : "=r" (ret) : "r" (x)); 235cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison return ret; 245cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison} 255cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#define __arch_swab32 __arch_swab32 265cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 275cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrisonstatic inline __attribute__((const)) 285cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison__u16 __arch_swab16(__u16 x) 295cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison{ 305cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison __u16 ret; 315cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison asm("swaph %1,%0" : "=r" (ret) : "r" (x)); 325cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison return ret; 335cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison} 345cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#define __arch_swab32 __arch_swab32 355cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 365cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 375cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison# define __SWAB_64_THRU_32__ 385cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#endif 395cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 405cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#endif /* __GNUC__ */ 415cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison 425cbd04ae36fcb8fd1f38c71dacbbe59f3166f074Harvey Harrison#endif /* _ASM_SWAB_H */ 43