Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
chsc.h
Go to the documentation of this file.
1 /*
2  * ioctl interface for /dev/chsc
3  *
4  * Copyright IBM Corp. 2008, 2012
5  * Author(s): Cornelia Huck <[email protected]>
6  */
7 
8 #ifndef _ASM_CHSC_H
9 #define _ASM_CHSC_H
10 
11 #include <linux/types.h>
12 #include <linux/ioctl.h>
13 #include <asm/chpid.h>
14 #include <asm/schid.h>
15 
16 #define CHSC_SIZE 0x1000
17 
22  __u32 key : 4;
23  __u32 : 28;
25 } __attribute__ ((packed));
26 
29  __u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
30 } __attribute__ ((packed));
31 
36  __u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
37 } __attribute__ ((packed));
38 
39 struct chsc_chp_cd {
40  struct chp_id chpid;
41  int m;
42  int fmt;
44 };
45 
46 struct chsc_cu_cd {
49  int m;
50  int fmt;
52 };
53 
54 struct chsc_sch_cud {
56  int fmt;
58 };
59 
60 struct conf_id {
61  int m;
64 };
65 
67  struct conf_id id;
68  int fmt;
70 };
71 
73  int m;
74  struct chp_id chp;
75 };
76 
80 };
81 
83  struct {
84  enum {
90  } ctype;
91  int fmt;
94  } req;
96 };
97 
98 struct chsc_dcal {
99  struct {
100  enum {
102  } atype;
104  int fmt;
105  } req;
107 };
108 
110  struct chp_id chpid;
111  int m;
112  int fmt;
113  int rfmt;
114  int c;
116 };
117 
118 #define CHSC_IOCTL_MAGIC 'c'
119 
120 #define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area)
121 #define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \
122  struct chsc_chp_cd)
123 #define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd)
124 #define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud)
125 #define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info)
126 #define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list)
127 #define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info)
128 #define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal)
129 
130 #endif