xref: /aosp_15_r20/external/ethtool/cmis.h (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski #ifndef CMIS_H__
2*1b481fc3SMaciej Żenczykowski #define CMIS_H__
3*1b481fc3SMaciej Żenczykowski 
4*1b481fc3SMaciej Żenczykowski /* Identifier and revision compliance (Page 0) */
5*1b481fc3SMaciej Żenczykowski #define CMIS_ID_OFFSET				0x00
6*1b481fc3SMaciej Żenczykowski #define CMIS_REV_COMPLIANCE_OFFSET		0x01
7*1b481fc3SMaciej Żenczykowski #define CMIS_MEMORY_MODEL_OFFSET		0x02
8*1b481fc3SMaciej Żenczykowski #define CMIS_MEMORY_MODEL_MASK			0x80
9*1b481fc3SMaciej Żenczykowski 
10*1b481fc3SMaciej Żenczykowski /* Global Status Information (Page 0) */
11*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_OFFSET		0x03
12*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MASK			0x0E
13*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MODULE_LOW_PWR	0x01
14*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MODULE_PWR_UP		0x02
15*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MODULE_READY		0x03
16*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MODULE_PWR_DN		0x04
17*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_STATE_MODULE_FAULT		0x05
18*1b481fc3SMaciej Żenczykowski 
19*1b481fc3SMaciej Żenczykowski /* Module Flags (Page 0) */
20*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_AW_OFFSET			0x09
21*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_LWARN_STATUS			0x80
22*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_HWARN_STATUS			0x40
23*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_LALARM_STATUS			0x20
24*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_HALARM_STATUS			0x10
25*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_AW_OFFSET			0x09
26*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_LWARN_STATUS			0x08
27*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_HWARN_STATUS			0x04
28*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_LALARM_STATUS			0x02
29*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_HALARM_STATUS			0x01
30*1b481fc3SMaciej Żenczykowski 
31*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_TYPE_OFFSET			0x55
32*1b481fc3SMaciej Żenczykowski #define CMIS_MT_MMF				0x01
33*1b481fc3SMaciej Żenczykowski #define CMIS_MT_SMF				0x02
34*1b481fc3SMaciej Żenczykowski 
35*1b481fc3SMaciej Żenczykowski /* Module-Level Monitors (Page 0) */
36*1b481fc3SMaciej Żenczykowski #define CMIS_CURR_TEMP_OFFSET			0x0E
37*1b481fc3SMaciej Żenczykowski #define CMIS_CURR_VCC_OFFSET			0x10
38*1b481fc3SMaciej Żenczykowski 
39*1b481fc3SMaciej Żenczykowski /* Module Global Controls (Page 0) */
40*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_CONTROL_OFFSET		0x1A
41*1b481fc3SMaciej Żenczykowski #define CMIS_LOW_PWR_ALLOW_REQUEST_HW_MASK	0x40
42*1b481fc3SMaciej Żenczykowski #define CMIS_LOW_PWR_REQUEST_SW_MASK		0x10
43*1b481fc3SMaciej Żenczykowski 
44*1b481fc3SMaciej Żenczykowski /* Module Fault Information (Page 0) */
45*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_FAULT_OFFSET		0x29
46*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_FAULT_NO_FAULT		0x00
47*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_FAULT_TEC_RUNAWAY		0x01
48*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_FAULT_DATA_MEM_CORRUPTED	0x02
49*1b481fc3SMaciej Żenczykowski #define CMIS_MODULE_FAULT_PROG_MEM_CORRUPTED	0x03
50*1b481fc3SMaciej Żenczykowski 
51*1b481fc3SMaciej Żenczykowski #define CMIS_CTOR_OFFSET			0xCB
52*1b481fc3SMaciej Żenczykowski 
53*1b481fc3SMaciej Żenczykowski /* Vendor related information (Page 0) */
54*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_NAME_START_OFFSET		0x81
55*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_NAME_END_OFFSET		0x90
56*1b481fc3SMaciej Żenczykowski 
57*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_OUI_OFFSET			0x91
58*1b481fc3SMaciej Żenczykowski 
59*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_PN_START_OFFSET		0x94
60*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_PN_END_OFFSET		0xA3
61*1b481fc3SMaciej Żenczykowski 
62*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_REV_START_OFFSET		0xA4
63*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_REV_END_OFFSET		0xA5
64*1b481fc3SMaciej Żenczykowski 
65*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_SN_START_OFFSET		0xA6
66*1b481fc3SMaciej Żenczykowski #define CMIS_VENDOR_SN_END_OFFSET		0xB5
67*1b481fc3SMaciej Żenczykowski 
68*1b481fc3SMaciej Żenczykowski #define CMIS_DATE_YEAR_OFFSET			0xB6
69*1b481fc3SMaciej Żenczykowski #define CMIS_DATE_VENDOR_LOT_OFFSET		0xBC
70*1b481fc3SMaciej Żenczykowski 
71*1b481fc3SMaciej Żenczykowski /* CLEI Code (Page 0) */
72*1b481fc3SMaciej Żenczykowski #define CMIS_CLEI_START_OFFSET			0xBE
73*1b481fc3SMaciej Żenczykowski #define CMIS_CLEI_END_OFFSET			0xC7
74*1b481fc3SMaciej Żenczykowski #define CMIS_CLEI_BLANK				"          "
75*1b481fc3SMaciej Żenczykowski #define CMIS_CLEI_LEN				0x0A
76*1b481fc3SMaciej Żenczykowski 
77*1b481fc3SMaciej Żenczykowski /* Cable assembly length */
78*1b481fc3SMaciej Żenczykowski #define CMIS_CBL_ASM_LEN_OFFSET			0xCA
79*1b481fc3SMaciej Żenczykowski #define CMIS_6300M_MAX_LEN			0xFF
80*1b481fc3SMaciej Żenczykowski 
81*1b481fc3SMaciej Żenczykowski /* Cable length with multiplier */
82*1b481fc3SMaciej Żenczykowski #define CMIS_MULTIPLIER_00			0x00
83*1b481fc3SMaciej Żenczykowski #define CMIS_MULTIPLIER_01			0x40
84*1b481fc3SMaciej Żenczykowski #define CMIS_MULTIPLIER_10			0x80
85*1b481fc3SMaciej Żenczykowski #define CMIS_MULTIPLIER_11			0xC0
86*1b481fc3SMaciej Żenczykowski #define CMIS_LEN_MUL_MASK			0xC0
87*1b481fc3SMaciej Żenczykowski #define CMIS_LEN_VAL_MASK			0x3F
88*1b481fc3SMaciej Żenczykowski 
89*1b481fc3SMaciej Żenczykowski /* Module power characteristics */
90*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_OFFSET			0xC8
91*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_MAX_POWER_OFFSET		0xC9
92*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_MASK			0xE0
93*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_1			0x00
94*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_2			0x01
95*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_3			0x02
96*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_4			0x03
97*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_5			0x04
98*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_6			0x05
99*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_7			0x06
100*1b481fc3SMaciej Żenczykowski #define CMIS_PWR_CLASS_8			0x07
101*1b481fc3SMaciej Żenczykowski 
102*1b481fc3SMaciej Żenczykowski /* Copper cable attenuation */
103*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_ATT_5GHZ			0xCC
104*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_ATT_7GHZ			0xCD
105*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_ATT_12P9GHZ			0xCE
106*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_ATT_25P8GHZ			0xCF
107*1b481fc3SMaciej Żenczykowski 
108*1b481fc3SMaciej Żenczykowski /* Cable assembly lane */
109*1b481fc3SMaciej Żenczykowski #define CMIS_CABLE_ASM_NEAR_END_OFFSET		0xD2
110*1b481fc3SMaciej Żenczykowski #define CMIS_CABLE_ASM_FAR_END_OFFSET		0xD3
111*1b481fc3SMaciej Żenczykowski 
112*1b481fc3SMaciej Żenczykowski /* Media interface technology */
113*1b481fc3SMaciej Żenczykowski #define CMIS_MEDIA_INTF_TECH_OFFSET		0xD4
114*1b481fc3SMaciej Żenczykowski #define CMIS_850_VCSEL				0x00
115*1b481fc3SMaciej Żenczykowski #define CMIS_1310_VCSEL				0x01
116*1b481fc3SMaciej Żenczykowski #define CMIS_1550_VCSEL				0x02
117*1b481fc3SMaciej Żenczykowski #define CMIS_1310_FP				0x03
118*1b481fc3SMaciej Żenczykowski #define CMIS_1310_DFB				0x04
119*1b481fc3SMaciej Żenczykowski #define CMIS_1550_DFB				0x05
120*1b481fc3SMaciej Żenczykowski #define CMIS_1310_EML				0x06
121*1b481fc3SMaciej Żenczykowski #define CMIS_1550_EML				0x07
122*1b481fc3SMaciej Żenczykowski #define CMIS_OTHERS				0x08
123*1b481fc3SMaciej Żenczykowski #define CMIS_1490_DFB				0x09
124*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_UNEQUAL			0x0A
125*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_PASS_EQUAL			0x0B
126*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_NF_EQUAL			0x0C
127*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_F_EQUAL			0x0D
128*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_N_EQUAL			0x0E
129*1b481fc3SMaciej Żenczykowski #define CMIS_COPPER_LINEAR_EQUAL		0x0F
130*1b481fc3SMaciej Żenczykowski 
131*1b481fc3SMaciej Żenczykowski /*-----------------------------------------------------------------------
132*1b481fc3SMaciej Żenczykowski  * Upper Memory Page 0x01: contains advertising fields that define properties
133*1b481fc3SMaciej Żenczykowski  * that are unique to active modules and cable assemblies.
134*1b481fc3SMaciej Żenczykowski  * GlobalOffset = 2 * 0x80 + LocalOffset
135*1b481fc3SMaciej Żenczykowski  */
136*1b481fc3SMaciej Żenczykowski 
137*1b481fc3SMaciej Żenczykowski /* Supported Link Length (Page 1) */
138*1b481fc3SMaciej Żenczykowski #define CMIS_SMF_LEN_OFFSET			0x84
139*1b481fc3SMaciej Żenczykowski #define CMIS_OM5_LEN_OFFSET			0x85
140*1b481fc3SMaciej Żenczykowski #define CMIS_OM4_LEN_OFFSET			0x86
141*1b481fc3SMaciej Żenczykowski #define CMIS_OM3_LEN_OFFSET			0x87
142*1b481fc3SMaciej Żenczykowski #define CMIS_OM2_LEN_OFFSET			0x88
143*1b481fc3SMaciej Żenczykowski 
144*1b481fc3SMaciej Żenczykowski /* Wavelength (Page 1) */
145*1b481fc3SMaciej Żenczykowski #define CMIS_NOM_WAVELENGTH_MSB			0x8A
146*1b481fc3SMaciej Żenczykowski #define CMIS_NOM_WAVELENGTH_LSB			0x8B
147*1b481fc3SMaciej Żenczykowski #define CMIS_WAVELENGTH_TOL_MSB			0x8C
148*1b481fc3SMaciej Żenczykowski #define CMIS_WAVELENGTH_TOL_LSB			0x8D
149*1b481fc3SMaciej Żenczykowski 
150*1b481fc3SMaciej Żenczykowski /* Supported Pages Advertising (Page 1) */
151*1b481fc3SMaciej Żenczykowski #define CMIS_PAGES_ADVER_OFFSET			0x8E
152*1b481fc3SMaciej Żenczykowski #define CMIS_BANKS_SUPPORTED_MASK		0x03
153*1b481fc3SMaciej Żenczykowski #define CMIS_BANK_0_SUPPORTED			0x00
154*1b481fc3SMaciej Żenczykowski #define CMIS_BANK_0_1_SUPPORTED			0x01
155*1b481fc3SMaciej Żenczykowski #define CMIS_BANK_0_3_SUPPORTED			0x02
156*1b481fc3SMaciej Żenczykowski 
157*1b481fc3SMaciej Żenczykowski /* Module Characteristics Advertising (Page 1) */
158*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_TYPE_OFFSET			0x97
159*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_TYPE_MASK			0x10
160*1b481fc3SMaciej Żenczykowski 
161*1b481fc3SMaciej Żenczykowski /* Supported Flags Advertisement (Page 1) */
162*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FLAGS_TX_OFFSET		0x9d
163*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_TX_ADAPTIVE_EQ_FAIL	(1 << 3)
164*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_TX_LOL			(1 << 2)
165*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_TX_LOS			(1 << 1)
166*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_TX_FAIL			(1 << 0)
167*1b481fc3SMaciej Żenczykowski 
168*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FLAGS_RX_OFFSET		0x9e
169*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_RX_LOL			(1 << 2)
170*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_FL_RX_LOS			(1 << 1)
171*1b481fc3SMaciej Żenczykowski 
172*1b481fc3SMaciej Żenczykowski /* Supported Monitors Advertisement (Page 1) */
173*1b481fc3SMaciej Żenczykowski #define CMIS_DIAG_CHAN_ADVER_OFFSET		0xA0
174*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_MON_MASK			0x01
175*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_MON_MASK			0x02
176*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_MON_MASK			0x04
177*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_MUL_MASK			0x18
178*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_MUL_1			0x00
179*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_MUL_2			0x08
180*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_MUL_4			0x10
181*1b481fc3SMaciej Żenczykowski 
182*1b481fc3SMaciej Żenczykowski /* Signal integrity controls */
183*1b481fc3SMaciej Żenczykowski #define CMIS_SIG_INTEG_TX_OFFSET		0xA1
184*1b481fc3SMaciej Żenczykowski #define CMIS_SIG_INTEG_RX_OFFSET		0xA2
185*1b481fc3SMaciej Żenczykowski 
186*1b481fc3SMaciej Żenczykowski /*-----------------------------------------------------------------------
187*1b481fc3SMaciej Żenczykowski  * Upper Memory Page 0x02: Optional Page that informs about module-defined
188*1b481fc3SMaciej Żenczykowski  * thresholds for module-level and lane-specific threshold crossing monitors.
189*1b481fc3SMaciej Żenczykowski  */
190*1b481fc3SMaciej Żenczykowski 
191*1b481fc3SMaciej Żenczykowski /* Module-Level Monitor Thresholds (Page 2) */
192*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_HALRM_OFFSET			0x80
193*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_LALRM_OFFSET			0x82
194*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_HWARN_OFFSET			0x84
195*1b481fc3SMaciej Żenczykowski #define CMIS_TEMP_LWARN_OFFSET			0x86
196*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_HALRM_OFFSET			0x88
197*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_LALRM_OFFSET			0x8A
198*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_HWARN_OFFSET			0x8C
199*1b481fc3SMaciej Żenczykowski #define CMIS_VCC_LWARN_OFFSET			0x8E
200*1b481fc3SMaciej Żenczykowski 
201*1b481fc3SMaciej Żenczykowski /* Lane-Related Monitor Thresholds (Page 2) */
202*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_HALRM_OFFSET		0xB0
203*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_LALRM_OFFSET		0xB2
204*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_HWARN_OFFSET		0xB4
205*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_LWARN_OFFSET		0xB6
206*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_HALRM_OFFSET		0xB8
207*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_LALRM_OFFSET		0xBA
208*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_HWARN_OFFSET		0xBC
209*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_LWARN_OFFSET		0xBE
210*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_HALRM_OFFSET		0xC0
211*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_LALRM_OFFSET		0xC2
212*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_HWARN_OFFSET		0xC4
213*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_LWARN_OFFSET		0xC6
214*1b481fc3SMaciej Żenczykowski 
215*1b481fc3SMaciej Żenczykowski /*-----------------------------------------------------------------------
216*1b481fc3SMaciej Żenczykowski  * Upper Memory Page 0x11: Optional Page that contains lane dynamic status
217*1b481fc3SMaciej Żenczykowski  * bytes.
218*1b481fc3SMaciej Żenczykowski  */
219*1b481fc3SMaciej Żenczykowski 
220*1b481fc3SMaciej Żenczykowski /* Media Lane-Specific Flags (Page 0x11) */
221*1b481fc3SMaciej Żenczykowski #define CMIS_TX_FAIL_OFFSET			0x87
222*1b481fc3SMaciej Żenczykowski #define CMIS_TX_LOS_OFFSET			0x88
223*1b481fc3SMaciej Żenczykowski #define CMIS_TX_LOL_OFFSET			0x89
224*1b481fc3SMaciej Żenczykowski #define CMIS_TX_EQ_FAIL_OFFSET			0x8a
225*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_AW_HALARM_OFFSET		0x8B
226*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_AW_LALARM_OFFSET		0x8C
227*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_AW_HWARN_OFFSET		0x8D
228*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_AW_LWARN_OFFSET		0x8E
229*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_AW_HALARM_OFFSET		0x8F
230*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_AW_LALARM_OFFSET		0x90
231*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_AW_HWARN_OFFSET		0x91
232*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_AW_LWARN_OFFSET		0x92
233*1b481fc3SMaciej Żenczykowski #define CMIS_RX_LOS_OFFSET			0x93
234*1b481fc3SMaciej Żenczykowski #define CMIS_RX_LOL_OFFSET			0x94
235*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_AW_HALARM_OFFSET		0x95
236*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_AW_LALARM_OFFSET		0x96
237*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_AW_HWARN_OFFSET		0x97
238*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_AW_LWARN_OFFSET		0x98
239*1b481fc3SMaciej Żenczykowski 
240*1b481fc3SMaciej Żenczykowski /* Media Lane-Specific Monitors (Page 0x11) */
241*1b481fc3SMaciej Żenczykowski #define CMIS_TX_PWR_OFFSET			0x9A
242*1b481fc3SMaciej Żenczykowski #define CMIS_TX_BIAS_OFFSET			0xAA
243*1b481fc3SMaciej Żenczykowski #define CMIS_RX_PWR_OFFSET			0xBA
244*1b481fc3SMaciej Żenczykowski 
245*1b481fc3SMaciej Żenczykowski #define YESNO(x) (((x) != 0) ? "Yes" : "No")
246*1b481fc3SMaciej Żenczykowski #define ONOFF(x) (((x) != 0) ? "On" : "Off")
247*1b481fc3SMaciej Żenczykowski 
248*1b481fc3SMaciej Żenczykowski void cmis_show_all_ioctl(const __u8 *id);
249*1b481fc3SMaciej Żenczykowski 
250*1b481fc3SMaciej Żenczykowski int cmis_show_all_nl(struct cmd_context *ctx);
251*1b481fc3SMaciej Żenczykowski 
252*1b481fc3SMaciej Żenczykowski #endif /* CMIS_H__ */
253