From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date: Tue, 9 Oct 2012 12:18:10 +0000 (+0200)
Subject: Merge tag 'disintegrate-s390-20121009' of
X-Git-Tag: firefly_0821_release~3680^2~1866^2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ab08ff34b44f752b664ebb312d2e110cf37a7f5e;p=firefly-linux-kernel-4.4.55.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 <peter.oberparleiter@de.ibm.com>
   */
- 
  #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 <cornelia.huck@de.ibm.com>
+  */
+ 
+ #ifndef _ASM_CHSC_H
+ #define _ASM_CHSC_H
+ 
+ #include <linux/types.h>
++#include <linux/ioctl.h>
+ #include <asm/chpid.h>
+ #include <asm/schid.h>
+ 
++#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