mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions()
[sfrench/cifs-2.6.git] / arch / s390 / include / asm / chsc.h
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
15 struct 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
24 struct 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
30 struct chsc_response_struct {
31         __u16 length;
32         __u16 code;
33         __u32 parms;
34         __u8 data[PAGE_SIZE - 8];
35 } __attribute__ ((packed));
36
37 struct chsc_chp_cd {
38         struct chp_id chpid;
39         int m;
40         int fmt;
41         struct chsc_response_struct cpcb;
42 };
43
44 struct chsc_cu_cd {
45         __u16 cun;
46         __u8 cssid;
47         int m;
48         int fmt;
49         struct chsc_response_struct cucb;
50 };
51
52 struct chsc_sch_cud {
53         struct subchannel_id schid;
54         int fmt;
55         struct chsc_response_struct scub;
56 };
57
58 struct conf_id {
59         int m;
60         __u8 cssid;
61         __u8 ssid;
62 };
63
64 struct chsc_conf_info {
65         struct conf_id id;
66         int fmt;
67         struct chsc_response_struct scid;
68 };
69
70 struct ccl_parm_chpid {
71         int m;
72         struct chp_id chp;
73 };
74
75 struct ccl_parm_cssids {
76         __u8 f_cssid;
77         __u8 l_cssid;
78 };
79
80 struct 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
96 struct 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
107 struct 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 #endif