root/arch/s390/include/uapi/asm/chsc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 /*
   3  * ioctl interface for /dev/chsc
   4  *
   5  * Copyright IBM Corp. 2008, 2012
   6  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
   7  */
   8 
   9 #ifndef _ASM_CHSC_H
  10 #define _ASM_CHSC_H
  11 
  12 #include <linux/types.h>
  13 #include <linux/ioctl.h>
  14 #include <asm/chpid.h>
  15 #include <asm/schid.h>
  16 
  17 #define CHSC_SIZE 0x1000
  18 
  19 struct chsc_async_header {
  20         __u16 length;
  21         __u16 code;
  22         __u32 cmd_dependend;
  23         __u32 key : 4;
  24         __u32 : 28;
  25         struct subchannel_id sid;
  26 };
  27 
  28 struct chsc_async_area {
  29         struct chsc_async_header header;
  30         __u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
  31 };
  32 
  33 struct chsc_header {
  34         __u16 length;
  35         __u16 code;
  36 };
  37 
  38 struct chsc_sync_area {
  39         struct chsc_header header;
  40         __u8 data[CHSC_SIZE - sizeof(struct chsc_header)];
  41 };
  42 
  43 struct chsc_response_struct {
  44         __u16 length;
  45         __u16 code;
  46         __u32 parms;
  47         __u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
  48 };
  49 
  50 struct chsc_chp_cd {
  51         struct chp_id chpid;
  52         int m;
  53         int fmt;
  54         struct chsc_response_struct cpcb;
  55 };
  56 
  57 struct chsc_cu_cd {
  58         __u16 cun;
  59         __u8 cssid;
  60         int m;
  61         int fmt;
  62         struct chsc_response_struct cucb;
  63 };
  64 
  65 struct chsc_sch_cud {
  66         struct subchannel_id schid;
  67         int fmt;
  68         struct chsc_response_struct scub;
  69 };
  70 
  71 struct conf_id {
  72         int m;
  73         __u8 cssid;
  74         __u8 ssid;
  75 };
  76 
  77 struct chsc_conf_info {
  78         struct conf_id id;
  79         int fmt;
  80         struct chsc_response_struct scid;
  81 };
  82 
  83 struct ccl_parm_chpid {
  84         int m;
  85         struct chp_id chp;
  86 };
  87 
  88 struct ccl_parm_cssids {
  89         __u8 f_cssid;
  90         __u8 l_cssid;
  91 };
  92 
  93 struct chsc_comp_list {
  94         struct {
  95                 enum {
  96                         CCL_CU_ON_CHP = 1,
  97                         CCL_CHP_TYPE_CAP = 2,
  98                         CCL_CSS_IMG = 4,
  99                         CCL_CSS_IMG_CONF_CHAR = 5,
 100                         CCL_IOP_CHP = 6,
 101                 } ctype;
 102                 int fmt;
 103                 struct ccl_parm_chpid chpid;
 104                 struct ccl_parm_cssids cssids;
 105         } req;
 106         struct chsc_response_struct sccl;
 107 };
 108 
 109 struct chsc_dcal {
 110         struct {
 111                 enum {
 112                         DCAL_CSS_IID_PN = 4,
 113                 } atype;
 114                 __u32 list_parm[2];
 115                 int fmt;
 116         } req;
 117         struct chsc_response_struct sdcal;
 118 };
 119 
 120 struct chsc_cpd_info {
 121         struct chp_id chpid;
 122         int m;
 123         int fmt;
 124         int rfmt;
 125         int c;
 126         struct chsc_response_struct chpdb;
 127 };
 128 
 129 #define CHSC_IOCTL_MAGIC 'c'
 130 
 131 #define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area)
 132 #define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \
 133                                     struct chsc_chp_cd)
 134 #define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd)
 135 #define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud)
 136 #define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info)
 137 #define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list)
 138 #define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info)
 139 #define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal)
 140 #define CHSC_START_SYNC _IOWR(CHSC_IOCTL_MAGIC, 0x89, struct chsc_sync_area)
 141 #define CHSC_ON_CLOSE_SET _IOWR(CHSC_IOCTL_MAGIC, 0x8a, struct chsc_async_area)
 142 #define CHSC_ON_CLOSE_REMOVE _IO(CHSC_IOCTL_MAGIC, 0x8b)
 143 
 144 #endif

/* [<][>][^][v][top][bottom][index][help] */