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