1/* 2 * include/asm-s390/sclp.h 3 * 4 * Copyright IBM Corp. 2007 5 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> 6 */ 7 8#ifndef _ASM_S390_SCLP_H 9#define _ASM_S390_SCLP_H 10 11#include <linux/types.h> 12#include <asm/chpid.h> 13 14struct 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 23struct 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 38 39struct 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]; 43}; 44 45extern struct sclp_readinfo_sccb s390_readinfo_sccb; 46extern void sclp_readinfo_early(void); 47extern int sclp_sdias_blk_count(void); 48extern int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); 49extern int sclp_chp_configure(struct chp_id chpid); 50extern int sclp_chp_deconfigure(struct chp_id chpid); 51extern int sclp_chp_read_info(struct sclp_chp_info *info); 52 53#endif /* _ASM_S390_SCLP_H */ 54