[S390] chsc: use the global page to determine the chp desriptor
[firefly-linux-kernel-4.4.55.git] / drivers / s390 / cio / chsc.h
index 5453013f094b37b2106978812406e7183549742a..6693f5e3176f3657dfd6195dcc99fb12d6c1e9d4 100644 (file)
@@ -57,21 +57,39 @@ struct chsc_ssd_info {
        struct chp_id chpid[8];
        u16 fla[8];
 };
+
+struct chsc_scpd {
+       struct chsc_header request;
+       u32:2;
+       u32 m:1;
+       u32 c:1;
+       u32 fmt:4;
+       u32 cssid:8;
+       u32:4;
+       u32 rfmt:4;
+       u32 first_chpid:8;
+       u32:24;
+       u32 last_chpid:8;
+       u32 zeroes1;
+       struct chsc_header response;
+       u8 data[PAGE_SIZE - 20];
+} __attribute__ ((packed));
+
+
 extern int chsc_get_ssd_info(struct subchannel_id schid,
                             struct chsc_ssd_info *ssd);
 extern int chsc_determine_css_characteristics(void);
-extern int chsc_alloc_sei_area(void);
-extern void chsc_free_sei_area(void);
+extern int chsc_init(void);
+extern void chsc_init_cleanup(void);
 
 extern int chsc_enable_facility(int);
 struct channel_subsystem;
 extern int chsc_secm(struct channel_subsystem *, int);
-int __chsc_do_secm(struct channel_subsystem *css, int enable, void *page);
+int __chsc_do_secm(struct channel_subsystem *css, int enable);
 
 int chsc_chp_vary(struct chp_id chpid, int on);
 int chsc_determine_channel_path_desc(struct chp_id chpid, int fmt, int rfmt,
-                                    int c, int m,
-                                    struct chsc_response_struct *resp);
+                                    int c, int m, void *page);
 int chsc_determine_base_channel_path_desc(struct chp_id chpid,
                                          struct channel_path_desc *desc);
 void chsc_chp_online(struct chp_id chpid);