Commit | Line | Data |
---|---|---|
ab14de6c | 1 | /* |
ab14de6c HC |
2 | * Copyright IBM Corp. 2007 |
3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | |
4 | */ | |
5 | ||
6 | #ifndef _ASM_S390_SCLP_H | |
7 | #define _ASM_S390_SCLP_H | |
8 | ||
9 | #include <linux/types.h> | |
e5854a58 | 10 | #include <asm/chpid.h> |
9c095234 | 11 | #include <asm/cpu.h> |
ab14de6c | 12 | |
e5854a58 | 13 | #define SCLP_CHP_INFO_MASK_SIZE 32 |
d08d9430 | 14 | #define SCLP_MAX_CORES 256 |
e5854a58 PO |
15 | |
16 | struct sclp_chp_info { | |
17 | u8 recognized[SCLP_CHP_INFO_MASK_SIZE]; | |
18 | u8 standby[SCLP_CHP_INFO_MASK_SIZE]; | |
19 | u8 configured[SCLP_CHP_INFO_MASK_SIZE]; | |
20 | }; | |
21 | ||
05dd2530 HC |
22 | #define LOADPARM_LEN 8 |
23 | ||
24 | struct sclp_ipl_info { | |
25 | int is_valid; | |
26 | int has_dump; | |
27 | char loadparm[LOADPARM_LEN]; | |
28 | }; | |
29 | ||
d08d9430 | 30 | struct sclp_core_entry { |
10ad34bc | 31 | u8 core_id; |
8dfd523f DH |
32 | u8 reserved0; |
33 | u8 : 4; | |
34 | u8 sief2 : 1; | |
35 | u8 : 3; | |
217a4406 HC |
36 | u8 : 3; |
37 | u8 siif : 1; | |
d614be05 DH |
38 | u8 sigpif : 1; |
39 | u8 : 3; | |
217a4406 | 40 | u8 reserved2[10]; |
08d07968 HC |
41 | u8 type; |
42 | u8 reserved1; | |
43 | } __attribute__((packed)); | |
44 | ||
d08d9430 | 45 | struct sclp_core_info { |
08d07968 HC |
46 | unsigned int configured; |
47 | unsigned int standby; | |
48 | unsigned int combined; | |
d08d9430 | 49 | struct sclp_core_entry core[SCLP_MAX_CORES]; |
08d07968 HC |
50 | }; |
51 | ||
37c5f6c8 DH |
52 | struct sclp_info { |
53 | unsigned char has_linemode : 1; | |
54 | unsigned char has_vt220 : 1; | |
55 | unsigned char has_siif : 1; | |
56 | unsigned char has_sigpif : 1; | |
d08d9430 | 57 | unsigned char has_core_type : 1; |
37c5f6c8 | 58 | unsigned char has_sprp : 1; |
f7ba1d34 ED |
59 | unsigned char has_hvs : 1; |
60 | unsigned char has_esca : 1; | |
8dfd523f | 61 | unsigned char has_sief2 : 1; |
37c5f6c8 DH |
62 | unsigned int ibc; |
63 | unsigned int mtid; | |
64 | unsigned int mtid_cp; | |
65 | unsigned int mtid_prev; | |
423d5b36 HC |
66 | unsigned long rzm; |
67 | unsigned long rnmax; | |
68 | unsigned long hamax; | |
d08d9430 | 69 | unsigned int max_cores; |
37c5f6c8 | 70 | unsigned long hsa_size; |
423d5b36 | 71 | unsigned long facilities; |
37c5f6c8 DH |
72 | }; |
73 | extern struct sclp_info sclp; | |
74 | ||
d08d9430 MS |
75 | int sclp_get_core_info(struct sclp_core_info *info); |
76 | int sclp_core_configure(u8 core); | |
77 | int sclp_core_deconfigure(u8 core); | |
05dd2530 HC |
78 | int sclp_sdias_blk_count(void); |
79 | int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); | |
80 | int sclp_chp_configure(struct chp_id chpid); | |
81 | int sclp_chp_deconfigure(struct chp_id chpid); | |
82 | int sclp_chp_read_info(struct sclp_chp_info *info); | |
83 | void sclp_get_ipl_info(struct sclp_ipl_info *info); | |
7441b062 JG |
84 | int sclp_pci_configure(u32 fid); |
85 | int sclp_pci_deconfigure(u32 fid); | |
df9694c7 MS |
86 | int memcpy_hsa_kernel(void *dest, unsigned long src, size_t count); |
87 | int memcpy_hsa_user(void __user *dest, unsigned long src, size_t count); | |
7b50da53 | 88 | void sclp_early_detect(void); |
3f975df6 | 89 | void _sclp_print_early(const char *); |
fbf87dff | 90 | |
ab14de6c | 91 | #endif /* _ASM_S390_SCLP_H */ |