diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-08-01 14:42:05 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-08-01 14:42:05 -0400 |
commit | c6557e7f2b6ae76a44653d38f835174074c42e05 (patch) | |
tree | da619a76b309cb1cd259d082af768a83cfcd6d52 /arch/s390/include/asm/sysinfo.h | |
parent | ab4227cb2d936886069ef1056c02500d05beb15d (diff) |
[S390] move include/asm-s390 to arch/s390/include/asm
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/sysinfo.h')
-rw-r--r-- | arch/s390/include/asm/sysinfo.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h new file mode 100644 index 000000000000..79d01343f8b0 --- /dev/null +++ b/arch/s390/include/asm/sysinfo.h | |||
@@ -0,0 +1,121 @@ | |||
1 | /* | ||
2 | * definition for store system information stsi | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001,2008 | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License (version 2 only) | ||
8 | * as published by the Free Software Foundation. | ||
9 | * | ||
10 | * Author(s): Ulrich Weigand <weigand@de.ibm.com> | ||
11 | * Christian Borntraeger <borntraeger@de.ibm.com> | ||
12 | */ | ||
13 | |||
14 | #ifndef __ASM_S390_SYSINFO_H | ||
15 | #define __ASM_S390_SYSINFO_H | ||
16 | |||
17 | struct sysinfo_1_1_1 { | ||
18 | char reserved_0[32]; | ||
19 | char manufacturer[16]; | ||
20 | char type[4]; | ||
21 | char reserved_1[12]; | ||
22 | char model_capacity[16]; | ||
23 | char sequence[16]; | ||
24 | char plant[4]; | ||
25 | char model[16]; | ||
26 | char model_perm_cap[16]; | ||
27 | char model_temp_cap[16]; | ||
28 | char model_cap_rating[4]; | ||
29 | char model_perm_cap_rating[4]; | ||
30 | char model_temp_cap_rating[4]; | ||
31 | }; | ||
32 | |||
33 | struct sysinfo_1_2_1 { | ||
34 | char reserved_0[80]; | ||
35 | char sequence[16]; | ||
36 | char plant[4]; | ||
37 | char reserved_1[2]; | ||
38 | unsigned short cpu_address; | ||
39 | }; | ||
40 | |||
41 | struct sysinfo_1_2_2 { | ||
42 | char format; | ||
43 | char reserved_0[1]; | ||
44 | unsigned short acc_offset; | ||
45 | char reserved_1[24]; | ||
46 | unsigned int secondary_capability; | ||
47 | unsigned int capability; | ||
48 | unsigned short cpus_total; | ||
49 | unsigned short cpus_configured; | ||
50 | unsigned short cpus_standby; | ||
51 | unsigned short cpus_reserved; | ||
52 | unsigned short adjustment[0]; | ||
53 | }; | ||
54 | |||
55 | struct sysinfo_1_2_2_extension { | ||
56 | unsigned int alt_capability; | ||
57 | unsigned short alt_adjustment[0]; | ||
58 | }; | ||
59 | |||
60 | struct sysinfo_2_2_1 { | ||
61 | char reserved_0[80]; | ||
62 | char sequence[16]; | ||
63 | char plant[4]; | ||
64 | unsigned short cpu_id; | ||
65 | unsigned short cpu_address; | ||
66 | }; | ||
67 | |||
68 | struct sysinfo_2_2_2 { | ||
69 | char reserved_0[32]; | ||
70 | unsigned short lpar_number; | ||
71 | char reserved_1; | ||
72 | unsigned char characteristics; | ||
73 | unsigned short cpus_total; | ||
74 | unsigned short cpus_configured; | ||
75 | unsigned short cpus_standby; | ||
76 | unsigned short cpus_reserved; | ||
77 | char name[8]; | ||
78 | unsigned int caf; | ||
79 | char reserved_2[16]; | ||
80 | unsigned short cpus_dedicated; | ||
81 | unsigned short cpus_shared; | ||
82 | }; | ||
83 | |||
84 | #define LPAR_CHAR_DEDICATED (1 << 7) | ||
85 | #define LPAR_CHAR_SHARED (1 << 6) | ||
86 | #define LPAR_CHAR_LIMITED (1 << 5) | ||
87 | |||
88 | struct sysinfo_3_2_2 { | ||
89 | char reserved_0[31]; | ||
90 | unsigned char count; | ||
91 | struct { | ||
92 | char reserved_0[4]; | ||
93 | unsigned short cpus_total; | ||
94 | unsigned short cpus_configured; | ||
95 | unsigned short cpus_standby; | ||
96 | unsigned short cpus_reserved; | ||
97 | char name[8]; | ||
98 | unsigned int caf; | ||
99 | char cpi[16]; | ||
100 | char reserved_1[24]; | ||
101 | |||
102 | } vm[8]; | ||
103 | }; | ||
104 | |||
105 | static inline int stsi(void *sysinfo, int fc, int sel1, int sel2) | ||
106 | { | ||
107 | register int r0 asm("0") = (fc << 28) | sel1; | ||
108 | register int r1 asm("1") = sel2; | ||
109 | |||
110 | asm volatile( | ||
111 | " stsi 0(%2)\n" | ||
112 | "0: jz 2f\n" | ||
113 | "1: lhi %0,%3\n" | ||
114 | "2:\n" | ||
115 | EX_TABLE(0b, 1b) | ||
116 | : "+d" (r0) : "d" (r1), "a" (sysinfo), "K" (-ENOSYS) | ||
117 | : "cc", "memory"); | ||
118 | return r0; | ||
119 | } | ||
120 | |||
121 | #endif /* __ASM_S390_SYSINFO_H */ | ||