diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2007-07-10 05:24:09 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-07-10 05:24:42 -0400 |
commit | 05dd25307ca67cbfa0207bbba2e6c79fa97d125b (patch) | |
tree | 4601c5732e71883bffab31a4a786f838e8473f58 /include/asm-s390 | |
parent | bccdbdc9bd7db3a32c14d8a47f1fb66e3de3c92f (diff) |
[S390] sclp: introduce some new interfaces.
Introduce some new interfaces so that random subsystems don't have to
mess around with sclp internal structures.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'include/asm-s390')
-rw-r--r-- | include/asm-s390/sclp.h | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/include/asm-s390/sclp.h b/include/asm-s390/sclp.h index 21ed64773210..ddfaa8db47be 100644 --- a/include/asm-s390/sclp.h +++ b/include/asm-s390/sclp.h | |||
@@ -11,29 +11,6 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <asm/chpid.h> | 12 | #include <asm/chpid.h> |
13 | 13 | ||
14 | struct sccb_header { | ||
15 | u16 length; | ||
16 | u8 function_code; | ||
17 | u8 control_mask[3]; | ||
18 | u16 response_code; | ||
19 | } __attribute__((packed)); | ||
20 | |||
21 | #define LOADPARM_LEN 8 | ||
22 | |||
23 | struct sclp_readinfo_sccb { | ||
24 | struct sccb_header header; /* 0-7 */ | ||
25 | u16 rnmax; /* 8-9 */ | ||
26 | u8 rnsize; /* 10 */ | ||
27 | u8 _reserved0[24 - 11]; /* 11-23 */ | ||
28 | u8 loadparm[LOADPARM_LEN]; /* 24-31 */ | ||
29 | u8 _reserved1[91 - 32]; /* 32-90 */ | ||
30 | u8 flags; /* 91 */ | ||
31 | u8 _reserved2[100 - 92]; /* 92-99 */ | ||
32 | u32 rnsize2; /* 100-103 */ | ||
33 | u64 rnmax2; /* 104-111 */ | ||
34 | u8 _reserved3[4096 - 112]; /* 112-4095 */ | ||
35 | } __attribute__((packed, aligned(4096))); | ||
36 | |||
37 | #define SCLP_CHP_INFO_MASK_SIZE 32 | 14 | #define SCLP_CHP_INFO_MASK_SIZE 32 |
38 | 15 | ||
39 | struct sclp_chp_info { | 16 | struct sclp_chp_info { |
@@ -42,12 +19,21 @@ struct sclp_chp_info { | |||
42 | u8 configured[SCLP_CHP_INFO_MASK_SIZE]; | 19 | u8 configured[SCLP_CHP_INFO_MASK_SIZE]; |
43 | }; | 20 | }; |
44 | 21 | ||
45 | extern struct sclp_readinfo_sccb s390_readinfo_sccb; | 22 | #define LOADPARM_LEN 8 |
46 | extern void sclp_readinfo_early(void); | 23 | |
47 | extern int sclp_sdias_blk_count(void); | 24 | struct sclp_ipl_info { |
48 | extern int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); | 25 | int is_valid; |
49 | extern int sclp_chp_configure(struct chp_id chpid); | 26 | int has_dump; |
50 | extern int sclp_chp_deconfigure(struct chp_id chpid); | 27 | char loadparm[LOADPARM_LEN]; |
51 | extern int sclp_chp_read_info(struct sclp_chp_info *info); | 28 | }; |
29 | |||
30 | void sclp_readinfo_early(void); | ||
31 | unsigned long long sclp_memory_detect(void); | ||
32 | int sclp_sdias_blk_count(void); | ||
33 | int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); | ||
34 | int sclp_chp_configure(struct chp_id chpid); | ||
35 | int sclp_chp_deconfigure(struct chp_id chpid); | ||
36 | int sclp_chp_read_info(struct sclp_chp_info *info); | ||
37 | void sclp_get_ipl_info(struct sclp_ipl_info *info); | ||
52 | 38 | ||
53 | #endif /* _ASM_S390_SCLP_H */ | 39 | #endif /* _ASM_S390_SCLP_H */ |