From: Martin Schwidefsky Date: Tue, 9 Oct 2012 12:18:10 +0000 (+0200) Subject: Merge tag 'disintegrate-s390-20121009' of X-Git-Tag: v5.15~21484^2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=ab08ff34b44f752b664ebb312d2e110cf37a7f5e;p=mirror_ubuntu-kernels.git Merge tag 'disintegrate-s390-20121009' of git://git.infradead.org/users/dhowells/linux-headers Pull UAPI patchset from David Howells: "Can you merge the following branch into the s390 tree please. This is to complete part of the UAPI disintegration for which the preparatory patches were pulled recently." Conflicts: arch/s390/include/asm/chpid.h --- ab08ff34b44f752b664ebb312d2e110cf37a7f5e diff --cc arch/s390/include/asm/chpid.h index 8af0b92c90c6,64c76ddde3c1..38c405ef89ce --- a/arch/s390/include/asm/chpid.h +++ b/arch/s390/include/asm/chpid.h @@@ -1,8 -1,7 +1,7 @@@ /* - * Copyright IBM Corp. 2007 + * Copyright IBM Corp. 2007, 2012 * Author(s): Peter Oberparleiter */ - #ifndef _ASM_S390_CHPID_H #define _ASM_S390_CHPID_H diff --cc arch/s390/include/uapi/asm/chsc.h index 000000000000,aea451fd182e..1c6a7f85a581 mode 000000,100644..100644 --- a/arch/s390/include/uapi/asm/chsc.h +++ b/arch/s390/include/uapi/asm/chsc.h @@@ -1,0 -1,128 +1,130 @@@ + /* + * ioctl interface for /dev/chsc + * - * Copyright IBM Corp. 2008 ++ * Copyright IBM Corp. 2008, 2012 + * Author(s): Cornelia Huck + */ + + #ifndef _ASM_CHSC_H + #define _ASM_CHSC_H + + #include ++#include + #include + #include + ++#define CHSC_SIZE 0x1000 ++ + struct chsc_async_header { + __u16 length; + __u16 code; + __u32 cmd_dependend; + __u32 key : 4; + __u32 : 28; + struct subchannel_id sid; + } __attribute__ ((packed)); + + struct chsc_async_area { + struct chsc_async_header header; - __u8 data[PAGE_SIZE - 16 /* size of chsc_async_header */]; ++ __u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)]; + } __attribute__ ((packed)); + - + struct chsc_response_struct { + __u16 length; + __u16 code; + __u32 parms; - __u8 data[PAGE_SIZE - 8]; ++ __u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)]; + } __attribute__ ((packed)); + + struct chsc_chp_cd { + struct chp_id chpid; + int m; + int fmt; + struct chsc_response_struct cpcb; + }; + + struct chsc_cu_cd { + __u16 cun; + __u8 cssid; + int m; + int fmt; + struct chsc_response_struct cucb; + }; + + struct chsc_sch_cud { + struct subchannel_id schid; + int fmt; + struct chsc_response_struct scub; + }; + + struct conf_id { + int m; + __u8 cssid; + __u8 ssid; + }; + + struct chsc_conf_info { + struct conf_id id; + int fmt; + struct chsc_response_struct scid; + }; + + struct ccl_parm_chpid { + int m; + struct chp_id chp; + }; + + struct ccl_parm_cssids { + __u8 f_cssid; + __u8 l_cssid; + }; + + struct chsc_comp_list { + struct { + enum { + CCL_CU_ON_CHP = 1, + CCL_CHP_TYPE_CAP = 2, + CCL_CSS_IMG = 4, + CCL_CSS_IMG_CONF_CHAR = 5, + CCL_IOP_CHP = 6, + } ctype; + int fmt; + struct ccl_parm_chpid chpid; + struct ccl_parm_cssids cssids; + } req; + struct chsc_response_struct sccl; + }; + + struct chsc_dcal { + struct { + enum { + DCAL_CSS_IID_PN = 4, + } atype; + __u32 list_parm[2]; + int fmt; + } req; + struct chsc_response_struct sdcal; + }; + + struct chsc_cpd_info { + struct chp_id chpid; + int m; + int fmt; + int rfmt; + int c; + struct chsc_response_struct chpdb; + }; + + #define CHSC_IOCTL_MAGIC 'c' + + #define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area) + #define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \ + struct chsc_chp_cd) + #define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd) + #define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud) + #define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info) + #define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list) + #define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info) + #define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal) + + #endif