2008-07-14 07:59:05 +00:00
|
|
|
/*
|
|
|
|
* ioctl interface for /dev/chsc
|
|
|
|
*
|
2012-10-05 08:43:31 +00:00
|
|
|
* Copyright IBM Corp. 2008, 2012
|
2008-07-14 07:59:05 +00:00
|
|
|
* Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _ASM_CHSC_H
|
|
|
|
#define _ASM_CHSC_H
|
|
|
|
|
[S390] types: add/fix types.h include in header files
/include/asm/chpid.h:12: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/chsc.h:15: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/cmb.h:28: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/dasd.h:195: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/kvm.h:16: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/kvm.h:30: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/qeth.h:24: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/schid.h:5: found __[us]{8,16,32,64} type without #include <linux/types.h>
/include/asm/swab.h:12: include of <linux/types.h> is preferred over <asm/types.h>
/include/asm/swab.h:19: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-01-09 11:14:52 +00:00
|
|
|
#include <linux/types.h>
|
2012-10-05 08:43:31 +00:00
|
|
|
#include <linux/ioctl.h>
|
2008-07-14 07:59:05 +00:00
|
|
|
#include <asm/chpid.h>
|
|
|
|
#include <asm/schid.h>
|
|
|
|
|
2012-10-05 08:43:31 +00:00
|
|
|
#define CHSC_SIZE 0x1000
|
|
|
|
|
2008-07-14 07:59:05 +00:00
|
|
|
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;
|
2012-10-05 08:43:31 +00:00
|
|
|
__u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
|
2008-07-14 07:59:05 +00:00
|
|
|
} __attribute__ ((packed));
|
|
|
|
|
|
|
|
struct chsc_response_struct {
|
|
|
|
__u16 length;
|
|
|
|
__u16 code;
|
|
|
|
__u32 parms;
|
2012-10-05 08:43:31 +00:00
|
|
|
__u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
|
2008-07-14 07:59:05 +00:00
|
|
|
} __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
|