| Viewing file:  chsc.h (2.9 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/** ioctl interface for /dev/chsc
 *
 * 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[CHSC_SIZE - sizeof(struct chsc_async_header)];
 } __attribute__ ((packed));
 
 struct chsc_header {
 __u16 length;
 __u16 code;
 } __attribute__ ((packed));
 
 struct chsc_sync_area {
 struct chsc_header header;
 __u8 data[CHSC_SIZE - sizeof(struct chsc_header)];
 } __attribute__ ((packed));
 
 struct chsc_response_struct {
 __u16 length;
 __u16 code;
 __u32 parms;
 __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)
 #define CHSC_START_SYNC _IOWR(CHSC_IOCTL_MAGIC, 0x89, struct chsc_sync_area)
 #define CHSC_ON_CLOSE_SET _IOWR(CHSC_IOCTL_MAGIC, 0x8a, struct chsc_async_area)
 #define CHSC_ON_CLOSE_REMOVE _IO(CHSC_IOCTL_MAGIC, 0x8b)
 
 #endif
 
 |