]>
Commit | Line | Data |
---|---|---|
9d92a7e1 CH |
1 | /* |
2 | * ioctl interface for /dev/chsc | |
3 | * | |
4 | * Copyright 2008 IBM Corp. | |
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 <asm/chpid.h> | |
12 | #include <asm/schid.h> | |
13 | ||
14 | struct chsc_async_header { | |
15 | __u16 length; | |
16 | __u16 code; | |
17 | __u32 cmd_dependend; | |
18 | __u32 key : 4; | |
19 | __u32 : 28; | |
20 | struct subchannel_id sid; | |
21 | } __attribute__ ((packed)); | |
22 | ||
23 | struct chsc_async_area { | |
24 | struct chsc_async_header header; | |
25 | __u8 data[PAGE_SIZE - 16 /* size of chsc_async_header */]; | |
26 | } __attribute__ ((packed)); | |
27 | ||
28 | ||
29 | struct chsc_response_struct { | |
30 | __u16 length; | |
31 | __u16 code; | |
32 | __u32 parms; | |
33 | __u8 data[PAGE_SIZE - 8]; | |
34 | } __attribute__ ((packed)); | |
35 | ||
36 | struct chsc_chp_cd { | |
37 | struct chp_id chpid; | |
38 | int m; | |
39 | int fmt; | |
40 | struct chsc_response_struct cpcb; | |
41 | }; | |
42 | ||
43 | struct chsc_cu_cd { | |
44 | __u16 cun; | |
45 | __u8 cssid; | |
46 | int m; | |
47 | int fmt; | |
48 | struct chsc_response_struct cucb; | |
49 | }; | |
50 | ||
51 | struct chsc_sch_cud { | |
52 | struct subchannel_id schid; | |
53 | int fmt; | |
54 | struct chsc_response_struct scub; | |
55 | }; | |
56 | ||
57 | struct conf_id { | |
58 | int m; | |
59 | __u8 cssid; | |
60 | __u8 ssid; | |
61 | }; | |
62 | ||
63 | struct chsc_conf_info { | |
64 | struct conf_id id; | |
65 | int fmt; | |
66 | struct chsc_response_struct scid; | |
67 | }; | |
68 | ||
69 | struct ccl_parm_chpid { | |
70 | int m; | |
71 | struct chp_id chp; | |
72 | }; | |
73 | ||
74 | struct ccl_parm_cssids { | |
75 | __u8 f_cssid; | |
76 | __u8 l_cssid; | |
77 | }; | |
78 | ||
79 | struct chsc_comp_list { | |
80 | struct { | |
81 | enum { | |
82 | CCL_CU_ON_CHP = 1, | |
83 | CCL_CHP_TYPE_CAP = 2, | |
84 | CCL_CSS_IMG = 4, | |
85 | CCL_CSS_IMG_CONF_CHAR = 5, | |
86 | CCL_IOP_CHP = 6, | |
87 | } ctype; | |
88 | int fmt; | |
89 | struct ccl_parm_chpid chpid; | |
90 | struct ccl_parm_cssids cssids; | |
91 | } req; | |
92 | struct chsc_response_struct sccl; | |
93 | }; | |
94 | ||
95 | struct chsc_dcal { | |
96 | struct { | |
97 | enum { | |
98 | DCAL_CSS_IID_PN = 4, | |
99 | } atype; | |
100 | __u32 list_parm[2]; | |
101 | int fmt; | |
102 | } req; | |
103 | struct chsc_response_struct sdcal; | |
104 | }; | |
105 | ||
106 | struct chsc_cpd_info { | |
107 | struct chp_id chpid; | |
108 | int m; | |
109 | int fmt; | |
110 | int rfmt; | |
111 | int c; | |
112 | struct chsc_response_struct chpdb; | |
113 | }; | |
114 | ||
115 | #define CHSC_IOCTL_MAGIC 'c' | |
116 | ||
117 | #define CHSC_START _IOWR(CHSC_IOCTL_MAGIC, 0x81, struct chsc_async_area) | |
118 | #define CHSC_INFO_CHANNEL_PATH _IOWR(CHSC_IOCTL_MAGIC, 0x82, \ | |
119 | struct chsc_chp_cd) | |
120 | #define CHSC_INFO_CU _IOWR(CHSC_IOCTL_MAGIC, 0x83, struct chsc_cu_cd) | |
121 | #define CHSC_INFO_SCH_CU _IOWR(CHSC_IOCTL_MAGIC, 0x84, struct chsc_sch_cud) | |
122 | #define CHSC_INFO_CI _IOWR(CHSC_IOCTL_MAGIC, 0x85, struct chsc_conf_info) | |
123 | #define CHSC_INFO_CCL _IOWR(CHSC_IOCTL_MAGIC, 0x86, struct chsc_comp_list) | |
124 | #define CHSC_INFO_CPD _IOWR(CHSC_IOCTL_MAGIC, 0x87, struct chsc_cpd_info) | |
125 | #define CHSC_INFO_DCAL _IOWR(CHSC_IOCTL_MAGIC, 0x88, struct chsc_dcal) | |
126 | ||
127 | #endif |