v2.6.22.24-op1
[linux-2.6.22.y-op.git] / include / asm-s390 / sclp.h
blob21ed647732100c26909a89ce228c1de4d3a9dd41
1 /*
2 * include/asm-s390/sclp.h
4 * Copyright IBM Corp. 2007
5 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
6 */
8 #ifndef _ASM_S390_SCLP_H
9 #define _ASM_S390_SCLP_H
11 #include <linux/types.h>
12 #include <asm/chpid.h>
14 struct sccb_header {
15 u16 length;
16 u8 function_code;
17 u8 control_mask[3];
18 u16 response_code;
19 } __attribute__((packed));
21 #define LOADPARM_LEN 8
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)));
37 #define SCLP_CHP_INFO_MASK_SIZE 32
39 struct sclp_chp_info {
40 u8 recognized[SCLP_CHP_INFO_MASK_SIZE];
41 u8 standby[SCLP_CHP_INFO_MASK_SIZE];
42 u8 configured[SCLP_CHP_INFO_MASK_SIZE];
45 extern struct sclp_readinfo_sccb s390_readinfo_sccb;
46 extern void sclp_readinfo_early(void);
47 extern int sclp_sdias_blk_count(void);
48 extern int sclp_sdias_copy(void *dest, int blk_num, int nr_blks);
49 extern int sclp_chp_configure(struct chp_id chpid);
50 extern int sclp_chp_deconfigure(struct chp_id chpid);
51 extern int sclp_chp_read_info(struct sclp_chp_info *info);
53 #endif /* _ASM_S390_SCLP_H */