-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 126879 b: refs/heads/master c: 13f7877 h: refs/heads/master i: 126877: 4533b23 126875: c004d85 126871: b7636c0 126863: 79bdbd9 126847: 50bdedb v: v3
- Loading branch information
Harvey Harrison
authored and
Linus Torvalds
committed
Jan 7, 2009
1 parent
68bf696
commit ad8c51e
Showing
4 changed files
with
95 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 156ca2bbf6503a02d7d6829886ce381d572de66e | ||
refs/heads/master: 13f7877bb5aeb1d5ad01ffbf17a80fb550fa6642 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,3 +13,4 @@ unifdef-y += cmb.h | |
unifdef-y += debug.h | ||
unifdef-y += chpid.h | ||
unifdef-y += schid.h | ||
unifdef-y += swab.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,95 +1,7 @@ | ||
#ifndef _S390_BYTEORDER_H | ||
#define _S390_BYTEORDER_H | ||
|
||
/* | ||
* include/asm-s390/byteorder.h | ||
* | ||
* S390 version | ||
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | ||
*/ | ||
|
||
#include <asm/types.h> | ||
|
||
#define __BIG_ENDIAN | ||
|
||
#ifndef __s390x__ | ||
# define __SWAB_64_THRU_32__ | ||
#endif | ||
|
||
#ifdef __s390x__ | ||
static inline __u64 __arch_swab64p(const __u64 *x) | ||
{ | ||
__u64 result; | ||
|
||
asm volatile("lrvg %0,%1" : "=d" (result) : "m" (*x)); | ||
return result; | ||
} | ||
#define __arch_swab64p __arch_swab64p | ||
|
||
static inline __u64 __arch_swab64(__u64 x) | ||
{ | ||
__u64 result; | ||
|
||
asm volatile("lrvgr %0,%1" : "=d" (result) : "d" (x)); | ||
return result; | ||
} | ||
#define __arch_swab64 __arch_swab64 | ||
|
||
static inline void __arch_swab64s(__u64 *x) | ||
{ | ||
*x = __arch_swab64p(x); | ||
} | ||
#define __arch_swab64s __arch_swab64s | ||
#endif /* __s390x__ */ | ||
|
||
static inline __u32 __arch_swab32p(const __u32 *x) | ||
{ | ||
__u32 result; | ||
|
||
asm volatile( | ||
#ifndef __s390x__ | ||
" icm %0,8,3(%1)\n" | ||
" icm %0,4,2(%1)\n" | ||
" icm %0,2,1(%1)\n" | ||
" ic %0,0(%1)" | ||
: "=&d" (result) : "a" (x), "m" (*x) : "cc"); | ||
#else /* __s390x__ */ | ||
" lrv %0,%1" | ||
: "=d" (result) : "m" (*x)); | ||
#endif /* __s390x__ */ | ||
return result; | ||
} | ||
#define __arch_swab32p __arch_swab32p | ||
|
||
#ifdef __s390x__ | ||
static inline __u32 __arch_swab32(__u32 x) | ||
{ | ||
__u32 result; | ||
|
||
asm volatile("lrvr %0,%1" : "=d" (result) : "d" (x)); | ||
return result; | ||
} | ||
#define __arch_swab32 __arch_swab32 | ||
#endif /* __s390x__ */ | ||
|
||
static inline __u16 __arch_swab16p(const __u16 *x) | ||
{ | ||
__u16 result; | ||
|
||
asm volatile( | ||
#ifndef __s390x__ | ||
" icm %0,2,1(%1)\n" | ||
" ic %0,0(%1)\n" | ||
: "=&d" (result) : "a" (x), "m" (*x) : "cc"); | ||
#else /* __s390x__ */ | ||
" lrvh %0,%1" | ||
: "=d" (result) : "m" (*x)); | ||
#endif /* __s390x__ */ | ||
return result; | ||
} | ||
#define __arch_swab16p __arch_swab16p | ||
|
||
#include <linux/byteorder.h> | ||
#include <asm/swab.h> | ||
#include <linux/byteorder/big_endian.h> | ||
|
||
#endif /* _S390_BYTEORDER_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
#ifndef _S390_SWAB_H | ||
#define _S390_SWAB_H | ||
|
||
/* | ||
* include/asm-s390/swab.h | ||
* | ||
* S390 version | ||
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | ||
*/ | ||
|
||
#include <asm/types.h> | ||
|
||
#ifndef __s390x__ | ||
# define __SWAB_64_THRU_32__ | ||
#endif | ||
|
||
#ifdef __s390x__ | ||
static inline __u64 __arch_swab64p(const __u64 *x) | ||
{ | ||
__u64 result; | ||
|
||
asm volatile("lrvg %0,%1" : "=d" (result) : "m" (*x)); | ||
return result; | ||
} | ||
#define __arch_swab64p __arch_swab64p | ||
|
||
static inline __u64 __arch_swab64(__u64 x) | ||
{ | ||
__u64 result; | ||
|
||
asm volatile("lrvgr %0,%1" : "=d" (result) : "d" (x)); | ||
return result; | ||
} | ||
#define __arch_swab64 __arch_swab64 | ||
|
||
static inline void __arch_swab64s(__u64 *x) | ||
{ | ||
*x = __arch_swab64p(x); | ||
} | ||
#define __arch_swab64s __arch_swab64s | ||
#endif /* __s390x__ */ | ||
|
||
static inline __u32 __arch_swab32p(const __u32 *x) | ||
{ | ||
__u32 result; | ||
|
||
asm volatile( | ||
#ifndef __s390x__ | ||
" icm %0,8,3(%1)\n" | ||
" icm %0,4,2(%1)\n" | ||
" icm %0,2,1(%1)\n" | ||
" ic %0,0(%1)" | ||
: "=&d" (result) : "a" (x), "m" (*x) : "cc"); | ||
#else /* __s390x__ */ | ||
" lrv %0,%1" | ||
: "=d" (result) : "m" (*x)); | ||
#endif /* __s390x__ */ | ||
return result; | ||
} | ||
#define __arch_swab32p __arch_swab32p | ||
|
||
#ifdef __s390x__ | ||
static inline __u32 __arch_swab32(__u32 x) | ||
{ | ||
__u32 result; | ||
|
||
asm volatile("lrvr %0,%1" : "=d" (result) : "d" (x)); | ||
return result; | ||
} | ||
#define __arch_swab32 __arch_swab32 | ||
#endif /* __s390x__ */ | ||
|
||
static inline __u16 __arch_swab16p(const __u16 *x) | ||
{ | ||
__u16 result; | ||
|
||
asm volatile( | ||
#ifndef __s390x__ | ||
" icm %0,2,1(%1)\n" | ||
" ic %0,0(%1)\n" | ||
: "=&d" (result) : "a" (x), "m" (*x) : "cc"); | ||
#else /* __s390x__ */ | ||
" lrvh %0,%1" | ||
: "=d" (result) : "m" (*x)); | ||
#endif /* __s390x__ */ | ||
return result; | ||
} | ||
#define __arch_swab16p __arch_swab16p | ||
|
||
#endif /* _S390_SWAB_H */ |