These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / s390 / include / asm / sclp.h
index f1096ba..821dde5 100644 (file)
@@ -11,6 +11,7 @@
 #include <asm/cpu.h>
 
 #define SCLP_CHP_INFO_MASK_SIZE                32
+#define SCLP_MAX_CORES                 256
 
 struct sclp_chp_info {
        u8 recognized[SCLP_CHP_INFO_MASK_SIZE];
@@ -26,7 +27,7 @@ struct sclp_ipl_info {
        char loadparm[LOADPARM_LEN];
 };
 
-struct sclp_cpu_entry {
+struct sclp_core_entry {
        u8 core_id;
        u8 reserved0[2];
        u8 : 3;
@@ -38,41 +39,46 @@ struct sclp_cpu_entry {
        u8 reserved1;
 } __attribute__((packed));
 
-struct sclp_cpu_info {
+struct sclp_core_info {
        unsigned int configured;
        unsigned int standby;
        unsigned int combined;
-       int has_cpu_type;
-       struct sclp_cpu_entry cpu[MAX_CPU_ADDRESS + 1];
+       struct sclp_core_entry core[SCLP_MAX_CORES];
 };
 
-int sclp_get_cpu_info(struct sclp_cpu_info *info);
-int sclp_cpu_configure(u8 cpu);
-int sclp_cpu_deconfigure(u8 cpu);
-unsigned long long sclp_get_rnmax(void);
-unsigned long long sclp_get_rzm(void);
-unsigned int sclp_get_max_cpu(void);
-unsigned int sclp_get_mtid(u8 cpu_type);
-unsigned int sclp_get_mtid_max(void);
-unsigned int sclp_get_mtid_prev(void);
+struct sclp_info {
+       unsigned char has_linemode : 1;
+       unsigned char has_vt220 : 1;
+       unsigned char has_siif : 1;
+       unsigned char has_sigpif : 1;
+       unsigned char has_core_type : 1;
+       unsigned char has_sprp : 1;
+       unsigned int ibc;
+       unsigned int mtid;
+       unsigned int mtid_cp;
+       unsigned int mtid_prev;
+       unsigned long long rzm;
+       unsigned long long rnmax;
+       unsigned long long hamax;
+       unsigned int max_cores;
+       unsigned long hsa_size;
+       unsigned long long facilities;
+};
+extern struct sclp_info sclp;
+
+int sclp_get_core_info(struct sclp_core_info *info);
+int sclp_core_configure(u8 core);
+int sclp_core_deconfigure(u8 core);
 int sclp_sdias_blk_count(void);
 int sclp_sdias_copy(void *dest, int blk_num, int nr_blks);
 int sclp_chp_configure(struct chp_id chpid);
 int sclp_chp_deconfigure(struct chp_id chpid);
 int sclp_chp_read_info(struct sclp_chp_info *info);
 void sclp_get_ipl_info(struct sclp_ipl_info *info);
-bool __init sclp_has_linemode(void);
-bool __init sclp_has_vt220(void);
-bool sclp_has_sprp(void);
 int sclp_pci_configure(u32 fid);
 int sclp_pci_deconfigure(u32 fid);
 int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode);
-unsigned long sclp_get_hsa_size(void);
 void sclp_early_detect(void);
-int sclp_has_siif(void);
-int sclp_has_sigpif(void);
-unsigned int sclp_get_ibc(void);
-
-long _sclp_print_early(const char *);
+int _sclp_print_early(const char *);
 
 #endif /* _ASM_S390_SCLP_H */