mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
s390/sysinfo: Move stsi() to header file
Move stsi() inline assembly to header file so it is possible to use it also for the decompressor. Reviewed-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
a130b6d60b
commit
91d6e44221
2 changed files with 27 additions and 27 deletions
|
|
@ -11,8 +11,34 @@
|
|||
#ifndef __ASM_S390_SYSINFO_H
|
||||
#define __ASM_S390_SYSINFO_H
|
||||
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <linux/uuid.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/asm.h>
|
||||
|
||||
/*
|
||||
* stsi - store system information
|
||||
*
|
||||
* Returns the current configuration level if function code 0 was specified.
|
||||
* Otherwise returns 0 on success or a negative value on error.
|
||||
*/
|
||||
static inline int stsi(void *sysinfo, int fc, int sel1, int sel2)
|
||||
{
|
||||
int r0 = (fc << 28) | sel1;
|
||||
int cc;
|
||||
|
||||
asm volatile(
|
||||
" lr %%r0,%[r0]\n"
|
||||
" lr %%r1,%[r1]\n"
|
||||
" stsi %[sysinfo]\n"
|
||||
" lr %[r0],%%r0\n"
|
||||
CC_IPM(cc)
|
||||
: CC_OUT(cc, cc), [r0] "+d" (r0), [sysinfo] "=Q" (*(char *)sysinfo)
|
||||
: [r1] "d" (sel2)
|
||||
: CC_CLOBBER_LIST("0", "1", "memory"));
|
||||
if (cc == 3)
|
||||
return -EOPNOTSUPP;
|
||||
return fc ? 0 : (unsigned int)r0 >> 28;
|
||||
}
|
||||
|
||||
struct sysinfo_1_1_1 {
|
||||
unsigned char p:1;
|
||||
|
|
|
|||
|
|
@ -26,32 +26,6 @@
|
|||
|
||||
int topology_max_mnest;
|
||||
|
||||
/*
|
||||
* stsi - store system information
|
||||
*
|
||||
* Returns the current configuration level if function code 0 was specified.
|
||||
* Otherwise returns 0 on success or a negative value on error.
|
||||
*/
|
||||
int stsi(void *sysinfo, int fc, int sel1, int sel2)
|
||||
{
|
||||
int r0 = (fc << 28) | sel1;
|
||||
int cc;
|
||||
|
||||
asm volatile(
|
||||
" lr %%r0,%[r0]\n"
|
||||
" lr %%r1,%[r1]\n"
|
||||
" stsi %[sysinfo]\n"
|
||||
" lr %[r0],%%r0\n"
|
||||
CC_IPM(cc)
|
||||
: CC_OUT(cc, cc), [r0] "+d" (r0), [sysinfo] "=Q" (*(char *)sysinfo)
|
||||
: [r1] "d" (sel2)
|
||||
: CC_CLOBBER_LIST("0", "1", "memory"));
|
||||
if (cc == 3)
|
||||
return -EOPNOTSUPP;
|
||||
return fc ? 0 : (unsigned int)r0 >> 28;
|
||||
}
|
||||
EXPORT_SYMBOL(stsi);
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
static bool convert_ext_name(unsigned char encoding, char *name, size_t len)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue