FreeBSD kernel CAM code
scsi_ses.h
Go to the documentation of this file.
1/* $FreeBSD$ */
2/*-
3 * SPDX-License-Identifier: (BSD-2-Clause-FreeBSD OR GPL-2.0)
4 *
5 * Copyright (c) 2000 by Matthew Jacob
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions, and the following disclaimer,
13 * without modification, immediately at the beginning of the file.
14 * 2. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * Alternatively, this software may be distributed under the terms of the
18 * the GNU Public License ("GPL").
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
24 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 * SUCH DAMAGE.
31 *
32 */
33
34#ifndef _SCSI_SES_H_
35#define _SCSI_SES_H_
36
37#include <cam/scsi/scsi_all.h>
38
39/*========================== Field Extraction Macros =========================*/
40#define MK_ENUM(S, F, SUFFIX) S ## _ ## F ## SUFFIX
41
42#define GEN_GETTER(LS, US, LF, UF) \
43static inline int \
44LS ## _get_ ## LF(struct LS *elem) { \
45 return ((elem->bytes[MK_ENUM(US,UF,_BYTE)] & MK_ENUM(US,UF,_MASK)) \
46 >> MK_ENUM(US,UF,_SHIFT)); \
47}
48
49#define GEN_SETTER(LS, US, LF, UF) \
50static inline void \
51LS ## _set_ ## LF(struct LS *elem, int val) { \
52 elem->bytes[MK_ENUM(US,UF,_BYTE)] &= ~MK_ENUM(US,UF,_MASK); \
53 elem->bytes[MK_ENUM(US,UF,_BYTE)] |= \
54 (val << MK_ENUM(US,UF,_SHIFT)) & MK_ENUM(US,UF,_MASK); \
55}
56
57#define GEN_HDR_GETTER(LS, US, LF, UF) \
58static inline int \
59LS ## _get_ ## LF(struct LS *page) { \
60 return ((page->hdr.page_specific_flags & MK_ENUM(US,UF,_MASK)) \
61 >> MK_ENUM(US,UF,_SHIFT)); \
62}
63
64#define GEN_HDR_SETTER(LS, US, LF, UF) \
65static inline void \
66LS ## _set_ ## LF(struct LS *page, int val) { \
67 page->hdr.page_specific_flags &= ~MK_ENUM(US,UF,_MASK); \
68 page->hdr.page_specific_flags |= \
69 (val << MK_ENUM(US,UF,_SHIFT)) & MK_ENUM(US,UF,_MASK); \
70}
71
72#define GEN_ACCESSORS(LS, US, LF, UF) \
73GEN_GETTER(LS, US, LF, UF) \
74GEN_SETTER(LS, US, LF, UF)
75
76#define GEN_HDR_ACCESSORS(LS, US, LF, UF) \
77GEN_HDR_GETTER(LS, US, LF, UF) \
78GEN_HDR_SETTER(LS, US, LF, UF)
79
80/*=============== Common SCSI ENC Diagnostic Page Structures ===============*/
82 uint8_t page_code;
84 uint8_t length[2];
85 uint8_t gen_code[4];
86};
87
88static inline size_t
89ses_page_length(const struct ses_page_hdr *hdr)
90{
91 /*
92 * The page length as received only accounts for bytes that
93 * follow the length field, namely starting with the generation
94 * code field.
95 */
96 return (scsi_2btoul(hdr->length)
97 + offsetof(struct ses_page_hdr, gen_code));
98}
99
100/*============= SCSI ENC Configuration Diagnostic Page Structures ============*/
102 uint8_t byte0;
103 /*
104 * reserved0 : 1,
105 * rel_id : 3, relative enclosure process id
106 * reserved1 : 1,
107 * num_procs : 3; number of enclosure procesenc
108 */
109 uint8_t subenc_id; /* Sub-enclosure Identifier */
110 uint8_t num_types; /* # of supported types */
111 uint8_t length; /* Enclosure Descriptor Length */
112 uint8_t logical_id[8]; /* formerly wwn */
113 uint8_t vendor_id[8];
114 uint8_t product_id[16];
115 uint8_t product_rev[4];
116 uint8_t vendor_bytes[];
117};
118
119static inline uint8_t *
121{
122 return (&encdesc->length + encdesc->length);
123}
124
125static inline struct ses_enc_desc *
127{
128 return ((struct ses_enc_desc *)(ses_enc_desc_last_byte(encdesc) + 1));
129}
130
131static inline int
132ses_enc_desc_is_complete(struct ses_enc_desc *encdesc, uint8_t *last_buf_byte)
133{
134 return (&encdesc->length <= last_buf_byte
135 && ses_enc_desc_last_byte(encdesc) <= last_buf_byte);
136}
137
139 uint8_t etype_elm_type; /* type of element */
140 uint8_t etype_maxelt; /* maximum supported */
141 uint8_t etype_subenc; /* in sub-enclosure #n */
142 uint8_t etype_txt_len; /* Type Descriptor Text Length */
143};
144
148 /* type descriptors */
149 /* type text */
150};
151
152static inline int
154{
155 return (page->hdr.page_specific_flags + 1);
156}
157
158/*================ SCSI SES Control Diagnostic Page Structures ==============*/
160 uint8_t bytes[1];
161};
162
167
171
175
180
181#define GEN_SES_CTRL_COMMON_ACCESSORS(LCASE, UCASE) \
182 GEN_ACCESSORS(ses_ctrl_common, SES_CTRL_COMMON, LCASE, UCASE)
183GEN_SES_CTRL_COMMON_ACCESSORS(select, SELECT)
184GEN_SES_CTRL_COMMON_ACCESSORS(prdfail, PRDFAIL)
185GEN_SES_CTRL_COMMON_ACCESSORS(disable, DISABLE)
186GEN_SES_CTRL_COMMON_ACCESSORS(rst_swap, RST_SWAP)
187#undef GEN_SES_CTRL_COMMON_ACCESSORS
188
189/*------------------------ Device Slot Control Element ----------------------*/
192 uint8_t bytes[3];
193};
194
199
203
207
211
215
219
223
227
231
236#define GEN_SES_CTRL_DEV_SLOT_ACCESSORS(LCASE, UCASE) \
237 GEN_ACCESSORS(ses_ctrl_dev_slot, SES_CTRL_DEV_SLOT, LCASE, UCASE)
238
239GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_active, RQST_ACTIVE)
240GEN_SES_CTRL_DEV_SLOT_ACCESSORS(do_not_remove, DO_NOT_REMOVE)
241GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_missing, RQST_MISSING)
242GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_insert, RQST_INSERT)
243GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_remove, RQST_REMOVE)
244GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_ident, RQST_IDENT)
245GEN_SES_CTRL_DEV_SLOT_ACCESSORS(rqst_fault, RQST_FAULT)
246GEN_SES_CTRL_DEV_SLOT_ACCESSORS(device_off, DEVICE_OFF)
247GEN_SES_CTRL_DEV_SLOT_ACCESSORS(enable_byp_a, ENABLE_BYP_A)
248GEN_SES_CTRL_DEV_SLOT_ACCESSORS(enable_byp_b, ENABLE_BYP_B)
249#undef GEN_SES_CTRL_DEV_SLOT_ACCESSORS
250
251/*--------------------- Array Device Slot Control Element --------------------*/
254 uint8_t bytes[3];
255};
256
261
265
269
273
277
281
285
289
290 /*
291 * The remaining fields are identical to the device
292 * slot element type. Access them through the device slot
293 * element type and its accessors.
294 */
296#define GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(LCASE, UCASE) \
297 GEN_ACCESSORS(ses_ctrl_array_dev_slot, SES_CTRL_ARRAY_DEV_SLOT, \
298 LCASE, UCASE)
300GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_rsvd_device, RQST_RSVD_DEVICE)
301GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_hot_spare, RQST_HOT_SPARE)
302GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_cons_check, RQST_CONS_CHECK)
303GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_in_crit_array, RQST_IN_CRIT_ARRAY)
305 RQST_IN_FAILED_ARRAY)
306GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_rebuild_remap, RQST_REBUILD_REMAP)
307GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(rqst_rebuild_remap_abort,
308 RQST_REBUILD_REMAP_ABORT)
309#undef GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS
310
311/*----------------------- Power Supply Control Element -----------------------*/
314 uint8_t bytes[3];
315};
316
321
325
330
331#define GEN_SES_CTRL_POWER_SUPPLY_ACCESSORS(LCASE, UCASE) \
332 GEN_ACCESSORS(ses_ctrl_power_supply, SES_CTRL_POWER_SUPPLY, LCASE, UCASE)
333GEN_SES_CTRL_POWER_SUPPLY_ACCESSORS(rqst_ident, RQST_IDENT)
334GEN_SES_CTRL_POWER_SUPPLY_ACCESSORS(rqst_fail, RQST_FAIL)
336#undef GEN_SES_CTRL_POWER_SUPPLY_ACCESSORS
337
338/*-------------------------- Cooling Control Element -------------------------*/
341 uint8_t bytes[3];
342};
343
348
352
356
364
365#define GEN_SES_CTRL_COOLING_ACCESSORS(LCASE, UCASE) \
366 GEN_ACCESSORS(ses_ctrl_cooling, SES_CTRL_COOLING, LCASE, UCASE)
367GEN_SES_CTRL_COOLING_ACCESSORS(rqst_ident, RQST_IDENT)
368GEN_SES_CTRL_COOLING_ACCESSORS(rqst_fail, RQST_FAIL)
369GEN_SES_CTRL_COOLING_ACCESSORS(rqst_on, RQST_ON)
370GEN_SES_CTRL_COOLING_ACCESSORS(rqsted_speed_code, RQSTED_SPEED_CODE)
371#undef GEN_SES_CTRL_COOLING_ACCESSORS
372
373/*-------------------- Temperature Sensor Control Element --------------------*/
376 uint8_t bytes[3];
377};
378
383
388
389#define GEN_SES_CTRL_TEMP_SENSOR_ACCESSORS(LCASE, UCASE) \
390 GEN_ACCESSORS(ses_ctrl_temp_sensor, SES_CTRL_TEMP_SENSOR, LCASE, UCASE)
391GEN_SES_CTRL_TEMP_SENSOR_ACCESSORS(rqst_ident, RQST_IDENT)
392GEN_SES_CTRL_TEMP_SENSOR_ACCESSORS(rqst_fail, RQST_FAIL)
393#undef GEN_SES_CTRL_TEMP_SENSOR_ACCESSORS
394
395/*------------------------- Door Lock Control Element ------------------------*/
398 uint8_t bytes[3];
399};
400
405
409
414
415#define GEN_SES_CTRL_DOOR_LOCK_ACCESSORS(LCASE, UCASE) \
416 GEN_ACCESSORS(ses_ctrl_door_lock, SES_CTRL_DOOR_LOCK, LCASE, UCASE)
417GEN_SES_CTRL_DOOR_LOCK_ACCESSORS(rqst_ident, RQST_IDENT)
418GEN_SES_CTRL_DOOR_LOCK_ACCESSORS(rqst_fail, RQST_FAIL)
420#undef GEN_SES_CTRL_DOOR_LOCK_ACCESSORS
421
422/*----------------------- Audible Alarm Control Element ----------------------*/
425 uint8_t bytes[3];
426};
427
432
436
440
444
453
454#define GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(LCASE, UCASE) \
455 GEN_ACCESSORS(ses_ctrl_audible_alarm, SES_CTRL_AUDIBLE_ALARM, LCASE, UCASE)
456GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(rqst_ident, RQST_IDENT)
457GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(rqst_fail, RQST_FAIL)
458GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(set_mute, SET_MUTE)
459GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(set_remind, SET_REMIND)
460GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(tone_control, TONE_CONTROL)
461#undef GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS
462
463/*--------- Enclosure Services Controller Electronics Control Element --------*/
466 uint8_t bytes[3];
467};
468
473
477
482
483#define GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS(LCASE, UCASE) \
484 GEN_ACCESSORS(ses_ctrl_ecc_electronics, SES_CTRL_ECC_ELECTRONICS, \
485 LCASE, UCASE)
486GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS(rqst_ident, RQST_IDENT)
487GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS(rqst_fail, RQST_FAIL)
488GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS(select_element, SELECT_ELEMENT)
489#undef GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS
490
491/*----------- SCSI Services Controller Electronics Control Element -----------*/
494 uint8_t bytes[3];
495};
496
501
506
507#define GEN_SES_CTRL_SCC_ELECTRONICS_ACCESSORS(LCASE, UCASE) \
508 GEN_ACCESSORS(ses_ctrl_scc_electronics, SES_CTRL_SCC_ELECTRONICS, \
509 LCASE, UCASE)
510GEN_SES_CTRL_SCC_ELECTRONICS_ACCESSORS(rqst_ident, RQST_IDENT)
511GEN_SES_CTRL_SCC_ELECTRONICS_ACCESSORS(rqst_fail, RQST_FAIL)
512#undef GEN_SES_CTRL_SCC_ELECTRONICS_ACCESSORS
513
514/*--------------------- Nonvolatile Cache Control Element --------------------*/
517 uint8_t bytes[3];
518};
519
524
529
530#define GEN_SES_CTRL_NV_CACHE_ACCESSORS(LCASE, UCASE) \
531 GEN_ACCESSORS(ses_ctrl_nv_cache, SES_CTRL_NV_CACHE, LCASE, UCASE)
532GEN_SES_CTRL_NV_CACHE_ACCESSORS(rqst_ident, RQST_IDENT)
533GEN_SES_CTRL_NV_CACHE_ACCESSORS(rqst_fail, RQST_FAIL)
534#undef GEN_SES_CTRL_NV_CACHE_ACCESSORS
535
536/*----------------- Invalid Operation Reason Control Element -----------------*/
539 uint8_t bytes[3];
540};
541
542/* There are no element specific fields currently defined in the spec. */
543
544/*--------------- Uninterruptible Power Supply Control Element ---------------*/
547 uint8_t bytes[3];
548};
549
554
559
560#define GEN_SES_CTRL_UPS_ACCESSORS(LCASE, UCASE) \
561 GEN_ACCESSORS(ses_ctrl_ups, SES_CTRL_UPS, LCASE, UCASE)
562GEN_SES_CTRL_UPS_ACCESSORS(rqst_ident, RQST_IDENT)
563GEN_SES_CTRL_UPS_ACCESSORS(rqst_fail, RQST_FAIL)
564#undef GEN_SES_CTRL_UPS_ACCESSORS
565
566/*-------------------------- Display Control Element -------------------------*/
569 uint8_t bytes[1];
571};
572
577
581
589
590#define GEN_SES_CTRL_DISPLAY_ACCESSORS(LCASE, UCASE) \
591 GEN_ACCESSORS(ses_ctrl_display, SES_CTRL_DISPLAY, LCASE, UCASE)
592GEN_SES_CTRL_DISPLAY_ACCESSORS(rqst_ident, RQST_IDENT)
593GEN_SES_CTRL_DISPLAY_ACCESSORS(rqst_fail, RQST_FAIL)
594GEN_SES_CTRL_DISPLAY_ACCESSORS(display_mode, DISPLAY_MODE)
595#undef GEN_SES_CTRL_DISPLAY_ACCESSORS
596
597/*----------------------- Key Pad Entry Control Element ----------------------*/
600 uint8_t bytes[3];
601};
602
607
612
613#define GEN_SES_CTRL_KEY_PAD_ENTRY_ACCESSORS(LCASE, UCASE) \
614 GEN_ACCESSORS(ses_ctrl_key_pad_entry, SES_CTRL_KEY_PAD_ENTRY, LCASE, UCASE)
615GEN_SES_CTRL_KEY_PAD_ENTRY_ACCESSORS(rqst_ident, RQST_IDENT)
616GEN_SES_CTRL_KEY_PAD_ENTRY_ACCESSORS(rqst_fail, RQST_FAIL)
617#undef GEN_SES_CTRL_KEY_PAD_ENTRY_ACCESSORS
618
619/*------------------------- Enclosure Control Element ------------------------*/
622 uint8_t bytes[3];
623};
624
629
636
641
647
651
656
657#define GEN_SES_CTRL_ENCLOSURE_ACCESSORS(LCASE, UCASE) \
658 GEN_ACCESSORS(ses_ctrl_enclosure, SES_CTRL_ENCLOSURE, LCASE, UCASE)
659GEN_SES_CTRL_ENCLOSURE_ACCESSORS(rqst_ident, RQST_IDENT)
660GEN_SES_CTRL_ENCLOSURE_ACCESSORS(power_cycle_rqst, POWER_CYCLE_RQST)
661GEN_SES_CTRL_ENCLOSURE_ACCESSORS(power_cycle_delay, POWER_CYCLE_DELAY)
662GEN_SES_CTRL_ENCLOSURE_ACCESSORS(power_off_duration, POWER_OFF_DURATION)
663GEN_SES_CTRL_ENCLOSURE_ACCESSORS(rqst_fail, RQST_FAIL)
664GEN_SES_CTRL_ENCLOSURE_ACCESSORS(rqst_warn, RQST_WARN)
665#undef GEN_SES_CTRL_ENCLOSURE_ACCESSORS
666
667/*------------------- SCSI Port/Transceiver Control Element ------------------*/
670 uint8_t bytes[3];
671};
672
677
681
686
687#define GEN_SES_CTRL_SCSI_PORT_OR_XCVR_ACCESSORS(LCASE, UCASE) \
688 GEN_ACCESSORS(ses_ctrl_scsi_port_or_xcvr, SES_CTRL_SCSI_PORT_OR_XCVR,\
689 LCASE, UCASE)
690GEN_SES_CTRL_SCSI_PORT_OR_XCVR_ACCESSORS(rqst_ident, RQST_IDENT)
693#undef GEN_SES_CTRL_SCSI_PORT_OR_XCVR_ACCESSORS
694
695/*------------------------- Language Control Element -------------------------*/
698 uint8_t bytes[1];
699 uint8_t language_code[2];
700};
701
707
708#define GEN_SES_CTRL_LANGUAGE_ACCESSORS(LCASE, UCASE) \
709 GEN_ACCESSORS(ses_ctrl_language, SES_CTRL_LANGUAGE, LCASE, UCASE)
710GEN_SES_CTRL_LANGUAGE_ACCESSORS(rqst_ident, RQST_IDENT)
711#undef GEN_SES_CTRL_LANGUAGE_ACCESSORS
712
713/*-------------------- Communication Port Control Element --------------------*/
716 uint8_t bytes[3];
717};
718
723
727
732
733#define GEN_SES_CTRL_COMM_PORT_ACCESSORS(LCASE, UCASE) \
734 GEN_ACCESSORS(ses_ctrl_comm_port, SES_CTRL_COMM_PORT, LCASE, UCASE)
735GEN_SES_CTRL_COMM_PORT_ACCESSORS(rqst_ident, RQST_IDENT)
736GEN_SES_CTRL_COMM_PORT_ACCESSORS(rqst_fail, RQST_FAIL)
737GEN_SES_CTRL_COMM_PORT_ACCESSORS(disable, DISABLE)
738#undef GEN_SES_CTRL_COMM_PORT_ACCESSORS
739
740/*---------------------- Voltage Sensor Control Element ----------------------*/
743 uint8_t bytes[3];
744};
745
750
755
756#define GEN_SES_CTRL_VOLTAGE_SENSOR_ACCESSORS(LCASE, UCASE) \
757 GEN_ACCESSORS(ses_ctrl_voltage_sensor, SES_CTRL_VOLTAGE_SENSOR, \
758 LCASE, UCASE)
759GEN_SES_CTRL_VOLTAGE_SENSOR_ACCESSORS(rqst_ident, RQST_IDENT)
760GEN_SES_CTRL_VOLTAGE_SENSOR_ACCESSORS(rqst_fail, RQST_FAIL)
761#undef GEN_SES_CTRL_VOLTAGE_SENSOR_ACCESSORS
762
763/*---------------------- Current Sensor Control Element ----------------------*/
766 uint8_t bytes[3];
767};
768
773
778
779#define GEN_SES_CTRL_CURRENT_SENSOR_ACCESSORS(LCASE, UCASE) \
780 GEN_ACCESSORS(ses_ctrl_current_sensor, SES_CTRL_CURRENT_SENSOR, \
781 LCASE, UCASE)
782GEN_SES_CTRL_CURRENT_SENSOR_ACCESSORS(rqst_ident, RQST_IDENT)
783GEN_SES_CTRL_CURRENT_SENSOR_ACCESSORS(rqst_fail, RQST_FAIL)
784#undef GEN_SES_CTRL_CURRENT_SENSOR_ACCESSORS
785
786/*--------------------- SCSI Target Port Control Element ---------------------*/
789 uint8_t bytes[3];
790};
791
796
800
805
806#define GEN_SES_CTRL_TARGET_PORT_ACCESSORS(LCASE, UCASE) \
807 GEN_ACCESSORS(ses_ctrl_target_port, SES_CTRL_TARGET_PORT, LCASE, UCASE)
808GEN_SES_CTRL_TARGET_PORT_ACCESSORS(rqst_ident, RQST_IDENT)
809GEN_SES_CTRL_TARGET_PORT_ACCESSORS(rqst_fail, RQST_FAIL)
811#undef GEN_SES_CTRL_TARGET_PORT_ACCESSORS
812
813/*-------------------- SCSI Initiator Port Control Element -------------------*/
816 uint8_t bytes[3];
817};
818
823
827
832
833#define GEN_SES_CTRL_INITIATOR_PORT_ACCESSORS(LCASE, UCASE) \
834 GEN_ACCESSORS(ses_ctrl_initiator_port, SES_CTRL_INITIATOR_PORT, \
835 LCASE, UCASE)
836GEN_SES_CTRL_INITIATOR_PORT_ACCESSORS(rqst_ident, RQST_IDENT)
837GEN_SES_CTRL_INITIATOR_PORT_ACCESSORS(rqst_fail, RQST_FAIL)
839#undef GEN_SES_CTRL_INITIATOR_PORT_ACCESSORS
840
841/*-------------------- Simple Subenclosure Control Element -------------------*/
844 uint8_t bytes[3];
845};
846
851
856
857#define GEN_SES_CTRL_SIMPlE_SUBSES_ACCESSORS(LCASE, UCASE) \
858 GEN_ACCESSORS(ses_ctrl_simple_subenc, SES_CTRL_SIMPlE_SUBSES, \
859 LCASE, UCASE)
861GEN_SES_CTRL_SIMPlE_SUBSES_ACCESSORS(rqst_fail, RQST_FAIL)
862#undef GEN_SES_CTRL_SIMPlE_SUBSES_ACCESSORS
863
864/*----------------------- SAS Expander Control Element -----------------------*/
867 uint8_t bytes[3];
868};
869
874
879
880#define GEN_SES_CTRL_SAS_EXPANDER_ACCESSORS(LCASE, UCASE) \
881 GEN_ACCESSORS(ses_ctrl_sas_expander, SES_CTRL_SAS_EXPANDER, LCASE, UCASE)
882GEN_SES_CTRL_SAS_EXPANDER_ACCESSORS(rqst_ident, RQST_IDENT)
883GEN_SES_CTRL_SAS_EXPANDER_ACCESSORS(rqst_fail, RQST_FAIL)
884#undef GEN_SES_CTRL_SAS_EXPANDER_ACCESSORS
885
886/*----------------------- SAS Connector Control Element ----------------------*/
889 uint8_t bytes[3];
890};
891
896
901
902#define GEN_SES_CTRL_SAS_CONNECTOR_ACCESSORS(LCASE, UCASE) \
903 GEN_ACCESSORS(ses_ctrl_sas_connector, SES_CTRL_SAS_CONNECTOR, \
904 LCASE, UCASE)
905GEN_SES_CTRL_SAS_CONNECTOR_ACCESSORS(rqst_ident, RQST_IDENT)
906GEN_SES_CTRL_SAS_CONNECTOR_ACCESSORS(rqst_fail, RQST_FAIL)
907#undef GEN_SES_CTRL_SAS_CONNECTOR_ACCESSORS
908
909/*------------------------- Universal Control Element ------------------------*/
936};
937
938/*--------------------- SCSI SES Control Diagnostic Page ---------------------*/
942};
943
947
950
953
957
958#define GEN_SES_CTRL_PAGE_ACCESSORS(LCASE, UCASE) \
959 GEN_HDR_ACCESSORS(ses_ctrl_page, SES_CTRL_PAGE, LCASE, UCASE)
960
962GEN_SES_CTRL_PAGE_ACCESSORS(non_crit, NON_CRIT)
964GEN_SES_CTRL_PAGE_ACCESSORS(unrecov, UNRECOV)
965#undef GEN_SES_CTRL_PAGE_ACCESSORS
966
967/*================= SCSI SES Status Diagnostic Page Structures ===============*/
969 uint8_t bytes[1];
970};
971
976
980
984
989
990#define GEN_SES_STATUS_COMMON_ACCESSORS(LCASE, UCASE) \
991 GEN_GETTER(ses_status_common, SES_STATUS_COMMON, LCASE, UCASE)
992
993GEN_SES_STATUS_COMMON_ACCESSORS(prdfail, PRDFAIL)
994GEN_SES_STATUS_COMMON_ACCESSORS(disabled, DISABLED)
996GEN_SES_STATUS_COMMON_ACCESSORS(element_status_code, ELEMENT_STATUS_CODE)
997#undef GEN_SES_STATUS_COMMON_ACCESSORS
998
999/*------------------------- Device Slot Status Element -----------------------*/
1003 uint8_t bytes[2];
1004};
1005
1010
1014
1018
1022
1026
1030
1034
1038
1042
1046
1050
1054
1058
1062
1066
1071#define GEN_SES_STATUS_DEV_SLOT_ACCESSORS(LCASE, UCASE) \
1072 GEN_GETTER(ses_status_dev_slot, SES_STATUS_DEV_SLOT, LCASE, UCASE)
1073
1074GEN_SES_STATUS_DEV_SLOT_ACCESSORS(app_client_byped_a, APP_CLIENT_BYPED_A)
1075GEN_SES_STATUS_DEV_SLOT_ACCESSORS(do_not_remove, DO_NOT_REMOVE)
1076GEN_SES_STATUS_DEV_SLOT_ACCESSORS(enclosure_byped_a, ENCLOSURE_BYPED_A)
1077GEN_SES_STATUS_DEV_SLOT_ACCESSORS(enclosure_byped_b, ENCLOSURE_BYPED_B)
1078GEN_SES_STATUS_DEV_SLOT_ACCESSORS(insert_ready, INSERT_READY)
1082GEN_SES_STATUS_DEV_SLOT_ACCESSORS(app_client_byped_b, APP_CLIENT_BYPED_B)
1083GEN_SES_STATUS_DEV_SLOT_ACCESSORS(fault_sensed, FAULT_SENSED)
1084GEN_SES_STATUS_DEV_SLOT_ACCESSORS(fault_requested, FAULT_REQUESTED)
1085GEN_SES_STATUS_DEV_SLOT_ACCESSORS(device_off, DEVICE_OFF)
1086GEN_SES_STATUS_DEV_SLOT_ACCESSORS(byped_a, BYPED_A)
1087GEN_SES_STATUS_DEV_SLOT_ACCESSORS(byped_b, BYPED_B)
1088GEN_SES_STATUS_DEV_SLOT_ACCESSORS(device_byped_a, DEVICE_BYPED_A)
1089GEN_SES_STATUS_DEV_SLOT_ACCESSORS(device_byped_b, DEVICE_BYPED_B)
1090#undef GEN_SES_STATUS_DEV_SLOT_ACCESSORS
1091
1092/*---------------------- Array Device Slot Status Element --------------------*/
1095 uint8_t bytes[3];
1096};
1097
1102
1106
1110
1114
1118
1122
1126
1130
1131 /*
1132 * The remaining fields are identical to the device
1133 * slot element type. Access them through the device slot
1134 * element type and its accessors.
1135 */
1137#define GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(LCASE, UCASE) \
1138 GEN_GETTER(ses_status_array_dev_slot, SES_STATUS_ARRAY_DEV_SLOT, \
1139 LCASE, UCASE)
1141GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(rsvd_device, RSVD_DEVICE)
1142GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(hot_spare, HOT_SPARE)
1143GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(cons_check, CONS_CHECK)
1144GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(in_crit_array, IN_CRIT_ARRAY)
1145GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(in_failed_array, IN_FAILED_ARRAY)
1146GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(rebuild_remap, REBUILD_REMAP)
1148 REBUILD_REMAP_ABORT)
1149#undef GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS
1150
1151/*----------------------- Power Supply Status Element ------------------------*/
1152struct ses_status_power_supply {
1153 struct ses_status_common common;
1154 uint8_t bytes[3];
1155};
1156
1161
1165
1169
1173
1177
1181
1185
1189
1193
1197
1201
1206
1207#define GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(LCASE, UCASE) \
1208 GEN_GETTER(ses_status_power_supply, SES_STATUS_POWER_SUPPLY, LCASE, UCASE)
1210GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(dc_over_voltage, DC_OVER_VOLTAGE)
1211GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(dc_under_voltage, DC_UNDER_VOLTAGE)
1212GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(dc_over_current, DC_OVER_CURRENT)
1213GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(hot_swap, HOT_SWAP)
1215GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(requested_on, REQUESTED_ON)
1217GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(overtmp_fail, OVERTMP_FAIL)
1218GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(temp_warn, TEMP_WARN)
1221#undef GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS
1222
1223/*-------------------------- Cooling Status Element --------------------------*/
1226 uint8_t bytes[3];
1227};
1228
1233
1237
1241
1245
1249
1253
1257
1265
1266#define GEN_SES_STATUS_COOLING_ACCESSORS(LCASE, UCASE) \
1267 GEN_GETTER(ses_status_cooling, SES_STATUS_COOLING, LCASE, UCASE)
1269GEN_SES_STATUS_COOLING_ACCESSORS(actual_fan_speed_msb, ACTUAL_FAN_SPEED_MSB)
1270GEN_SES_STATUS_COOLING_ACCESSORS(actual_fan_speed_lsb, ACTUAL_FAN_SPEED_LSB)
1271GEN_SES_STATUS_COOLING_ACCESSORS(hot_swap, HOT_SWAP)
1273GEN_SES_STATUS_COOLING_ACCESSORS(requested_on, REQUESTED_ON)
1275GEN_SES_STATUS_COOLING_ACCESSORS(actual_speed_code, ACTUAL_SPEED_CODE)
1276#undef GEN_SES_STATUS_COOLING_ACCESSORS
1277
1278static inline int
1280{
1281 return (ses_status_cooling_get_actual_fan_speed_msb(elem) << 8
1282 | ses_status_cooling_get_actual_fan_speed_lsb(elem));
1283}
1284
1285/*-------------------- Temperature Sensor Status Element ---------------------*/
1288 uint8_t bytes[3];
1289};
1290
1295
1299
1303
1307
1311
1315
1320
1321#define GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(LCASE, UCASE) \
1322 GEN_GETTER(ses_status_temp_sensor, SES_STATUS_TEMP_SENSOR, LCASE, UCASE)
1325GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(temperature, TEMPERATURE)
1326GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(ot_failure, OT_FAILURE)
1327GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(ot_warning, OT_WARNING)
1328GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(ut_failure, UT_FAILURE)
1329GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(ut_warning, UT_WARNING)
1330#undef GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS
1331
1332/*------------------------- Door Lock Status Element -------------------------*/
1335 uint8_t bytes[3];
1336};
1337
1342
1346
1351
1352#define GEN_SES_STATUS_DOOR_LOCK_ACCESSORS(LCASE, UCASE) \
1353 GEN_GETTER(ses_status_door_lock, SES_STATUS_DOOR_LOCK, LCASE, UCASE)
1356GEN_SES_STATUS_DOOR_LOCK_ACCESSORS(unlocked, UNLOCKED)
1357#undef GEN_SES_STATUS_DOOR_LOCK_ACCESSORS
1358
1359/*----------------------- Audible Alarm Status Element -----------------------*/
1362 uint8_t bytes[3];
1363};
1364
1369
1373
1377
1381
1385
1394
1395#define GEN_SES_STATUS_AUDIBLE_ALARM_ACCESSORS(LCASE, UCASE) \
1396 GEN_GETTER(ses_status_audible_alarm, SES_STATUS_AUDIBLE_ALARM, LCASE, UCASE)
1399GEN_SES_STATUS_AUDIBLE_ALARM_ACCESSORS(rqst_mute, RQST_MUTE)
1402GEN_SES_STATUS_AUDIBLE_ALARM_ACCESSORS(tone_indicator, TONE_INDICATOR)
1403#undef GEN_SES_STATUS_AUDIBLE_ALARM_ACCESSORS
1404
1405/*---------- Enclosure Services Statusler Electronics Status Element ---------*/
1408 uint8_t bytes[3];
1409};
1410
1415
1419
1423
1428
1429#define GEN_SES_STATUS_ECC_ELECTRONICS_ACCESSORS(LCASE, UCASE) \
1430 GEN_GETTER(ses_status_ecc_electronics, SES_STATUS_ECC_ELECTRONICS, \
1431 LCASE, UCASE)
1436#undef GEN_SES_STATUS_ECC_ELECTRONICS_ACCESSORS
1437
1438/*------------ SCSI Services Statusler Electronics Status Element ------------*/
1441 uint8_t bytes[3];
1442};
1443
1448
1452
1457
1458#define GEN_SES_STATUS_SCC_ELECTRONICS_ACCESSORS(LCASE, UCASE) \
1459 GEN_GETTER(ses_status_scc_electronics, SES_STATUS_SCC_ELECTRONICS, \
1460 LCASE, UCASE)
1464#undef GEN_SES_STATUS_SCC_ELECTRONICS_ACCESSORS
1465
1466/*--------------------- Nonvolatile Cache Status Element ---------------------*/
1469 uint8_t bytes[1];
1470 uint8_t cache_size[2];
1471};
1472
1477
1481
1490
1491#define GEN_SES_STATUS_NV_CACHE_ACCESSORS(LCASE, UCASE) \
1492 GEN_GETTER(ses_status_nv_cache, SES_STATUS_NV_CACHE, LCASE, UCASE)
1495GEN_SES_STATUS_NV_CACHE_ACCESSORS(size_multiplier, SIZE_MULTIPLIER)
1496#undef GEN_SES_STATUS_NV_CACHE_ACCESSORS
1497
1498static inline uintmax_t
1500{
1501 uintmax_t cache_size;
1502 int multiplier;
1503
1504 /* Multiplier is in units of 2^10 */
1505 cache_size = scsi_2btoul(elem->cache_size);
1506 multiplier = 10 * ses_status_nv_cache_get_size_multiplier(elem);
1507 return (cache_size << multiplier);
1508}
1509
1510/*----------------- Invalid Operation Reason Status Element ------------------*/
1513 uint8_t bytes[3];
1514};
1515
1523
1527
1532
1533#define GEN_SES_STATUS_INVALID_OP_REASON_ACCESSORS(LCASE, UCASE) \
1534 GEN_GETTER(ses_status_invalid_op_reason, SES_STATUS_INVALID_OP_REASON, \
1535 LCASE, UCASE)
1538 PC_ERROR_PC_NOT_SUPPORTED)
1540 PF_ERROR_BIT_NUMBER)
1541#undef GEN_SES_STATUS_INVALID_OP_ACCESSORS
1542
1543/*--------------- Uninterruptible Power Supply Status Element ----------------*/
1546 /* Minutes of remaining capacity. */
1548 uint8_t bytes[2];
1549};
1550
1555
1559
1563
1567
1571
1575
1579
1583
1587
1591
1595
1600
1601#define GEN_SES_STATUS_UPS_ACCESSORS(LCASE, UCASE) \
1602 GEN_GETTER(ses_status_ups, SES_STATUS_UPS, LCASE, UCASE)
1603GEN_SES_STATUS_UPS_ACCESSORS(ac_lo, AC_LO)
1604GEN_SES_STATUS_UPS_ACCESSORS(ac_hi, AC_HI)
1605GEN_SES_STATUS_UPS_ACCESSORS(ac_qual, AC_QUAL)
1606GEN_SES_STATUS_UPS_ACCESSORS(ac_fail, AC_FAIL)
1607GEN_SES_STATUS_UPS_ACCESSORS(dc_fail, DC_FAIL)
1608GEN_SES_STATUS_UPS_ACCESSORS(ups_fail, UPS_FAIL)
1610GEN_SES_STATUS_UPS_ACCESSORS(intf_fail, INTF_FAIL)
1611GEN_SES_STATUS_UPS_ACCESSORS(ident, IDENT)
1613GEN_SES_STATUS_UPS_ACCESSORS(batt_fail, BATT_FAIL)
1615#undef GEN_SES_STATUS_UPS_ACCESSORS
1616
1617/*-------------------------- Display Status Element --------------------------*/
1620 uint8_t bytes[1];
1622};
1623
1628
1632
1640
1641#define GEN_SES_STATUS_DISPLAY_ACCESSORS(LCASE, UCASE) \
1642 GEN_GETTER(ses_status_display, SES_STATUS_DISPLAY, LCASE, UCASE)
1645GEN_SES_STATUS_DISPLAY_ACCESSORS(display_mode, DISPLAY_MODE)
1646#undef GEN_SES_STATUS_DISPLAY_ACCESSORS
1647
1648/*----------------------- Key Pad Entry Status Element -----------------------*/
1651 uint8_t bytes[3];
1652};
1653
1658
1663
1664#define GEN_SES_STATUS_KEY_PAD_ENTRY_ACCESSORS(LCASE, UCASE) \
1665 GEN_GETTER(ses_status_key_pad_entry, SES_STATUS_KEY_PAD_ENTRY, LCASE, UCASE)
1668#undef GEN_SES_STATUS_KEY_PAD_ENTRY_ACCESSORS
1669
1670/*------------------------- Enclosure Status Element -------------------------*/
1673 uint8_t bytes[3];
1674};
1675
1680
1684
1688
1692
1698
1702
1707
1708#define GEN_SES_STATUS_ENCLOSURE_ACCESSORS(LCASE, UCASE) \
1709 GEN_GETTER(ses_status_enclosure, SES_STATUS_ENCLOSURE, LCASE, UCASE)
1712 TIME_UNTIL_POWER_CYCLE)
1715GEN_SES_STATUS_ENCLOSURE_ACCESSORS(requested_power_off_duration,
1716 REQUESTED_POWER_OFF_DURATION)
1717GEN_SES_STATUS_ENCLOSURE_ACCESSORS(requested_fail, REQUESTED_FAIL)
1718GEN_SES_STATUS_ENCLOSURE_ACCESSORS(requested_warn, REQUESTED_WARN)
1719#undef GEN_SES_STATUS_ENCLOSURE_ACCESSORS
1720
1721/*------------------- SCSI Port/Transceiver Status Element -------------------*/
1724 uint8_t bytes[3];
1725};
1726
1731
1735
1739
1743
1747
1752
1753#define GEN_SES_STATUS_SCSI_PORT_OR_XCVR_ACCESSORS(LCASE, UCASE) \
1754 GEN_GETTER(ses_status_scsi_port_or_xcvr, SES_STATUS_SCSI_PORT_OR_XCVR,\
1755 LCASE, UCASE)
1762#undef GEN_SES_STATUS_SCSI_PORT_OR_XCVR_ACCESSORS
1763
1764/*------------------------- Language Status Element --------------------------*/
1767 uint8_t bytes[1];
1768 uint8_t language_code[2];
1769};
1770
1776
1777#define GEN_SES_STATUS_LANGUAGE_ACCESSORS(LCASE, UCASE) \
1778 GEN_GETTER(ses_status_language, SES_STATUS_LANGUAGE, LCASE, UCASE)
1780#undef GEN_SES_STATUS_LANGUAGE_ACCESSORS
1781
1782/*-------------------- Communication Port Status Element ---------------------*/
1785 uint8_t bytes[3];
1786};
1787
1792
1796
1801
1802#define GEN_SES_STATUS_COMM_PORT_ACCESSORS(LCASE, UCASE) \
1803 GEN_GETTER(ses_status_comm_port, SES_STATUS_COMM_PORT, LCASE, UCASE)
1806GEN_SES_STATUS_COMM_PORT_ACCESSORS(disabled, DISABLED)
1807#undef GEN_SES_STATUS_COMM_PORT_ACCESSORS
1808
1809/*---------------------- Voltage Sensor Status Element -----------------------*/
1812 uint8_t bytes[1];
1813 uint8_t voltage[2];
1814};
1815
1820
1824
1828
1832
1836
1841
1842#define GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(LCASE, UCASE) \
1843 GEN_GETTER(ses_status_voltage_sensor, SES_STATUS_VOLTAGE_SENSOR, \
1844 LCASE, UCASE)
1847GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(warn_over, WARN_OVER)
1848GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(warn_under, WARN_UNDER)
1849GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(crit_over, CRIT_OVER)
1850GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(crit_under, CRIT_UNDER)
1851#undef GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS
1852
1853/*---------------------- Current Sensor Status Element -----------------------*/
1856 uint8_t bytes[3];
1857};
1858
1863
1867
1871
1876
1877#define GEN_SES_STATUS_CURRENT_SENSOR_ACCESSORS(LCASE, UCASE) \
1878 GEN_GETTER(ses_status_current_sensor, SES_STATUS_CURRENT_SENSOR, \
1879 LCASE, UCASE)
1882GEN_SES_STATUS_CURRENT_SENSOR_ACCESSORS(warn_over, WARN_OVER)
1883GEN_SES_STATUS_CURRENT_SENSOR_ACCESSORS(crit_over, CRIT_OVER)
1884#undef GEN_SES_STATUS_CURRENT_SENSOR_ACCESSORS
1885
1886/*--------------------- SCSI Target Port Status Element ----------------------*/
1889 uint8_t bytes[3];
1890};
1891
1896
1900
1904
1909
1910#define GEN_SES_STATUS_TARGET_PORT_ACCESSORS(LCASE, UCASE) \
1911 GEN_GETTER(ses_status_target_port, SES_STATUS_TARGET_PORT, LCASE, UCASE)
1916#undef GEN_SES_STATUS_TARGET_PORT_ACCESSORS
1917
1918/*-------------------- SCSI Initiator Port Status Element --------------------*/
1921 uint8_t bytes[3];
1922};
1923
1928
1932
1936
1941
1942#define GEN_SES_STATUS_INITIATOR_PORT_ACCESSORS(LCASE, UCASE) \
1943 GEN_GETTER(ses_status_initiator_port, SES_STATUS_INITIATOR_PORT, \
1944 LCASE, UCASE)
1949#undef GEN_SES_STATUS_INITIATOR_PORT_ACCESSORS
1950
1951/*-------------------- Simple Subenclosure Status Element --------------------*/
1954 uint8_t bytes[2];
1956};
1957
1962
1967
1968#define GEN_SES_STATUS_SIMPlE_SUBSES_ACCESSORS(LCASE, UCASE) \
1969 GEN_GETTER(ses_status_simple_subses, SES_STATUS_SIMPlE_SUBSES, \
1970 LCASE, UCASE)
1973#undef GEN_SES_STATUS_SIMPlE_SUBSES_ACCESSORS
1974
1975/*----------------------- SAS Expander Status Element ------------------------*/
1978 uint8_t bytes[3];
1979};
1980
1985
1990
1991#define GEN_SES_STATUS_SAS_EXPANDER_ACCESSORS(LCASE, UCASE) \
1992 GEN_GETTER(ses_status_sas_expander, SES_STATUS_SAS_EXPANDER, LCASE, UCASE)
1995#undef GEN_SES_STATUS_SAS_EXPANDER_ACCESSORS
1996
1997/*----------------------- SAS Connector Status Element -----------------------*/
2000 uint8_t bytes[3];
2001};
2002
2007
2011
2016
2020};
2021
2022#define GEN_SES_STATUS_SAS_CONNECTOR_ACCESSORS(LCASE, UCASE) \
2023 GEN_GETTER(ses_status_sas_connector, SES_STATUS_SAS_CONNECTOR, \
2024 LCASE, UCASE)
2027GEN_SES_STATUS_SAS_CONNECTOR_ACCESSORS(phys_link, PHYS_LINK)
2029#undef GEN_SES_STATUS_SAS_CONNECTOR_ACCESSORS
2030
2031/*------------------------- Universal Status Element -------------------------*/
2036 struct ses_status_power_supply power_supply;
2058 uint8_t bytes[4];
2059};
2060
2061/*
2062 * Convert element status into control as much as possible.
2063 * Some bits have different meaning in status and control,
2064 * while others have the same and should be preserved.
2065 */
2066static inline void
2067ses_status_to_ctrl(uint8_t type, uint8_t *bytes)
2068{
2069 /* Updated to SES4r5. */
2070 static const uint8_t mask[][4] = {
2071 { 0x60, 0x00, 0x00, 0x00 }, /* UNSPECIFIED */
2072 { 0x60, 0x00, 0x4e, 0x3c }, /* DEVICE */
2073 { 0x60, 0xc0, 0x00, 0x60 }, /* POWER */
2074 { 0x60, 0xc0, 0x00, 0x60 }, /* COOLING/FAN */
2075 { 0x60, 0xc0, 0x00, 0x80 }, /* THERM */
2076 { 0x60, 0xc0, 0x00, 0x01 }, /* DOORLOCK */
2077 { 0x60, 0xc0, 0x00, 0x5f }, /* ALARM */
2078 { 0x60, 0xf0, 0x01, 0x00 }, /* ESSC */
2079 { 0x60, 0xc0, 0x00, 0x00 }, /* SCC */
2080 { 0x60, 0xc0, 0x00, 0x00 }, /* NVRAM */
2081 { 0x60, 0x00, 0x00, 0x00 }, /* INV_OP_REASON */
2082 { 0x60, 0x00, 0x00, 0xe0 }, /* UPS */
2083 { 0x60, 0xc0, 0xff, 0xff }, /* DISPLAY */
2084 { 0x60, 0xc0, 0x00, 0x00 }, /* KEYPAD */
2085 { 0x60, 0x80, 0x00, 0xff }, /* ENCLOSURE */
2086 { 0x60, 0xc0, 0x00, 0x10 }, /* SCSIXVR */
2087 { 0x60, 0x80, 0xff, 0xff }, /* LANGUAGE */
2088 { 0x60, 0xc0, 0x00, 0x01 }, /* COMPORT */
2089 { 0x60, 0xc0, 0x00, 0x00 }, /* VOM */
2090 { 0x60, 0xc0, 0x00, 0x00 }, /* AMMETER */
2091 { 0x60, 0xc0, 0x00, 0x01 }, /* SCSI_TGT */
2092 { 0x60, 0xc0, 0x00, 0x01 }, /* SCSI_INI*/
2093 { 0x60, 0xc0, 0x00, 0x00 }, /* SUBENC */
2094 { 0x60, 0xff, 0x4e, 0x3c }, /* ARRAY_DEV */
2095 { 0x60, 0xc0, 0x00, 0x00 }, /* SAS_EXP */
2096 { 0x60, 0x80, 0x00, 0x40 }, /* SAS_CONN */
2097 };
2098
2099 if (type >= sizeof(mask) / sizeof(mask[0]))
2100 type = 0;
2101 for (int i = 0; i < 4; i++)
2102 bytes[i] &= mask[type][i];
2103}
2104
2105/*===================== SCSI SES Status Diagnostic Page =====================*/
2109};
2110
2114
2117
2120
2123
2126
2133};
2134
2135#define GEN_SES_STATUS_PAGE_ACCESSORS(LCASE, UCASE) \
2136 GEN_HDR_ACCESSORS(ses_status_page, SES_STATUS_PAGE, LCASE, UCASE)
2137
2140GEN_SES_STATUS_PAGE_ACCESSORS(non_crit, NON_CRIT)
2142GEN_SES_STATUS_PAGE_ACCESSORS(unrecov, UNRECOV)
2143GEN_SES_STATUS_PAGE_ACCESSORS(changed, CHANGED)
2144#undef GEN_SES_STATUS_PAGE_ACCESSORS
2145
2146/*================ SCSI SES Element Descriptor Diagnostic Page ===============*/
2148 uint8_t reserved[2];
2149 uint8_t length[2];
2151};
2152
2156};
2157
2158/*============ SCSI SES Additional Element Status Diagnostic Page ============*/
2161};
2162
2163/*====================== Legacy (Deprecated) Structures ======================*/
2165 uint8_t page_code;
2167 uint8_t length[2];
2168 uint8_t gen_code[4];
2169/* Followed by variable length array of descriptors. */
2170};
2171
2173 uint8_t page_code;
2175 uint8_t length[2];
2176 uint8_t gen_code[4];
2177/* Followed by variable length array of descriptors. */
2178};
2179
2180/* ses_page_hdr.reserved values */
2181/*
2182 * Enclosure Status Diagnostic Page:
2183 * uint8_t reserved : 3,
2184 * invop : 1,
2185 * info : 1,
2186 * noncritical : 1,
2187 * critical : 1,
2188 * unrecov : 1;
2189 */
2190#define SES_ENCSTAT_UNRECOV 0x01
2191#define SES_ENCSTAT_CRITICAL 0x02
2192#define SES_ENCSTAT_NONCRITICAL 0x04
2193#define SES_ENCSTAT_INFO 0x08
2194#define SES_ENCSTAT_INVOP 0x10
2195/* Status mask: All of the above OR'd together */
2196#define SES_STATUS_MASK 0x1f
2197#define SES_SET_STATUS_MASK 0xf
2198/* Element Descriptor Diagnostic Page: unused */
2199/* Additional Element Status Diagnostic Page: unused */
2200
2201/* Summary SES Status Defines, Common Status Codes */
2202#define SES_OBJSTAT_UNSUPPORTED 0
2203#define SES_OBJSTAT_OK 1
2204#define SES_OBJSTAT_CRIT 2
2205#define SES_OBJSTAT_NONCRIT 3
2206#define SES_OBJSTAT_UNRECOV 4
2207#define SES_OBJSTAT_NOTINSTALLED 5
2208#define SES_OBJSTAT_UNKNOWN 6
2209#define SES_OBJSTAT_NOTAVAIL 7
2210#define SES_OBJSTAT_NOACCESS 8
2211
2212/*
2213 * For control pages, cstat[0] is the same for the
2214 * enclosure and is common across all device types.
2215 *
2216 * If SESCTL_CSEL is set, then PRDFAIL, DISABLE and RSTSWAP
2217 * are checked, otherwise bits that are specific to the device
2218 * type in the other 3 bytes of cstat or checked.
2219 */
2220#define SESCTL_CSEL 0x80
2221#define SESCTL_PRDFAIL 0x40
2222#define SESCTL_DISABLE 0x20
2223#define SESCTL_RSTSWAP 0x10
2224
2225/* Control bits, Array Device Slot Elements, byte 1 */
2226#define SESCTL_RQSOK 0x80 /* RQST OK */
2227#define SESCTL_RQSRSV 0x40 /* RQST RSVD DEVICE */
2228#define SESCTL_RQSSPR 0x20 /* RQST HOT SPARE */
2229#define SESCTL_RQSCCH 0x10 /* RQST CONS CHECK */
2230#define SESCTL_RQSCRA 0x08 /* RQST IN CRIT ARRAY */
2231#define SESCTL_RQSFAA 0x04 /* RQST IN FAILED ARRAY */
2232#define SESCTL_RQSRR 0x02 /* RQST REBUI/REMAP */
2233#define SESCTL_RQSRRA 0x01 /* RQST R/R ABORT */
2234/* Control bits, [Array] Device Slot Elements, byte 2 */
2235#define SESCTL_RQSACT 0x80 /* RQST ACTIVE */
2236#define SESCTL_DRVLCK 0x40 /* DO NOT REMOVE */
2237#define SESCTL_RQSMSN 0x10 /* RQST MISSING */
2238#define SESCTL_RQSINS 0x08 /* RQST INSERT */
2239#define SESCTL_RQSRMV 0x04 /* RQST REMOVE */
2240#define SESCTL_RQSID 0x02 /* RQST IDENT */
2241/* Control bits, [Array] Device Slot Elements, byte 3 */
2242#define SESCTL_RQSFLT 0x20 /* RQST FAULT */
2243#define SESCTL_DEVOFF 0x10 /* DEVICE OFF */
2244#define SESCTL_ENBYPA 0x08 /* ENABLE BYP A */
2245#define SESCTL_ENBYPB 0x04 /* ENABLE BYP B */
2246
2247/* Control bits, Generic, byte 3 */
2248#define SESCTL_RQSTFAIL 0x40
2249#define SESCTL_RQSTON 0x20
2250
2251/*
2252 * Getting text for an object type is a little
2253 * trickier because it's string data that can
2254 * go up to 64 KBytes. Build this union and
2255 * fill the obj_id with the id of the object who's
2256 * help text you want, and if text is available,
2257 * obj_text will be filled in, null terminated.
2258 */
2259
2260typedef union {
2261 unsigned int obj_id;
2262 char obj_text[1];
2263} ses_hlptxt;
2264
2265/*============================================================================*/
2267 uint8_t reserved[2];
2268 uint8_t length[2];
2269};
2270
2271/*
2272 * SES v2 r20 6.1.13 - Element Additional Status diagnostic page
2273 * Tables 26-28 (general), 29-32 (FC), 33-41 (SAS)
2274 *
2275 * Protocol identifier uses definitions in scsi_all.h;
2276 * SPSP_PROTO_FC, SPSP_PROTO_SAS are the only ones used here.
2277 */
2278
2280 uint8_t num_phys;
2281 uint8_t reserved[2];
2283 uint8_t node_name[8];
2284};
2285
2287 uint8_t num_phys;
2288 uint8_t reserved;
2289 uint8_t node_name[8];
2290};
2291
2293 uint8_t num_phys;
2294};
2295
2300};
2301
2305#define SES_FC_PORT_BYPASS_UNBYPASSED 0x00
2306
2307#define SES_FC_PORT_BYPASS_LINKFAIL_RATE_TOO_HIGH 0x10
2308#define SES_FC_PORT_BYPASS_SYNC_LOSS_RATE_TOO_HIGH 0x11
2309#define SES_FC_PORT_BYPASS_SIGNAL_LOSS_RATE_TOO_HIGH 0x12
2310#define SES_FC_PORT_BYPASS_SEQPROTO_ERR_RATE_TOO_HIGH 0x13
2311#define SES_FC_PORT_BYPASS_INVAL_XMIT_RATE_TOO_HIGH 0x14
2312#define SES_FC_PORT_BYPASS_CRC_ERR_RATE_TOO_HIGH 0x15
2313
2314#define SES_FC_PORT_BYPASS_ERR_RATE_RESERVED_BEGIN 0x16
2315#define SES_FC_PORT_BYPASS_ERR_RATE_RESERVED_END 0x1F
2316
2317#define SES_FC_PORT_BYPASS_LINKFAIL_COUNT_TOO_HIGH 0x20
2318#define SES_FC_PORT_BYPASS_SYNC_LOSS_COUNT_TOO_HIGH 0x21
2319#define SES_FC_PORT_BYPASS_SIGNAL_LOSS_COUNT_TOO_HIGH 0x22
2320#define SES_FC_PORT_BYPASS_SEQPROTO_ERR_COUNT_TOO_HIGH 0x23
2321#define SES_FC_PORT_BYPASS_INVAL_XMIT_COUNT_TOO_HIGH 0x24
2322#define SES_FC_PORT_BYPASS_CRC_ERR_COUNT_TOO_HIGH 0x25
2323
2324#define SES_FC_PORT_BYPASS_ERR_COUNT_RESERVED_BEGIN 0x26
2325#define SES_FC_PORT_BYPASS_ERR_COUNT_RESERVED_END 0x2F
2326
2327#define SES_FC_PORT_BYPASS_RESERVED_BEGIN 0x30
2328#define SES_FC_PORT_BYPASS_RESERVED_END 0xBF
2329
2330#define SES_FC_PORT_BYPASS_VENDOR_SPECIFIC_BEGIN 0xC0
2331#define SES_FC_PORT_BYPASS_VENDOR_SPECIFIC_END 0xFF
2333 uint8_t n_port_id[3];
2334 uint8_t n_port_name[8];
2335};
2336
2338 uint8_t byte0;
2339 /*
2340 * uint8_t reserved0 : 1,
2341 * uint8_t device_type : 3,
2342 * uint8_t reserved1 : 4;
2343 */
2344
2345 uint8_t reserved0;
2346
2347 /* Bit positions for initiator and target port protocols */
2348#define SES_SASOBJ_DEV_PHY_SMP 0x2
2349#define SES_SASOBJ_DEV_PHY_STP 0x4
2350#define SES_SASOBJ_DEV_PHY_SSP 0x8
2351 /* Select all of the above protocols */
2352#define SES_SASOBJ_DEV_PHY_PROTOMASK 0xe
2354 /*
2355 * uint8_t reserved0 : 4,
2356 * uint8_t ssp : 1,
2357 * uint8_t stp : 1,
2358 * uint8_t smp : 1,
2359 * uint8_t reserved1 : 3;
2360 */
2362 /*
2363 * uint8_t sata_port_selector : 1,
2364 * uint8_t reserved : 3,
2365 * uint8_t ssp : 1,
2366 * uint8_t stp : 1,
2367 * uint8_t smp : 1,
2368 * uint8_t sata_device : 1;
2369 */
2370 uint8_t parent_addr[8]; /* SAS address of parent */
2371 uint8_t phy_addr[8]; /* SAS address of this phy */
2372 uint8_t phy_id;
2373 uint8_t reserved1[7];
2374};
2375#ifdef _KERNEL
2379#endif /* _KERNEL */
2380
2384};
2385
2387 uint8_t phy_id;
2388 uint8_t reserved;
2391 uint8_t phy_addr[8];
2392};
2393
2395 uint8_t num_phys;
2396 uint8_t byte1;
2397 /*
2398 * uint8_t descriptor_type : 2,
2399 * uint8_t reserved : 5,
2400 * uint8_t not_all_phys : 1;
2401 */
2402#define SES_SASOBJ_TYPE0_NOT_ALL_PHYS(obj) \
2403 ((obj)->byte1 & 0x1)
2404};
2405
2408 uint8_t reserved;
2410};
2411
2413 uint8_t num_phys;
2414 uint8_t byte1;
2415 /*
2416 * uint8_t descriptor_type : 2,
2417 * uint8_t reserved : 6;
2418 */
2419 uint8_t reserved[2];
2420 uint8_t sas_addr[8];
2421};
2422
2424 uint8_t num_phys;
2425 uint8_t byte1;
2426 /*
2427 * uint8_t descriptor_type : 2,
2428 * uint8_t reserved : 6;
2429 */
2430 uint8_t reserved[2];
2431};
2432
2433/* NB: This is only usable for as long as the headers happen to match */
2435 uint8_t num_phys;
2436 uint8_t byte1;
2437 /*
2438 * uint8_t descriptor_type : 2,
2439 * uint8_t descr_specific : 6;
2440 */
2441#define SES_SASOBJ_TYPE_SLOT 0
2442#define SES_SASOBJ_TYPE_OTHER 1
2443};
2444
2451};
2454
2455/*
2456 * This structure for SPSP_PROTO_ATA is not defined by SES specs,
2457 * but purely my own design to make AHCI EM interoperate with SES.
2458 * Since no other software I know can talk to SEMB, and we do not
2459 * expose this this outside, it should be safe to do what we want.
2460 */
2462 uint8_t bus[4];
2463 uint8_t target[4];
2464};
2465
2467 uint8_t byte0;
2468 /*
2469 * uint8_t invalid : 1,
2470 * uint8_t reserved : 2,
2471 * uint8_t eip : 1,
2472 * uint8_t proto_id : 4;
2473 */
2474 uint8_t length;
2475};
2479
2482 uint8_t byte2;
2483#define SES_ADDL_EIP_EIIOE_MASK 3
2484#define SES_ADDL_EIP_EIIOE_SES2 0
2485#define SES_ADDL_EIP_EIIOE_GLOB 1
2486#define SES_ADDL_EIP_EIIOE_IND 2
2487#define SES_ADDL_EIP_EIIOE_MIX 3
2488#define SES_ADDL_EIP_EIIOE_EI_GLOB(x) \
2489 (((x) & SES_ADDL_EIP_EIIOE_MASK) == SES_ADDL_EIP_EIIOE_GLOB)
2491 /* NB: This define (currently) applies to all eip=1 headers */
2492#define SES_EIP_HDR_EXTRA_LEN 2
2493};
2494
2498};
2499
2503};
2504
2505/*============================= Namespace Cleanup ============================*/
2506#undef GEN_HDR_ACCESSORS
2507#undef GEN_ACCESSORS
2508#undef GEN_HDR_SETTER
2509#undef GEN_HDR_GETTER
2510#undef GEN_SETTER
2511#undef GEN_GETTER
2512#undef MK_ENUM
2513
2514#endif /* _SCSI_SES_H_ */
static __inline void swap(cam_pinfo **queue_array, int i, int j)
Definition: cam_queue.c:319
static __inline uint32_t scsi_2btoul(const uint8_t *bytes)
Definition: scsi_all.h:4415
ses_status_array_dev_slot_field_data
Definition: scsi_ses.h:1098
@ SES_STATUS_ARRAY_DEV_SLOT_IN_FAILED_ARRAY_MASK
Definition: scsi_ses.h:1120
@ SES_STATUS_ARRAY_DEV_SLOT_HOT_SPARE_BYTE
Definition: scsi_ses.h:1107
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_ABORT_SHIFT
Definition: scsi_ses.h:1129
@ SES_STATUS_ARRAY_DEV_SLOT_IN_CRIT_ARRAY_BYTE
Definition: scsi_ses.h:1115
@ SES_STATUS_ARRAY_DEV_SLOT_IN_FAILED_ARRAY_SHIFT
Definition: scsi_ses.h:1121
@ SES_STATUS_ARRAY_DEV_SLOT_IN_CRIT_ARRAY_SHIFT
Definition: scsi_ses.h:1117
@ SES_STATUS_ARRAY_DEV_SLOT_CONS_CHECK_MASK
Definition: scsi_ses.h:1112
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_SHIFT
Definition: scsi_ses.h:1125
@ SES_STATUS_ARRAY_DEV_SLOT_HOT_SPARE_MASK
Definition: scsi_ses.h:1108
@ SES_STATUS_ARRAY_DEV_SLOT_IN_FAILED_ARRAY_BYTE
Definition: scsi_ses.h:1119
@ SES_STATUS_ARRAY_DEV_SLOT_RSVD_DEVICE_MASK
Definition: scsi_ses.h:1104
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_BYTE
Definition: scsi_ses.h:1123
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_MASK
Definition: scsi_ses.h:1124
@ SES_STATUS_ARRAY_DEV_SLOT_OK_SHIFT
Definition: scsi_ses.h:1101
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_ABORT_MASK
Definition: scsi_ses.h:1128
@ SES_STATUS_ARRAY_DEV_SLOT_RSVD_DEVICE_BYTE
Definition: scsi_ses.h:1103
@ SES_STATUS_ARRAY_DEV_SLOT_RSVD_DEVICE_SHIFT
Definition: scsi_ses.h:1105
@ SES_STATUS_ARRAY_DEV_SLOT_REBUILD_REMAP_ABORT_BYTE
Definition: scsi_ses.h:1127
@ SES_STATUS_ARRAY_DEV_SLOT_OK_MASK
Definition: scsi_ses.h:1100
@ SES_STATUS_ARRAY_DEV_SLOT_IN_CRIT_ARRAY_MASK
Definition: scsi_ses.h:1116
@ SES_STATUS_ARRAY_DEV_SLOT_OK_BYTE
Definition: scsi_ses.h:1099
@ SES_STATUS_ARRAY_DEV_SLOT_HOT_SPARE_SHIFT
Definition: scsi_ses.h:1109
@ SES_STATUS_ARRAY_DEV_SLOT_CONS_CHECK_SHIFT
Definition: scsi_ses.h:1113
@ SES_STATUS_ARRAY_DEV_SLOT_CONS_CHECK_BYTE
Definition: scsi_ses.h:1111
#define GEN_SES_STATUS_COMM_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1802
ses_ctrl_enclosure_field_data
Definition: scsi_ses.h:625
@ SES_CTRL_ENCLOSURE_POWER_OFF_DURATION_BYTE
Definition: scsi_ses.h:642
@ SES_CTRL_ENCLOSURE_POWER_OFF_DURATION_MANUAL
Definition: scsi_ses.h:646
@ SES_CTRL_ENCLOSURE_RQST_IDENT_SHIFT
Definition: scsi_ses.h:628
@ SES_CTRL_ENCLOSURE_RQST_WARN_SHIFT
Definition: scsi_ses.h:654
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_MASK
Definition: scsi_ses.h:631
@ SES_CTRL_ENCLOSURE_RQST_IDENT_MASK
Definition: scsi_ses.h:627
@ SES_CTRL_ENCLOSURE_RQST_WARN_MASK
Definition: scsi_ses.h:653
@ SES_CTRL_ENCLOSURE_RQST_FAIL_SHIFT
Definition: scsi_ses.h:650
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_NONE
Definition: scsi_ses.h:633
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_DELAY_MASK
Definition: scsi_ses.h:638
@ SES_CTRL_ENCLOSURE_RQST_WARN_BYTE
Definition: scsi_ses.h:652
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_DELAY_SHIFT
Definition: scsi_ses.h:639
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_CANCEL
Definition: scsi_ses.h:635
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_SHIFT
Definition: scsi_ses.h:632
@ SES_CTRL_ENCLOSURE_RQST_FAIL_MASK
Definition: scsi_ses.h:649
@ SES_CTRL_ENCLOSURE_POWER_OFF_DURATION_MASK
Definition: scsi_ses.h:643
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_DELAY_BYTE
Definition: scsi_ses.h:637
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_DELAY_MAX
Definition: scsi_ses.h:640
@ SES_CTRL_ENCLOSURE_RQST_IDENT_BYTE
Definition: scsi_ses.h:626
@ SES_CTRL_ENCLOSURE_RQST_FAIL_BYTE
Definition: scsi_ses.h:648
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_AFTER_DELAY
Definition: scsi_ses.h:634
@ SES_CTRL_ENCLOSURE_POWER_OFF_DURATION_SHIFT
Definition: scsi_ses.h:644
@ SES_CTRL_ENCLOSURE_POWER_CYCLE_RQST_BYTE
Definition: scsi_ses.h:630
@ SES_CTRL_ENCLOSURE_POWER_OFF_DURATION_MAX_AUTO
Definition: scsi_ses.h:645
ses_ctrl_nv_cache_field_data
Definition: scsi_ses.h:520
@ SES_CTRL_NV_CACHE_RQST_IDENT_MASK
Definition: scsi_ses.h:522
@ SES_CTRL_NV_CACHE_RQST_IDENT_BYTE
Definition: scsi_ses.h:521
@ SES_CTRL_NV_CACHE_RQST_IDENT_SHIFT
Definition: scsi_ses.h:523
@ SES_CTRL_NV_CACHE_RQST_FAIL_SHIFT
Definition: scsi_ses.h:527
@ SES_CTRL_NV_CACHE_RQST_FAIL_BYTE
Definition: scsi_ses.h:525
@ SES_CTRL_NV_CACHE_RQST_FAIL_MASK
Definition: scsi_ses.h:526
#define GEN_SES_STATUS_KEY_PAD_ENTRY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1664
#define GEN_SES_CTRL_DEV_SLOT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:236
#define GEN_SES_STATUS_TEMP_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1321
ses_ctrl_scsi_port_or_xcvr_field_data
Definition: scsi_ses.h:673
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_IDENT_MASK
Definition: scsi_ses.h:675
@ SES_CTRL_SCSI_PORT_OR_XCVR_DISABLE_BYTE
Definition: scsi_ses.h:682
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_FAIL_MASK
Definition: scsi_ses.h:679
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_FAIL_SHIFT
Definition: scsi_ses.h:680
@ SES_CTRL_SCSI_PORT_OR_XCVR_DISABLE_SHIFT
Definition: scsi_ses.h:684
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_FAIL_BYTE
Definition: scsi_ses.h:678
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_IDENT_SHIFT
Definition: scsi_ses.h:676
@ SES_CTRL_SCSI_PORT_OR_XCVR_RQST_IDENT_BYTE
Definition: scsi_ses.h:674
@ SES_CTRL_SCSI_PORT_OR_XCVR_DISABLE_MASK
Definition: scsi_ses.h:683
#define GEN_SES_CTRL_NV_CACHE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:530
#define GEN_SES_CTRL_CURRENT_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:779
#define GEN_SES_STATUS_SIMPlE_SUBSES_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1968
ses_status_door_lock_field_data
Definition: scsi_ses.h:1338
@ SES_STATUS_DOOR_LOCK_FAIL_SHIFT
Definition: scsi_ses.h:1345
@ SES_STATUS_DOOR_LOCK_IDENT_SHIFT
Definition: scsi_ses.h:1341
@ SES_STATUS_DOOR_LOCK_FAIL_MASK
Definition: scsi_ses.h:1344
@ SES_STATUS_DOOR_LOCK_UNLOCKED_SHIFT
Definition: scsi_ses.h:1349
@ SES_STATUS_DOOR_LOCK_UNLOCKED_MASK
Definition: scsi_ses.h:1348
@ SES_STATUS_DOOR_LOCK_IDENT_BYTE
Definition: scsi_ses.h:1339
@ SES_STATUS_DOOR_LOCK_FAIL_BYTE
Definition: scsi_ses.h:1343
@ SES_STATUS_DOOR_LOCK_IDENT_MASK
Definition: scsi_ses.h:1340
@ SES_STATUS_DOOR_LOCK_UNLOCKED_BYTE
Definition: scsi_ses.h:1347
ses_status_audible_alarm_field_data
Definition: scsi_ses.h:1365
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_INFO
Definition: scsi_ses.h:1389
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_NON_CRIT
Definition: scsi_ses.h:1390
@ SES_STATUS_AUDIBLE_ALARM_MUTED_SHIFT
Definition: scsi_ses.h:1380
@ SES_STATUS_AUDIBLE_ALARM_FAIL_SHIFT
Definition: scsi_ses.h:1372
@ SES_STATUS_AUDIBLE_ALARM_RQST_MUTE_BYTE
Definition: scsi_ses.h:1374
@ SES_STATUS_AUDIBLE_ALARM_MUTED_BYTE
Definition: scsi_ses.h:1378
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_SHIFT
Definition: scsi_ses.h:1388
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_UNRECOV
Definition: scsi_ses.h:1392
@ SES_STATUS_AUDIBLE_ALARM_RQST_MUTE_SHIFT
Definition: scsi_ses.h:1376
@ SES_STATUS_AUDIBLE_ALARM_IDENT_SHIFT
Definition: scsi_ses.h:1368
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_CRIT
Definition: scsi_ses.h:1391
@ SES_STATUS_AUDIBLE_ALARM_FAIL_MASK
Definition: scsi_ses.h:1371
@ SES_STATUS_AUDIBLE_ALARM_RQST_MUTE_MASK
Definition: scsi_ses.h:1375
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_BYTE
Definition: scsi_ses.h:1386
@ SES_STATUS_AUDIBLE_ALARM_REMIND_MASK
Definition: scsi_ses.h:1383
@ SES_STATUS_AUDIBLE_ALARM_TONE_INDICATOR_MASK
Definition: scsi_ses.h:1387
@ SES_STATUS_AUDIBLE_ALARM_REMIND_SHIFT
Definition: scsi_ses.h:1384
@ SES_STATUS_AUDIBLE_ALARM_IDENT_MASK
Definition: scsi_ses.h:1367
@ SES_STATUS_AUDIBLE_ALARM_MUTED_MASK
Definition: scsi_ses.h:1379
@ SES_STATUS_AUDIBLE_ALARM_FAIL_BYTE
Definition: scsi_ses.h:1370
@ SES_STATUS_AUDIBLE_ALARM_IDENT_BYTE
Definition: scsi_ses.h:1366
@ SES_STATUS_AUDIBLE_ALARM_REMIND_BYTE
Definition: scsi_ses.h:1382
#define GEN_SES_STATUS_DISPLAY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1641
#define GEN_SES_STATUS_DOOR_LOCK_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1352
#define GEN_SES_STATUS_DEV_SLOT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1071
#define GEN_SES_CTRL_SCSI_PORT_OR_XCVR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:687
ses_status_scsi_target_port_field_data
Definition: scsi_ses.h:1892
@ SES_STATUS_TARGET_PORT_FAIL_MASK
Definition: scsi_ses.h:1898
@ SES_STATUS_TARGET_PORT_FAIL_SHIFT
Definition: scsi_ses.h:1899
@ SES_STATUS_TARGET_PORT_IDENT_BYTE
Definition: scsi_ses.h:1893
@ SES_STATUS_TARGET_PORT_REPORT_BYTE
Definition: scsi_ses.h:1901
@ SES_STATUS_TARGET_PORT_IDENT_SHIFT
Definition: scsi_ses.h:1895
@ SES_STATUS_TARGET_PORT_ENABLED_SHIFT
Definition: scsi_ses.h:1907
@ SES_STATUS_TARGET_PORT_REPORT_SHIFT
Definition: scsi_ses.h:1903
@ SES_STATUS_TARGET_PORT_REPORT_MASK
Definition: scsi_ses.h:1902
@ SES_STATUS_TARGET_PORT_IDENT_MASK
Definition: scsi_ses.h:1894
@ SES_STATUS_TARGET_PORT_ENABLED_BYTE
Definition: scsi_ses.h:1905
@ SES_STATUS_TARGET_PORT_ENABLED_MASK
Definition: scsi_ses.h:1906
@ SES_STATUS_TARGET_PORT_FAIL_BYTE
Definition: scsi_ses.h:1897
#define GEN_SES_CTRL_COOLING_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:365
ses_ctrl_scc_electronics_field_data
Definition: scsi_ses.h:497
@ SES_CTRL_SCC_ELECTRONICS_RQST_FAIL_MASK
Definition: scsi_ses.h:503
@ SES_CTRL_SCC_ELECTRONICS_RQST_IDENT_MASK
Definition: scsi_ses.h:499
@ SES_CTRL_SCC_ELECTRONICS_RQST_IDENT_SHIFT
Definition: scsi_ses.h:500
@ SES_CTRL_SCC_ELECTRONICS_RQST_IDENT_BYTE
Definition: scsi_ses.h:498
@ SES_CTRL_SCC_ELECTRONICS_RQST_FAIL_BYTE
Definition: scsi_ses.h:502
@ SES_CTRL_SCC_ELECTRONICS_RQST_FAIL_SHIFT
Definition: scsi_ses.h:504
#define GEN_SES_CTRL_SAS_EXPANDER_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:880
#define GEN_SES_CTRL_DOOR_LOCK_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:415
#define GEN_SES_STATUS_CURRENT_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1877
#define GEN_SES_CTRL_KEY_PAD_ENTRY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:613
ses_status_invalid_op_field_data
Definition: scsi_ses.h:1516
@ SES_STATUS_INVALID_OP_REASON_PF_ERROR_BIT_NUMBER_MASK
Definition: scsi_ses.h:1529
@ SES_STATUS_INVALID_OP_REASON_TYPE_SHIFT
Definition: scsi_ses.h:1519
@ SES_STATUS_INVALID_OP_REASON_TYPE_PC_ERROR
Definition: scsi_ses.h:1520
@ SES_STATUS_INVALID_OP_REASON_PC_ERROR_PC_NOT_SUPPORTED_SHIFT
Definition: scsi_ses.h:1526
@ SES_STATUS_INVALID_OP_REASON_TYPE_BYTE
Definition: scsi_ses.h:1517
@ SES_STATUS_INVALID_OP_REASON_TYPE_MASK
Definition: scsi_ses.h:1518
@ SES_STATUS_INVALID_OP_REASON_TYPE_PF_ERROR
Definition: scsi_ses.h:1521
@ SES_STATUS_INVALID_OP_REASON_TYPE_VS_ERROR
Definition: scsi_ses.h:1522
@ SES_STATUS_INVALID_OP_REASON_PF_ERROR_BIT_NUMBER_SHIFT
Definition: scsi_ses.h:1530
@ SES_STATUS_INVALID_OP_REASON_PC_ERROR_PC_NOT_SUPPORTED_BYTE
Definition: scsi_ses.h:1524
@ SES_STATUS_INVALID_OP_REASON_PC_ERROR_PC_NOT_SUPPORTED_MASK
Definition: scsi_ses.h:1525
@ SES_STATUS_INVALID_OP_REASON_PF_ERROR_BIT_NUMBER_BYTE
Definition: scsi_ses.h:1528
#define GEN_SES_STATUS_INVALID_OP_REASON_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1533
#define GEN_SES_CTRL_ENCLOSURE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:657
#define GEN_SES_CTRL_DISPLAY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:590
ses_status_current_sensor_field_data
Definition: scsi_ses.h:1859
@ SES_STATUS_CURRENT_SENSOR_CRIT_OVER_SHIFT
Definition: scsi_ses.h:1874
@ SES_STATUS_CURRENT_SENSOR_CRIT_OVER_BYTE
Definition: scsi_ses.h:1872
@ SES_STATUS_CURRENT_SENSOR_FAIL_SHIFT
Definition: scsi_ses.h:1866
@ SES_STATUS_CURRENT_SENSOR_WARN_OVER_MASK
Definition: scsi_ses.h:1869
@ SES_STATUS_CURRENT_SENSOR_IDENT_BYTE
Definition: scsi_ses.h:1860
@ SES_STATUS_CURRENT_SENSOR_IDENT_MASK
Definition: scsi_ses.h:1861
@ SES_STATUS_CURRENT_SENSOR_FAIL_BYTE
Definition: scsi_ses.h:1864
@ SES_STATUS_CURRENT_SENSOR_IDENT_SHIFT
Definition: scsi_ses.h:1862
@ SES_STATUS_CURRENT_SENSOR_WARN_OVER_BYTE
Definition: scsi_ses.h:1868
@ SES_STATUS_CURRENT_SENSOR_CRIT_OVER_MASK
Definition: scsi_ses.h:1873
@ SES_STATUS_CURRENT_SENSOR_FAIL_MASK
Definition: scsi_ses.h:1865
@ SES_STATUS_CURRENT_SENSOR_WARN_OVER_SHIFT
Definition: scsi_ses.h:1870
ses_status_scsi_port_or_xcvr_field_data
Definition: scsi_ses.h:1727
@ SES_STATUS_SCSI_PORT_OR_XCVR_FAIL_BYTE
Definition: scsi_ses.h:1732
@ SES_STATUS_SCSI_PORT_OR_XCVR_FAIL_MASK
Definition: scsi_ses.h:1733
@ SES_STATUS_SCSI_PORT_OR_XCVR_LOL_SHIFT
Definition: scsi_ses.h:1746
@ SES_STATUS_SCSI_PORT_OR_XCVR_IDENT_BYTE
Definition: scsi_ses.h:1728
@ SES_STATUS_SCSI_PORT_OR_XCVR_DISABLED_MASK
Definition: scsi_ses.h:1741
@ SES_STATUS_SCSI_PORT_OR_XCVR_XMIT_FAIL_SHIFT
Definition: scsi_ses.h:1750
@ SES_STATUS_SCSI_PORT_OR_XCVR_LOL_MASK
Definition: scsi_ses.h:1745
@ SES_STATUS_SCSI_PORT_OR_XCVR_IDENT_SHIFT
Definition: scsi_ses.h:1730
@ SES_STATUS_SCSI_PORT_OR_XCVR_DISABLED_BYTE
Definition: scsi_ses.h:1740
@ SES_STATUS_SCSI_PORT_OR_XCVR_FAIL_SHIFT
Definition: scsi_ses.h:1734
@ SES_STATUS_SCSI_PORT_OR_XCVR_REPORT_MASK
Definition: scsi_ses.h:1737
@ SES_STATUS_SCSI_PORT_OR_XCVR_XMIT_FAIL_MASK
Definition: scsi_ses.h:1749
@ SES_STATUS_SCSI_PORT_OR_XCVR_IDENT_MASK
Definition: scsi_ses.h:1729
@ SES_STATUS_SCSI_PORT_OR_XCVR_XMIT_FAIL_BYTE
Definition: scsi_ses.h:1748
@ SES_STATUS_SCSI_PORT_OR_XCVR_LOL_BYTE
Definition: scsi_ses.h:1744
@ SES_STATUS_SCSI_PORT_OR_XCVR_DISABLED_SHIFT
Definition: scsi_ses.h:1742
@ SES_STATUS_SCSI_PORT_OR_XCVR_REPORT_BYTE
Definition: scsi_ses.h:1736
@ SES_STATUS_SCSI_PORT_OR_XCVR_REPORT_SHIFT
Definition: scsi_ses.h:1738
#define GEN_SES_STATUS_ECC_ELECTRONICS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1429
#define GEN_SES_CTRL_ARRAY_DEV_SLOT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:296
static int ses_status_cooling_get_actual_fan_speed(struct ses_status_cooling *elem)
Definition: scsi_ses.h:1279
#define GEN_SES_CTRL_LANGUAGE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:708
ses_status_voltage_sensor_field_data
Definition: scsi_ses.h:1816
@ SES_STATUS_VOLTAGE_SENSOR_WARN_OVER_MASK
Definition: scsi_ses.h:1826
@ SES_STATUS_VOLTAGE_SENSOR_FAIL_SHIFT
Definition: scsi_ses.h:1823
@ SES_STATUS_VOLTAGE_SENSOR_IDENT_BYTE
Definition: scsi_ses.h:1817
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_UNDER_BYTE
Definition: scsi_ses.h:1837
@ SES_STATUS_VOLTAGE_SENSOR_WARN_OVER_SHIFT
Definition: scsi_ses.h:1827
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_UNDER_MASK
Definition: scsi_ses.h:1838
@ SES_STATUS_VOLTAGE_SENSOR_IDENT_MASK
Definition: scsi_ses.h:1818
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_OVER_SHIFT
Definition: scsi_ses.h:1835
@ SES_STATUS_VOLTAGE_SENSOR_WARN_UNDER_MASK
Definition: scsi_ses.h:1830
@ SES_STATUS_VOLTAGE_SENSOR_WARN_UNDER_SHIFT
Definition: scsi_ses.h:1831
@ SES_STATUS_VOLTAGE_SENSOR_FAIL_MASK
Definition: scsi_ses.h:1822
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_OVER_BYTE
Definition: scsi_ses.h:1833
@ SES_STATUS_VOLTAGE_SENSOR_IDENT_SHIFT
Definition: scsi_ses.h:1819
@ SES_STATUS_VOLTAGE_SENSOR_WARN_OVER_BYTE
Definition: scsi_ses.h:1825
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_OVER_MASK
Definition: scsi_ses.h:1834
@ SES_STATUS_VOLTAGE_SENSOR_CRIT_UNDER_SHIFT
Definition: scsi_ses.h:1839
@ SES_STATUS_VOLTAGE_SENSOR_WARN_UNDER_BYTE
Definition: scsi_ses.h:1829
@ SES_STATUS_VOLTAGE_SENSOR_FAIL_BYTE
Definition: scsi_ses.h:1821
ses_ctrl_ecc_electronics_field_data
Definition: scsi_ses.h:469
@ SES_CTRL_ECC_ELECTRONICS_RQST_IDENT_SHIFT
Definition: scsi_ses.h:472
@ SES_CTRL_ECC_ELECTRONICS_SELECT_ELEMENT_MASK
Definition: scsi_ses.h:479
@ SES_CTRL_ECC_ELECTRONICS_SELECT_ELEMENT_SHIFT
Definition: scsi_ses.h:480
@ SES_CTRL_ECC_ELECTRONICS_RQST_FAIL_SHIFT
Definition: scsi_ses.h:476
@ SES_CTRL_ECC_ELECTRONICS_RQST_FAIL_BYTE
Definition: scsi_ses.h:474
@ SES_CTRL_ECC_ELECTRONICS_RQST_IDENT_MASK
Definition: scsi_ses.h:471
@ SES_CTRL_ECC_ELECTRONICS_SELECT_ELEMENT_BYTE
Definition: scsi_ses.h:478
@ SES_CTRL_ECC_ELECTRONICS_RQST_FAIL_MASK
Definition: scsi_ses.h:475
@ SES_CTRL_ECC_ELECTRONICS_RQST_IDENT_BYTE
Definition: scsi_ses.h:470
ses_ctrl_voltage_sensor_field_data
Definition: scsi_ses.h:746
@ SES_CTRL_VOLTAGE_SENSOR_RQST_IDENT_BYTE
Definition: scsi_ses.h:747
@ SES_CTRL_VOLTAGE_SENSOR_RQST_FAIL_MASK
Definition: scsi_ses.h:752
@ SES_CTRL_VOLTAGE_SENSOR_RQST_IDENT_SHIFT
Definition: scsi_ses.h:749
@ SES_CTRL_VOLTAGE_SENSOR_RQST_FAIL_SHIFT
Definition: scsi_ses.h:753
@ SES_CTRL_VOLTAGE_SENSOR_RQST_FAIL_BYTE
Definition: scsi_ses.h:751
@ SES_CTRL_VOLTAGE_SENSOR_RQST_IDENT_MASK
Definition: scsi_ses.h:748
ses_ctrl_dev_slot_field_data
Definition: scsi_ses.h:195
@ SES_CTRL_DEV_SLOT_RQST_FAULT_MASK
Definition: scsi_ses.h:221
@ SES_CTRL_DEV_SLOT_RQST_FAULT_BYTE
Definition: scsi_ses.h:220
@ SES_CTRL_DEV_SLOT_RQST_INSERT_BYTE
Definition: scsi_ses.h:208
@ SES_CTRL_DEV_SLOT_RQST_INSERT_SHIFT
Definition: scsi_ses.h:210
@ SES_CTRL_DEV_SLOT_RQST_ACTIVE_SHIFT
Definition: scsi_ses.h:198
@ SES_CTRL_DEV_SLOT_RQST_MISSING_MASK
Definition: scsi_ses.h:205
@ SES_CTRL_DEV_SLOT_RQST_MISSING_SHIFT
Definition: scsi_ses.h:206
@ SES_CTRL_DEV_SLOT_RQST_MISSING_BYTE
Definition: scsi_ses.h:204
@ SES_CTRL_DEV_SLOT_RQST_IDENT_SHIFT
Definition: scsi_ses.h:218
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_B_BYTE
Definition: scsi_ses.h:232
@ SES_CTRL_DEV_SLOT_RQST_REMOVE_SHIFT
Definition: scsi_ses.h:214
@ SES_CTRL_DEV_SLOT_RQST_ACTIVE_MASK
Definition: scsi_ses.h:197
@ SES_CTRL_DEV_SLOT_RQST_FAULT_SHIFT
Definition: scsi_ses.h:222
@ SES_CTRL_DEV_SLOT_RQST_ACTIVE_BYTE
Definition: scsi_ses.h:196
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_A_SHIFT
Definition: scsi_ses.h:230
@ SES_CTRL_DEV_SLOT_RQST_IDENT_BYTE
Definition: scsi_ses.h:216
@ SES_CTRL_DEV_SLOT_RQST_REMOVE_MASK
Definition: scsi_ses.h:213
@ SES_CTRL_DEV_SLOT_RQST_INSERT_MASK
Definition: scsi_ses.h:209
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_A_MASK
Definition: scsi_ses.h:229
@ SES_CTRL_DEV_SLOT_DEVICE_OFF_MASK
Definition: scsi_ses.h:225
@ SES_CTRL_DEV_SLOT_DO_NOT_REMOVE_SHIFT
Definition: scsi_ses.h:202
@ SES_CTRL_DEV_SLOT_DO_NOT_REMOVE_BYTE
Definition: scsi_ses.h:200
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_A_BYTE
Definition: scsi_ses.h:228
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_B_SHIFT
Definition: scsi_ses.h:234
@ SES_CTRL_DEV_SLOT_RQST_REMOVE_BYTE
Definition: scsi_ses.h:212
@ SES_CTRL_DEV_SLOT_DEVICE_OFF_BYTE
Definition: scsi_ses.h:224
@ SES_CTRL_DEV_SLOT_ENABLE_BYP_B_MASK
Definition: scsi_ses.h:233
@ SES_CTRL_DEV_SLOT_DO_NOT_REMOVE_MASK
Definition: scsi_ses.h:201
@ SES_CTRL_DEV_SLOT_RQST_IDENT_MASK
Definition: scsi_ses.h:217
@ SES_CTRL_DEV_SLOT_DEVICE_OFF_SHIFT
Definition: scsi_ses.h:226
ses_ctrl_door_lock_field_data
Definition: scsi_ses.h:401
@ SES_CTRL_DOOR_LOCK_UNLOCK_BYTE
Definition: scsi_ses.h:410
@ SES_CTRL_DOOR_LOCK_RQST_FAIL_BYTE
Definition: scsi_ses.h:406
@ SES_CTRL_DOOR_LOCK_UNLOCK_SHIFT
Definition: scsi_ses.h:412
@ SES_CTRL_DOOR_LOCK_RQST_FAIL_MASK
Definition: scsi_ses.h:407
@ SES_CTRL_DOOR_LOCK_RQST_IDENT_MASK
Definition: scsi_ses.h:403
@ SES_CTRL_DOOR_LOCK_RQST_IDENT_SHIFT
Definition: scsi_ses.h:404
@ SES_CTRL_DOOR_LOCK_UNLOCK_MASK
Definition: scsi_ses.h:411
@ SES_CTRL_DOOR_LOCK_RQST_IDENT_BYTE
Definition: scsi_ses.h:402
@ SES_CTRL_DOOR_LOCK_RQST_FAIL_SHIFT
Definition: scsi_ses.h:408
ses_status_enclosure_field_data
Definition: scsi_ses.h:1676
@ SES_STATUS_ENCLOSURE_IDENT_SHIFT
Definition: scsi_ses.h:1679
@ SES_STATUS_ENCLOSURE_TIME_UNTIL_POWER_CYCLE_SHIFT
Definition: scsi_ses.h:1683
@ SES_STATUS_ENCLOSURE_REQUESTED_POWER_OFF_DURATION_MAX_AUTO
Definition: scsi_ses.h:1696
@ SES_STATUS_ENCLOSURE_REQUESTED_WARN_SHIFT
Definition: scsi_ses.h:1705
@ SES_STATUS_ENCLOSURE_IDENT_BYTE
Definition: scsi_ses.h:1677
@ SES_STATUS_ENCLOSURE_REQUESTED_POWER_OFF_DURATION_MANUAL
Definition: scsi_ses.h:1697
@ SES_STATUS_ENCLOSURE_FAIL_SHIFT
Definition: scsi_ses.h:1687
@ SES_STATUS_ENCLOSURE_TIME_UNTIL_POWER_CYCLE_BYTE
Definition: scsi_ses.h:1681
@ SES_STATUS_ENCLOSURE_WARN_SHIFT
Definition: scsi_ses.h:1691
@ SES_STATUS_ENCLOSURE_FAIL_BYTE
Definition: scsi_ses.h:1685
@ SES_STATUS_ENCLOSURE_FAIL_MASK
Definition: scsi_ses.h:1686
@ SES_STATUS_ENCLOSURE_IDENT_MASK
Definition: scsi_ses.h:1678
@ SES_STATUS_ENCLOSURE_REQUESTED_POWER_OFF_DURATION_SHIFT
Definition: scsi_ses.h:1695
@ SES_STATUS_ENCLOSURE_WARN_MASK
Definition: scsi_ses.h:1690
@ SES_STATUS_ENCLOSURE_REQUESTED_WARN_BYTE
Definition: scsi_ses.h:1703
@ SES_STATUS_ENCLOSURE_REQUESTED_POWER_OFF_DURATION_BYTE
Definition: scsi_ses.h:1693
@ SES_STATUS_ENCLOSURE_TIME_UNTIL_POWER_CYCLE_MASK
Definition: scsi_ses.h:1682
@ SES_STATUS_ENCLOSURE_REQUESTED_POWER_OFF_DURATION_MASK
Definition: scsi_ses.h:1694
@ SES_STATUS_ENCLOSURE_REQUESTED_FAIL_SHIFT
Definition: scsi_ses.h:1701
@ SES_STATUS_ENCLOSURE_REQUESTED_FAIL_MASK
Definition: scsi_ses.h:1700
@ SES_STATUS_ENCLOSURE_REQUESTED_WARN_MASK
Definition: scsi_ses.h:1704
@ SES_STATUS_ENCLOSURE_WARN_BYTE
Definition: scsi_ses.h:1689
@ SES_STATUS_ENCLOSURE_REQUESTED_FAIL_BYTE
Definition: scsi_ses.h:1699
int ses_elm_sas_dev_phy_sata_dev(struct ses_elm_sas_device_phy *)
Definition: scsi_enc_ses.c:760
ses_status_nv_cache_field_data
Definition: scsi_ses.h:1473
@ SES_STATUS_NV_CACHE_FAIL_BYTE
Definition: scsi_ses.h:1478
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_MASK
Definition: scsi_ses.h:1483
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_MBYTES
Definition: scsi_ses.h:1487
@ SES_STATUS_NV_CACHE_FAIL_MASK
Definition: scsi_ses.h:1479
@ SES_STATUS_NV_CACHE_FAIL_SHIFT
Definition: scsi_ses.h:1480
@ SES_STATUS_NV_CACHE_IDENT_MASK
Definition: scsi_ses.h:1475
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_SHIFT
Definition: scsi_ses.h:1484
@ SES_STATUS_NV_CACHE_IDENT_BYTE
Definition: scsi_ses.h:1474
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_KBYTES
Definition: scsi_ses.h:1486
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_BYTE
Definition: scsi_ses.h:1482
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_GBYTES
Definition: scsi_ses.h:1488
@ SES_STATUS_NV_CACHE_SIZE_MULTIPLIER_BYTES
Definition: scsi_ses.h:1485
@ SES_STATUS_NV_CACHE_IDENT_SHIFT
Definition: scsi_ses.h:1476
static uint8_t * ses_enc_desc_last_byte(struct ses_enc_desc *encdesc)
Definition: scsi_ses.h:120
ses_ctrl_comm_port_field_data
Definition: scsi_ses.h:719
@ SES_CTRL_COMM_PORT_RQST_FAIL_MASK
Definition: scsi_ses.h:725
@ SES_CTRL_COMM_PORT_DISABLE_MASK
Definition: scsi_ses.h:729
@ SES_CTRL_COMM_PORT_DISABLE_SHIFT
Definition: scsi_ses.h:730
@ SES_CTRL_COMM_PORT_DISABLE_BYTE
Definition: scsi_ses.h:728
@ SES_CTRL_COMM_PORT_RQST_FAIL_SHIFT
Definition: scsi_ses.h:726
@ SES_CTRL_COMM_PORT_RQST_IDENT_BYTE
Definition: scsi_ses.h:720
@ SES_CTRL_COMM_PORT_RQST_IDENT_SHIFT
Definition: scsi_ses.h:722
@ SES_CTRL_COMM_PORT_RQST_FAIL_BYTE
Definition: scsi_ses.h:724
@ SES_CTRL_COMM_PORT_RQST_IDENT_MASK
Definition: scsi_ses.h:721
#define GEN_SES_CTRL_VOLTAGE_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:756
ses_status_temp_sensor_field_data
Definition: scsi_ses.h:1291
@ SES_STATUS_TEMP_SENSOR_OT_WARNING_BYTE
Definition: scsi_ses.h:1308
@ SES_STATUS_TEMP_SENSOR_UT_FAILURE_BYTE
Definition: scsi_ses.h:1312
@ SES_STATUS_TEMP_SENSOR_UT_FAILURE_SHIFT
Definition: scsi_ses.h:1314
@ SES_STATUS_TEMP_SENSOR_FAIL_SHIFT
Definition: scsi_ses.h:1298
@ SES_STATUS_TEMP_SENSOR_TEMPERATURE_MASK
Definition: scsi_ses.h:1301
@ SES_STATUS_TEMP_SENSOR_UT_WARNING_BYTE
Definition: scsi_ses.h:1316
@ SES_STATUS_TEMP_SENSOR_IDENT_BYTE
Definition: scsi_ses.h:1292
@ SES_STATUS_TEMP_SENSOR_OT_FAILURE_SHIFT
Definition: scsi_ses.h:1306
@ SES_STATUS_TEMP_SENSOR_OT_WARNING_MASK
Definition: scsi_ses.h:1309
@ SES_STATUS_TEMP_SENSOR_TEMPERATURE_BYTE
Definition: scsi_ses.h:1300
@ SES_STATUS_TEMP_SENSOR_OT_WARNING_SHIFT
Definition: scsi_ses.h:1310
@ SES_STATUS_TEMP_SENSOR_FAIL_MASK
Definition: scsi_ses.h:1297
@ SES_STATUS_TEMP_SENSOR_UT_WARNING_MASK
Definition: scsi_ses.h:1317
@ SES_STATUS_TEMP_SENSOR_IDENT_MASK
Definition: scsi_ses.h:1293
@ SES_STATUS_TEMP_SENSOR_UT_FAILURE_MASK
Definition: scsi_ses.h:1313
@ SES_STATUS_TEMP_SENSOR_IDENT_SHIFT
Definition: scsi_ses.h:1294
@ SES_STATUS_TEMP_SENSOR_OT_FAILURE_BYTE
Definition: scsi_ses.h:1304
@ SES_STATUS_TEMP_SENSOR_OT_FAILURE_MASK
Definition: scsi_ses.h:1305
@ SES_STATUS_TEMP_SENSOR_TEMPERATURE_SHIFT
Definition: scsi_ses.h:1302
@ SES_STATUS_TEMP_SENSOR_UT_WARNING_SHIFT
Definition: scsi_ses.h:1318
@ SES_STATUS_TEMP_SENSOR_FAIL_BYTE
Definition: scsi_ses.h:1296
#define GEN_SES_STATUS_SCC_ELECTRONICS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1458
static uintmax_t ses_status_nv_cache_get_cache_size(struct ses_status_nv_cache *elem)
Definition: scsi_ses.h:1499
ses_status_sas_connector_field_data
Definition: scsi_ses.h:2003
@ SES_STATUS_SAS_CONNECTOR_TYPE_BYTE
Definition: scsi_ses.h:2008
@ SES_STATUS_SAS_CONNECTOR_PHYS_LINK_ALL
Definition: scsi_ses.h:2015
@ SES_STATUS_SAS_CONNECTOR_PHYS_LINK_MASK
Definition: scsi_ses.h:2013
@ SES_STATUS_SAS_CONNECTOR_FAIL_SHIFT
Definition: scsi_ses.h:2019
@ SES_STATUS_SAS_CONNECTOR_IDENT_SHIFT
Definition: scsi_ses.h:2006
@ SES_STATUS_SAS_CONNECTOR_IDENT_MASK
Definition: scsi_ses.h:2005
@ SES_STATUS_SAS_CONNECTOR_PHYS_LINK_BYTE
Definition: scsi_ses.h:2012
@ SES_STATUS_SAS_CONNECTOR_TYPE_SHIFT
Definition: scsi_ses.h:2010
@ SES_STATUS_SAS_CONNECTOR_FAIL_BYTE
Definition: scsi_ses.h:2017
@ SES_STATUS_SAS_CONNECTOR_TYPE_MASK
Definition: scsi_ses.h:2009
@ SES_STATUS_SAS_CONNECTOR_IDENT_BYTE
Definition: scsi_ses.h:2004
@ SES_STATUS_SAS_CONNECTOR_FAIL_MASK
Definition: scsi_ses.h:2018
@ SES_STATUS_SAS_CONNECTOR_PHYS_LINK_SHIFT
Definition: scsi_ses.h:2014
ses_ctrl_power_supply_field_data
Definition: scsi_ses.h:317
@ SES_CTRL_POWER_SUPPLY_RQST_ON_BYTE
Definition: scsi_ses.h:326
@ SES_CTRL_POWER_SUPPLY_RQST_FAIL_SHIFT
Definition: scsi_ses.h:324
@ SES_CTRL_POWER_SUPPLY_RQST_ON_SHIFT
Definition: scsi_ses.h:328
@ SES_CTRL_POWER_SUPPLY_RQST_IDENT_MASK
Definition: scsi_ses.h:319
@ SES_CTRL_POWER_SUPPLY_RQST_FAIL_MASK
Definition: scsi_ses.h:323
@ SES_CTRL_POWER_SUPPLY_RQST_FAIL_BYTE
Definition: scsi_ses.h:322
@ SES_CTRL_POWER_SUPPLY_RQST_ON_MASK
Definition: scsi_ses.h:327
@ SES_CTRL_POWER_SUPPLY_RQST_IDENT_BYTE
Definition: scsi_ses.h:318
@ SES_CTRL_POWER_SUPPLY_RQST_IDENT_SHIFT
Definition: scsi_ses.h:320
ses_ctrl_common_field_data
Definition: scsi_ses.h:163
@ SES_CTRL_COMMON_SELECT_SHIFT
Definition: scsi_ses.h:166
@ SES_CTRL_COMMON_PRDFAIL_MASK
Definition: scsi_ses.h:169
@ SES_CTRL_COMMON_RST_SWAP_MASK
Definition: scsi_ses.h:177
@ SES_CTRL_COMMON_DISABLE_BYTE
Definition: scsi_ses.h:172
@ SES_CTRL_COMMON_PRDFAIL_BYTE
Definition: scsi_ses.h:168
@ SES_CTRL_COMMON_DISABLE_MASK
Definition: scsi_ses.h:173
@ SES_CTRL_COMMON_RST_SWAP_BYTE
Definition: scsi_ses.h:176
@ SES_CTRL_COMMON_RST_SWAP_SHIFT
Definition: scsi_ses.h:178
@ SES_CTRL_COMMON_DISABLE_SHIFT
Definition: scsi_ses.h:174
@ SES_CTRL_COMMON_SELECT_MASK
Definition: scsi_ses.h:165
@ SES_CTRL_COMMON_SELECT_BYTE
Definition: scsi_ses.h:164
@ SES_CTRL_COMMON_PRDFAIL_SHIFT
Definition: scsi_ses.h:170
#define GEN_SES_STATUS_ARRAY_DEV_SLOT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1137
ses_ctrl_sas_expander_field_data
Definition: scsi_ses.h:870
@ SES_CTRL_SAS_EXPANDER_RQST_IDENT_SHIFT
Definition: scsi_ses.h:873
@ SES_CTRL_SAS_EXPANDER_RQST_FAIL_SHIFT
Definition: scsi_ses.h:877
@ SES_CTRL_SAS_EXPANDER_RQST_IDENT_BYTE
Definition: scsi_ses.h:871
@ SES_CTRL_SAS_EXPANDER_RQST_IDENT_MASK
Definition: scsi_ses.h:872
@ SES_CTRL_SAS_EXPANDER_RQST_FAIL_BYTE
Definition: scsi_ses.h:875
@ SES_CTRL_SAS_EXPANDER_RQST_FAIL_MASK
Definition: scsi_ses.h:876
ses_status_cooling_field_data
Definition: scsi_ses.h:1229
@ SES_STATUS_COOLING_OFF_SHIFT
Definition: scsi_ses.h:1256
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_MSB_SHIFT
Definition: scsi_ses.h:1236
@ SES_STATUS_COOLING_REQUESTED_ON_MASK
Definition: scsi_ses.h:1251
@ SES_STATUS_COOLING_FAIL_SHIFT
Definition: scsi_ses.h:1248
@ SES_STATUS_COOLING_REQUESTED_ON_BYTE
Definition: scsi_ses.h:1250
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_MSB_MASK
Definition: scsi_ses.h:1235
@ SES_STATUS_COOLING_HOT_SWAP_SHIFT
Definition: scsi_ses.h:1244
@ SES_STATUS_COOLING_OFF_BYTE
Definition: scsi_ses.h:1254
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_LOWEST
Definition: scsi_ses.h:1262
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_MSB_BYTE
Definition: scsi_ses.h:1234
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_MASK
Definition: scsi_ses.h:1259
@ SES_STATUS_COOLING_HOT_SWAP_BYTE
Definition: scsi_ses.h:1242
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_LSB_BYTE
Definition: scsi_ses.h:1238
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_SHIFT
Definition: scsi_ses.h:1260
@ SES_STATUS_COOLING_IDENT_MASK
Definition: scsi_ses.h:1231
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_BYTE
Definition: scsi_ses.h:1258
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_LSB_MASK
Definition: scsi_ses.h:1239
@ SES_STATUS_COOLING_OFF_MASK
Definition: scsi_ses.h:1255
@ SES_STATUS_COOLING_HOT_SWAP_MASK
Definition: scsi_ses.h:1243
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_STOPPED
Definition: scsi_ses.h:1261
@ SES_STATUS_COOLING_ACTUAL_SPEED_CODE_HIGHEST
Definition: scsi_ses.h:1263
@ SES_STATUS_COOLING_IDENT_SHIFT
Definition: scsi_ses.h:1232
@ SES_STATUS_COOLING_REQUESTED_ON_SHIFT
Definition: scsi_ses.h:1252
@ SES_STATUS_COOLING_FAIL_MASK
Definition: scsi_ses.h:1247
@ SES_STATUS_COOLING_ACTUAL_FAN_SPEED_LSB_SHIFT
Definition: scsi_ses.h:1240
@ SES_STATUS_COOLING_FAIL_BYTE
Definition: scsi_ses.h:1246
@ SES_STATUS_COOLING_IDENT_BYTE
Definition: scsi_ses.h:1230
ses_status_page_field_data
Definition: scsi_ses.h:2111
@ SES_STATUS_PAGE_INVOP_MASK
Definition: scsi_ses.h:2112
@ SES_STATUS_PAGE_INVOP_SHIFT
Definition: scsi_ses.h:2113
@ SES_STATUS_PAGE_UNRECOV_MASK
Definition: scsi_ses.h:2124
@ SES_STATUS_PAGE_INFO_SHIFT
Definition: scsi_ses.h:2116
@ SES_STATUS_PAGE_CHANGED_MASK
Definition: scsi_ses.h:2127
@ SES_STATUS_PAGE_CRIT_MASK
Definition: scsi_ses.h:2121
@ SES_STATUS_PAGE_NON_CRIT_SHIFT
Definition: scsi_ses.h:2119
@ SES_STATUS_PAGE_UNRECOV_SHIFT
Definition: scsi_ses.h:2125
@ SES_STATUS_PAGE_CRIT_SHIFT
Definition: scsi_ses.h:2122
@ SES_STATUS_PAGE_NON_CRIT_MASK
Definition: scsi_ses.h:2118
@ SES_STATUS_PAGE_INFO_MASK
Definition: scsi_ses.h:2115
@ SES_STATUS_PAGE_CHANGED_SHIFT
Definition: scsi_ses.h:2132
#define GEN_SES_CTRL_SAS_CONNECTOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:902
ses_ctrl_initiator_port_field_data
Definition: scsi_ses.h:819
@ SES_CTRL_INITIATOR_PORT_RQST_FAIL_BYTE
Definition: scsi_ses.h:824
@ SES_CTRL_INITIATOR_PORT_ENABLE_BYTE
Definition: scsi_ses.h:828
@ SES_CTRL_INITIATOR_PORT_RQST_IDENT_BYTE
Definition: scsi_ses.h:820
@ SES_CTRL_INITIATOR_PORT_ENABLE_MASK
Definition: scsi_ses.h:829
@ SES_CTRL_INITIATOR_PORT_RQST_IDENT_SHIFT
Definition: scsi_ses.h:822
@ SES_CTRL_INITIATOR_PORT_RQST_IDENT_MASK
Definition: scsi_ses.h:821
@ SES_CTRL_INITIATOR_PORT_ENABLE_SHIFT
Definition: scsi_ses.h:830
@ SES_CTRL_INITIATOR_PORT_RQST_FAIL_SHIFT
Definition: scsi_ses.h:826
@ SES_CTRL_INITIATOR_PORT_RQST_FAIL_MASK
Definition: scsi_ses.h:825
int ses_elm_sas_dev_phy_dev_type(struct ses_elm_sas_device_phy *)
Definition: scsi_enc_ses.c:770
#define GEN_SES_STATUS_INITIATOR_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1942
ses_ctrl_array_dev_slot_field_data
Definition: scsi_ses.h:257
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_CONS_CHECK_SHIFT
Definition: scsi_ses.h:272
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_RSVD_DEVICE_BYTE
Definition: scsi_ses.h:262
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_RSVD_DEVICE_MASK
Definition: scsi_ses.h:263
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_HOT_SPARE_BYTE
Definition: scsi_ses.h:266
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_HOT_SPARE_MASK
Definition: scsi_ses.h:267
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_CRIT_ARRAY_MASK
Definition: scsi_ses.h:275
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_CRIT_ARRAY_BYTE
Definition: scsi_ses.h:274
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_FAILED_ARRAY_BYTE
Definition: scsi_ses.h:278
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_SHIFT
Definition: scsi_ses.h:284
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_ABORT_MASK
Definition: scsi_ses.h:287
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_BYTE
Definition: scsi_ses.h:282
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_RSVD_DEVICE_SHIFT
Definition: scsi_ses.h:264
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_CRIT_ARRAY_SHIFT
Definition: scsi_ses.h:276
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_HOT_SPARE_SHIFT
Definition: scsi_ses.h:268
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_ABORT_BYTE
Definition: scsi_ses.h:286
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_FAILED_ARRAY_MASK
Definition: scsi_ses.h:279
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_CONS_CHECK_BYTE
Definition: scsi_ses.h:270
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_OK_SHIFT
Definition: scsi_ses.h:260
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_IN_FAILED_ARRAY_SHIFT
Definition: scsi_ses.h:280
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_MASK
Definition: scsi_ses.h:283
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_OK_MASK
Definition: scsi_ses.h:259
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_REBUILD_REMAP_ABORT_SHIFT
Definition: scsi_ses.h:288
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_CONS_CHECK_MASK
Definition: scsi_ses.h:271
@ SES_CTRL_ARRAY_DEV_SLOT_RQST_OK_BYTE
Definition: scsi_ses.h:258
ses_ctrl_page_field_data
Definition: scsi_ses.h:944
@ SES_CTRL_PAGE_NON_CRIT_SHIFT
Definition: scsi_ses.h:949
@ SES_CTRL_PAGE_CRIT_SHIFT
Definition: scsi_ses.h:952
@ SES_CTRL_PAGE_INFO_MASK
Definition: scsi_ses.h:945
@ SES_CTRL_PAGE_UNRECOV_SHIFT
Definition: scsi_ses.h:955
@ SES_CTRL_PAGE_UNRECOV_MASK
Definition: scsi_ses.h:954
@ SES_CTRL_PAGE_CRIT_MASK
Definition: scsi_ses.h:951
@ SES_CTRL_PAGE_INFO_SHIFT
Definition: scsi_ses.h:946
@ SES_CTRL_PAGE_NON_CRIT_MASK
Definition: scsi_ses.h:948
ses_status_scc_electronics_field_data
Definition: scsi_ses.h:1444
@ SES_STATUS_SCC_ELECTRONICS_REPORT_BYTE
Definition: scsi_ses.h:1453
@ SES_STATUS_SCC_ELECTRONICS_FAIL_BYTE
Definition: scsi_ses.h:1449
@ SES_STATUS_SCC_ELECTRONICS_FAIL_MASK
Definition: scsi_ses.h:1450
@ SES_STATUS_SCC_ELECTRONICS_IDENT_MASK
Definition: scsi_ses.h:1446
@ SES_STATUS_SCC_ELECTRONICS_IDENT_BYTE
Definition: scsi_ses.h:1445
@ SES_STATUS_SCC_ELECTRONICS_FAIL_SHIFT
Definition: scsi_ses.h:1451
@ SES_STATUS_SCC_ELECTRONICS_IDENT_SHIFT
Definition: scsi_ses.h:1447
@ SES_STATUS_SCC_ELECTRONICS_REPORT_SHIFT
Definition: scsi_ses.h:1455
@ SES_STATUS_SCC_ELECTRONICS_REPORT_MASK
Definition: scsi_ses.h:1454
ses_status_key_pad_entry_field_data
Definition: scsi_ses.h:1654
@ SES_STATUS_KEY_PAD_ENTRY_IDENT_BYTE
Definition: scsi_ses.h:1655
@ SES_STATUS_KEY_PAD_ENTRY_FAIL_MASK
Definition: scsi_ses.h:1660
@ SES_STATUS_KEY_PAD_ENTRY_FAIL_BYTE
Definition: scsi_ses.h:1659
@ SES_STATUS_KEY_PAD_ENTRY_FAIL_SHIFT
Definition: scsi_ses.h:1661
@ SES_STATUS_KEY_PAD_ENTRY_IDENT_MASK
Definition: scsi_ses.h:1656
@ SES_STATUS_KEY_PAD_ENTRY_IDENT_SHIFT
Definition: scsi_ses.h:1657
ses_status_dev_slot_field_data
Definition: scsi_ses.h:1006
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_A_BYTE
Definition: scsi_ses.h:1015
@ SES_STATUS_DEV_SLOT_IDENT_MASK
Definition: scsi_ses.h:1032
@ SES_STATUS_DEV_SLOT_FAULT_REQUESTED_BYTE
Definition: scsi_ses.h:1047
@ SES_STATUS_DEV_SLOT_REMOVE_MASK
Definition: scsi_ses.h:1028
@ SES_STATUS_DEV_SLOT_REPORT_SHIFT
Definition: scsi_ses.h:1037
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_A_SHIFT
Definition: scsi_ses.h:1017
@ SES_STATUS_DEV_SLOT_DO_NOT_REMOVE_MASK
Definition: scsi_ses.h:1012
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_A_BYTE
Definition: scsi_ses.h:1063
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_B_BYTE
Definition: scsi_ses.h:1067
@ SES_STATUS_DEV_SLOT_REMOVE_SHIFT
Definition: scsi_ses.h:1029
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_B_SHIFT
Definition: scsi_ses.h:1041
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_A_MASK
Definition: scsi_ses.h:1016
@ SES_STATUS_DEV_SLOT_FAULT_SENSED_MASK
Definition: scsi_ses.h:1044
@ SES_STATUS_DEV_SLOT_BYPED_A_SHIFT
Definition: scsi_ses.h:1057
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_B_MASK
Definition: scsi_ses.h:1068
@ SES_STATUS_DEV_SLOT_REPORT_MASK
Definition: scsi_ses.h:1036
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_A_SHIFT
Definition: scsi_ses.h:1065
@ SES_STATUS_DEV_SLOT_INSERT_READY_BYTE
Definition: scsi_ses.h:1023
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_B_SHIFT
Definition: scsi_ses.h:1021
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_A_BYTE
Definition: scsi_ses.h:1007
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_B_BYTE
Definition: scsi_ses.h:1019
@ SES_STATUS_DEV_SLOT_REMOVE_BYTE
Definition: scsi_ses.h:1027
@ SES_STATUS_DEV_SLOT_REPORT_BYTE
Definition: scsi_ses.h:1035
@ SES_STATUS_DEV_SLOT_BYPED_A_BYTE
Definition: scsi_ses.h:1055
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_A_MASK
Definition: scsi_ses.h:1064
@ SES_STATUS_DEV_SLOT_FAULT_REQUESTED_MASK
Definition: scsi_ses.h:1048
@ SES_STATUS_DEV_SLOT_DEVICE_OFF_MASK
Definition: scsi_ses.h:1052
@ SES_STATUS_DEV_SLOT_ENCLOSURE_BYPED_B_MASK
Definition: scsi_ses.h:1020
@ SES_STATUS_DEV_SLOT_INSERT_READY_MASK
Definition: scsi_ses.h:1024
@ SES_STATUS_DEV_SLOT_BYPED_A_MASK
Definition: scsi_ses.h:1056
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_A_SHIFT
Definition: scsi_ses.h:1009
@ SES_STATUS_DEV_SLOT_INSERT_READY_SHIFT
Definition: scsi_ses.h:1025
@ SES_STATUS_DEV_SLOT_DO_NOT_REMOVE_SHIFT
Definition: scsi_ses.h:1013
@ SES_STATUS_DEV_SLOT_DEVICE_BYPED_B_SHIFT
Definition: scsi_ses.h:1069
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_B_MASK
Definition: scsi_ses.h:1040
@ SES_STATUS_DEV_SLOT_IDENT_BYTE
Definition: scsi_ses.h:1031
@ SES_STATUS_DEV_SLOT_IDENT_SHIFT
Definition: scsi_ses.h:1033
@ SES_STATUS_DEV_SLOT_DO_NOT_REMOVE_BYTE
Definition: scsi_ses.h:1011
@ SES_STATUS_DEV_SLOT_DEVICE_OFF_BYTE
Definition: scsi_ses.h:1051
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_A_MASK
Definition: scsi_ses.h:1008
@ SES_STATUS_DEV_SLOT_DEVICE_OFF_SHIFT
Definition: scsi_ses.h:1053
@ SES_STATUS_DEV_SLOT_FAULT_SENSED_BYTE
Definition: scsi_ses.h:1043
@ SES_STATUS_DEV_SLOT_BYPED_B_BYTE
Definition: scsi_ses.h:1059
@ SES_STATUS_DEV_SLOT_BYPED_B_SHIFT
Definition: scsi_ses.h:1061
@ SES_STATUS_DEV_SLOT_FAULT_REQUESTED_SHIFT
Definition: scsi_ses.h:1049
@ SES_STATUS_DEV_SLOT_BYPED_B_MASK
Definition: scsi_ses.h:1060
@ SES_STATUS_DEV_SLOT_APP_CLIENT_BYPED_B_BYTE
Definition: scsi_ses.h:1039
@ SES_STATUS_DEV_SLOT_FAULT_SENSED_SHIFT
Definition: scsi_ses.h:1045
#define GEN_SES_STATUS_ENCLOSURE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1708
int ses_elm_addlstatus_eip(struct ses_elm_addlstatus_base_hdr *)
Definition: scsi_enc_ses.c:745
static int ses_enc_desc_is_complete(struct ses_enc_desc *encdesc, uint8_t *last_buf_byte)
Definition: scsi_ses.h:132
ses_ctrl_ups_field_data
Definition: scsi_ses.h:550
@ SES_CTRL_UPS_RQST_IDENT_MASK
Definition: scsi_ses.h:552
@ SES_CTRL_UPS_RQST_FAIL_BYTE
Definition: scsi_ses.h:555
@ SES_CTRL_UPS_RQST_FAIL_SHIFT
Definition: scsi_ses.h:557
@ SES_CTRL_UPS_RQST_FAIL_MASK
Definition: scsi_ses.h:556
@ SES_CTRL_UPS_RQST_IDENT_SHIFT
Definition: scsi_ses.h:553
@ SES_CTRL_UPS_RQST_IDENT_BYTE
Definition: scsi_ses.h:551
#define GEN_SES_STATUS_SCSI_PORT_OR_XCVR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1753
int ses_elm_sas_dev_phy_sata_port(struct ses_elm_sas_device_phy *)
Definition: scsi_enc_ses.c:765
ses_status_power_supply_field_data
Definition: scsi_ses.h:1157
@ SES_STATUS_POWER_SUPPLY_DC_OVER_CURRENT_MASK
Definition: scsi_ses.h:1171
@ SES_STATUS_POWER_SUPPLY_OVERTMP_FAIL_SHIFT
Definition: scsi_ses.h:1192
@ SES_STATUS_POWER_SUPPLY_REQUESTED_ON_MASK
Definition: scsi_ses.h:1183
@ SES_STATUS_POWER_SUPPLY_OFF_BYTE
Definition: scsi_ses.h:1186
@ SES_STATUS_POWER_SUPPLY_TEMP_WARN_BYTE
Definition: scsi_ses.h:1194
@ SES_STATUS_POWER_SUPPLY_OFF_MASK
Definition: scsi_ses.h:1187
@ SES_STATUS_POWER_SUPPLY_IDENT_BYTE
Definition: scsi_ses.h:1158
@ SES_STATUS_POWER_SUPPLY_AC_FAIL_BYTE
Definition: scsi_ses.h:1198
@ SES_STATUS_POWER_SUPPLY_OVERTMP_FAIL_BYTE
Definition: scsi_ses.h:1190
@ SES_STATUS_POWER_SUPPLY_OVERTMP_FAIL_MASK
Definition: scsi_ses.h:1191
@ SES_STATUS_POWER_SUPPLY_FAIL_MASK
Definition: scsi_ses.h:1179
@ SES_STATUS_POWER_SUPPLY_HOT_SWAP_SHIFT
Definition: scsi_ses.h:1176
@ SES_STATUS_POWER_SUPPLY_TEMP_WARN_SHIFT
Definition: scsi_ses.h:1196
@ SES_STATUS_POWER_SUPPLY_DC_UNDER_VOLTAGE_SHIFT
Definition: scsi_ses.h:1168
@ SES_STATUS_POWER_SUPPLY_AC_FAIL_SHIFT
Definition: scsi_ses.h:1200
@ SES_STATUS_POWER_SUPPLY_TEMP_WARN_MASK
Definition: scsi_ses.h:1195
@ SES_STATUS_POWER_SUPPLY_DC_FAIL_BYTE
Definition: scsi_ses.h:1202
@ SES_STATUS_POWER_SUPPLY_FAIL_BYTE
Definition: scsi_ses.h:1178
@ SES_STATUS_POWER_SUPPLY_REQUESTED_ON_BYTE
Definition: scsi_ses.h:1182
@ SES_STATUS_POWER_SUPPLY_DC_OVER_CURRENT_BYTE
Definition: scsi_ses.h:1170
@ SES_STATUS_POWER_SUPPLY_REQUESTED_ON_SHIFT
Definition: scsi_ses.h:1184
@ SES_STATUS_POWER_SUPPLY_DC_OVER_VOLTAGE_BYTE
Definition: scsi_ses.h:1162
@ SES_STATUS_POWER_SUPPLY_AC_FAIL_MASK
Definition: scsi_ses.h:1199
@ SES_STATUS_POWER_SUPPLY_FAIL_SHIFT
Definition: scsi_ses.h:1180
@ SES_STATUS_POWER_SUPPLY_DC_OVER_VOLTAGE_SHIFT
Definition: scsi_ses.h:1164
@ SES_STATUS_POWER_SUPPLY_OFF_SHIFT
Definition: scsi_ses.h:1188
@ SES_STATUS_POWER_SUPPLY_HOT_SWAP_BYTE
Definition: scsi_ses.h:1174
@ SES_STATUS_POWER_SUPPLY_IDENT_MASK
Definition: scsi_ses.h:1159
@ SES_STATUS_POWER_SUPPLY_DC_OVER_CURRENT_SHIFT
Definition: scsi_ses.h:1172
@ SES_STATUS_POWER_SUPPLY_IDENT_SHIFT
Definition: scsi_ses.h:1160
@ SES_STATUS_POWER_SUPPLY_DC_UNDER_VOLTAGE_MASK
Definition: scsi_ses.h:1167
@ SES_STATUS_POWER_SUPPLY_DC_FAIL_SHIFT
Definition: scsi_ses.h:1204
@ SES_STATUS_POWER_SUPPLY_DC_FAIL_MASK
Definition: scsi_ses.h:1203
@ SES_STATUS_POWER_SUPPLY_HOT_SWAP_MASK
Definition: scsi_ses.h:1175
@ SES_STATUS_POWER_SUPPLY_DC_UNDER_VOLTAGE_BYTE
Definition: scsi_ses.h:1166
@ SES_STATUS_POWER_SUPPLY_DC_OVER_VOLTAGE_MASK
Definition: scsi_ses.h:1163
#define GEN_SES_CTRL_TEMP_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:389
static int ses_cfg_page_get_num_subenc(struct ses_cfg_page *page)
Definition: scsi_ses.h:153
ses_status_display_field_data
Definition: scsi_ses.h:1624
@ SES_STATUS_DISPLAY_FAIL_SHIFT
Definition: scsi_ses.h:1631
@ SES_STATUS_DISPLAY_FAIL_BYTE
Definition: scsi_ses.h:1629
@ SES_STATUS_DISPLAY_IDENT_SHIFT
Definition: scsi_ses.h:1627
@ SES_STATUS_DISPLAY_DISPLAY_MODE_DC_FIELD_SUPP
Definition: scsi_ses.h:1637
@ SES_STATUS_DISPLAY_DISPLAY_MODE_DC_FIELD
Definition: scsi_ses.h:1638
@ SES_STATUS_DISPLAY_FAIL_MASK
Definition: scsi_ses.h:1630
@ SES_STATUS_DISPLAY_DISPLAY_MODE_DC_FIELD_UNSUPP
Definition: scsi_ses.h:1636
@ SES_STATUS_DISPLAY_IDENT_BYTE
Definition: scsi_ses.h:1625
@ SES_STATUS_DISPLAY_DISPLAY_MODE_BYTE
Definition: scsi_ses.h:1633
@ SES_STATUS_DISPLAY_IDENT_MASK
Definition: scsi_ses.h:1626
@ SES_STATUS_DISPLAY_DISPLAY_MODE_SHIFT
Definition: scsi_ses.h:1635
@ SES_STATUS_DISPLAY_DISPLAY_MODE_MASK
Definition: scsi_ses.h:1634
ses_ctrl_cooling_field_data
Definition: scsi_ses.h:344
@ SES_CTRL_COOLING_RQST_FAIL_SHIFT
Definition: scsi_ses.h:351
@ SES_CTRL_COOLING_RQST_ON_BYTE
Definition: scsi_ses.h:353
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_HIGHEST
Definition: scsi_ses.h:362
@ SES_CTRL_COOLING_RQST_IDENT_MASK
Definition: scsi_ses.h:346
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_UNCHANGED
Definition: scsi_ses.h:360
@ SES_CTRL_COOLING_RQST_IDENT_SHIFT
Definition: scsi_ses.h:347
@ SES_CTRL_COOLING_RQST_IDENT_BYTE
Definition: scsi_ses.h:345
@ SES_CTRL_COOLING_RQST_FAIL_BYTE
Definition: scsi_ses.h:349
@ SES_CTRL_COOLING_RQST_ON_MASK
Definition: scsi_ses.h:354
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_BYTE
Definition: scsi_ses.h:357
@ SES_CTRL_COOLING_RQST_FAIL_MASK
Definition: scsi_ses.h:350
@ SES_CTRL_COOLING_RQST_ON_SHIFT
Definition: scsi_ses.h:355
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_MASK
Definition: scsi_ses.h:358
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_LOWEST
Definition: scsi_ses.h:361
@ SES_CTRL_COOLING_RQSTED_SPEED_CODE_SHIFT
Definition: scsi_ses.h:359
#define GEN_SES_CTRL_SCC_ELECTRONICS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:507
ses_status_language_field_data
Definition: scsi_ses.h:1771
@ SES_STATUS_LANGUAGE_IDENT_BYTE
Definition: scsi_ses.h:1772
@ SES_STATUS_LANGUAGE_IDENT_MASK
Definition: scsi_ses.h:1773
@ SES_STATUS_LANGUAGE_IDENT_SHIFT
Definition: scsi_ses.h:1774
#define GEN_SES_CTRL_UPS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:560
#define GEN_SES_CTRL_COMMON_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:181
#define GEN_SES_STATUS_PAGE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:2135
#define GEN_SES_CTRL_ECC_ELECTRONICS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:483
#define GEN_SES_STATUS_VOLTAGE_SENSOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1842
#define GEN_SES_CTRL_SIMPlE_SUBSES_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:857
ses_ctrl_simple_subenc_field_data
Definition: scsi_ses.h:847
@ SES_CTRL_SIMPlE_SUBSES_RQST_FAIL_SHIFT
Definition: scsi_ses.h:854
@ SES_CTRL_SIMPlE_SUBSES_RQST_IDENT_SHIFT
Definition: scsi_ses.h:850
@ SES_CTRL_SIMPlE_SUBSES_RQST_IDENT_BYTE
Definition: scsi_ses.h:848
@ SES_CTRL_SIMPlE_SUBSES_RQST_FAIL_BYTE
Definition: scsi_ses.h:852
@ SES_CTRL_SIMPlE_SUBSES_RQST_IDENT_MASK
Definition: scsi_ses.h:849
@ SES_CTRL_SIMPlE_SUBSES_RQST_FAIL_MASK
Definition: scsi_ses.h:853
ses_status_common_field_data
Definition: scsi_ses.h:972
@ SES_STATUS_COMMON_SWAP_SHIFT
Definition: scsi_ses.h:983
@ SES_STATUS_COMMON_ELEMENT_STATUS_CODE_SHIFT
Definition: scsi_ses.h:987
@ SES_STATUS_COMMON_DISABLED_MASK
Definition: scsi_ses.h:978
@ SES_STATUS_COMMON_DISABLED_SHIFT
Definition: scsi_ses.h:979
@ SES_STATUS_COMMON_SWAP_BYTE
Definition: scsi_ses.h:981
@ SES_STATUS_COMMON_ELEMENT_STATUS_CODE_BYTE
Definition: scsi_ses.h:985
@ SES_STATUS_COMMON_PRDFAIL_SHIFT
Definition: scsi_ses.h:975
@ SES_STATUS_COMMON_PRDFAIL_BYTE
Definition: scsi_ses.h:973
@ SES_STATUS_COMMON_PRDFAIL_MASK
Definition: scsi_ses.h:974
@ SES_STATUS_COMMON_SWAP_MASK
Definition: scsi_ses.h:982
@ SES_STATUS_COMMON_ELEMENT_STATUS_CODE_MASK
Definition: scsi_ses.h:986
@ SES_STATUS_COMMON_DISABLED_BYTE
Definition: scsi_ses.h:977
ses_status_ecc_electronics_field_data
Definition: scsi_ses.h:1411
@ SES_STATUS_ECC_ELECTRONICS_IDENT_BYTE
Definition: scsi_ses.h:1412
@ SES_STATUS_ECC_ELECTRONICS_FAIL_BYTE
Definition: scsi_ses.h:1416
@ SES_STATUS_ECC_ELECTRONICS_FAIL_SHIFT
Definition: scsi_ses.h:1418
@ SES_STATUS_ECC_ELECTRONICS_REPORT_SHIFT
Definition: scsi_ses.h:1422
@ SES_STATUS_ECC_ELECTRONICS_HOT_SWAP_BYTE
Definition: scsi_ses.h:1424
@ SES_STATUS_ECC_ELECTRONICS_HOT_SWAP_MASK
Definition: scsi_ses.h:1425
@ SES_STATUS_ECC_ELECTRONICS_FAIL_MASK
Definition: scsi_ses.h:1417
@ SES_STATUS_ECC_ELECTRONICS_REPORT_BYTE
Definition: scsi_ses.h:1420
@ SES_STATUS_ECC_ELECTRONICS_IDENT_SHIFT
Definition: scsi_ses.h:1414
@ SES_STATUS_ECC_ELECTRONICS_IDENT_MASK
Definition: scsi_ses.h:1413
@ SES_STATUS_ECC_ELECTRONICS_HOT_SWAP_SHIFT
Definition: scsi_ses.h:1426
@ SES_STATUS_ECC_ELECTRONICS_REPORT_MASK
Definition: scsi_ses.h:1421
ses_ctrl_display_field_data
Definition: scsi_ses.h:573
@ SES_CTRL_DISPLAY_DISPLAY_MODE_BYTE
Definition: scsi_ses.h:582
@ SES_CTRL_DISPLAY_DISPLAY_MODE_ESP
Definition: scsi_ses.h:586
@ SES_CTRL_DISPLAY_DISPLAY_MODE_DC_FIELD
Definition: scsi_ses.h:587
@ SES_CTRL_DISPLAY_DISPLAY_MODE_UNCHANGED
Definition: scsi_ses.h:585
@ SES_CTRL_DISPLAY_RQST_FAIL_SHIFT
Definition: scsi_ses.h:580
@ SES_CTRL_DISPLAY_RQST_IDENT_SHIFT
Definition: scsi_ses.h:576
@ SES_CTRL_DISPLAY_DISPLAY_MODE_SHIFT
Definition: scsi_ses.h:584
@ SES_CTRL_DISPLAY_RQST_IDENT_BYTE
Definition: scsi_ses.h:574
@ SES_CTRL_DISPLAY_DISPLAY_MODE_MASK
Definition: scsi_ses.h:583
@ SES_CTRL_DISPLAY_RQST_IDENT_MASK
Definition: scsi_ses.h:575
@ SES_CTRL_DISPLAY_RQST_FAIL_MASK
Definition: scsi_ses.h:579
@ SES_CTRL_DISPLAY_RQST_FAIL_BYTE
Definition: scsi_ses.h:578
#define GEN_SES_STATUS_COMMON_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:990
int ses_elm_addlstatus_proto(struct ses_elm_addlstatus_base_hdr *)
Definition: scsi_enc_ses.c:740
ses_status_sas_expander_field_data
Definition: scsi_ses.h:1981
@ SES_STATUS_SAS_EXPANDER_IDENT_BYTE
Definition: scsi_ses.h:1982
@ SES_STATUS_SAS_EXPANDER_FAIL_BYTE
Definition: scsi_ses.h:1986
@ SES_STATUS_SAS_EXPANDER_IDENT_SHIFT
Definition: scsi_ses.h:1984
@ SES_STATUS_SAS_EXPANDER_FAIL_SHIFT
Definition: scsi_ses.h:1988
@ SES_STATUS_SAS_EXPANDER_FAIL_MASK
Definition: scsi_ses.h:1987
@ SES_STATUS_SAS_EXPANDER_IDENT_MASK
Definition: scsi_ses.h:1983
#define GEN_SES_STATUS_TARGET_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1910
#define GEN_SES_STATUS_COOLING_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1266
#define GEN_SES_CTRL_PAGE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:958
#define GEN_SES_STATUS_AUDIBLE_ALARM_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1395
ses_ctrl_current_sensor_field_data
Definition: scsi_ses.h:769
@ SES_CTRL_CURRENT_SENSOR_RQST_FAIL_SHIFT
Definition: scsi_ses.h:776
@ SES_CTRL_CURRENT_SENSOR_RQST_IDENT_BYTE
Definition: scsi_ses.h:770
@ SES_CTRL_CURRENT_SENSOR_RQST_IDENT_MASK
Definition: scsi_ses.h:771
@ SES_CTRL_CURRENT_SENSOR_RQST_FAIL_BYTE
Definition: scsi_ses.h:774
@ SES_CTRL_CURRENT_SENSOR_RQST_FAIL_MASK
Definition: scsi_ses.h:775
@ SES_CTRL_CURRENT_SENSOR_RQST_IDENT_SHIFT
Definition: scsi_ses.h:772
ses_ctrl_scsi_target_port_field_data
Definition: scsi_ses.h:792
@ SES_CTRL_TARGET_PORT_RQST_IDENT_BYTE
Definition: scsi_ses.h:793
@ SES_CTRL_TARGET_PORT_RQST_FAIL_MASK
Definition: scsi_ses.h:798
@ SES_CTRL_TARGET_PORT_ENABLE_MASK
Definition: scsi_ses.h:802
@ SES_CTRL_TARGET_PORT_RQST_FAIL_SHIFT
Definition: scsi_ses.h:799
@ SES_CTRL_TARGET_PORT_RQST_FAIL_BYTE
Definition: scsi_ses.h:797
@ SES_CTRL_TARGET_PORT_ENABLE_BYTE
Definition: scsi_ses.h:801
@ SES_CTRL_TARGET_PORT_RQST_IDENT_MASK
Definition: scsi_ses.h:794
@ SES_CTRL_TARGET_PORT_ENABLE_SHIFT
Definition: scsi_ses.h:803
@ SES_CTRL_TARGET_PORT_RQST_IDENT_SHIFT
Definition: scsi_ses.h:795
ses_status_ups_field_data
Definition: scsi_ses.h:1551
@ SES_STATUS_UPS_DC_FAIL_SHIFT
Definition: scsi_ses.h:1570
@ SES_STATUS_UPS_AC_LO_SHIFT
Definition: scsi_ses.h:1554
@ SES_STATUS_UPS_AC_FAIL_BYTE
Definition: scsi_ses.h:1564
@ SES_STATUS_UPS_AC_HI_MASK
Definition: scsi_ses.h:1557
@ SES_STATUS_UPS_AC_HI_SHIFT
Definition: scsi_ses.h:1558
@ SES_STATUS_UPS_BPF_MASK
Definition: scsi_ses.h:1597
@ SES_STATUS_UPS_INTF_FAIL_SHIFT
Definition: scsi_ses.h:1582
@ SES_STATUS_UPS_UPS_FAIL_SHIFT
Definition: scsi_ses.h:1574
@ SES_STATUS_UPS_AC_QUAL_BYTE
Definition: scsi_ses.h:1560
@ SES_STATUS_UPS_AC_FAIL_MASK
Definition: scsi_ses.h:1565
@ SES_STATUS_UPS_DC_FAIL_BYTE
Definition: scsi_ses.h:1568
@ SES_STATUS_UPS_UPS_FAIL_MASK
Definition: scsi_ses.h:1573
@ SES_STATUS_UPS_AC_QUAL_MASK
Definition: scsi_ses.h:1561
@ SES_STATUS_UPS_FAIL_BYTE
Definition: scsi_ses.h:1588
@ SES_STATUS_UPS_BPF_BYTE
Definition: scsi_ses.h:1596
@ SES_STATUS_UPS_BPF_SHIFT
Definition: scsi_ses.h:1598
@ SES_STATUS_UPS_AC_QUAL_SHIFT
Definition: scsi_ses.h:1562
@ SES_STATUS_UPS_AC_LO_MASK
Definition: scsi_ses.h:1553
@ SES_STATUS_UPS_IDENT_SHIFT
Definition: scsi_ses.h:1586
@ SES_STATUS_UPS_UPS_FAIL_BYTE
Definition: scsi_ses.h:1572
@ SES_STATUS_UPS_WARN_MASK
Definition: scsi_ses.h:1577
@ SES_STATUS_UPS_FAIL_SHIFT
Definition: scsi_ses.h:1590
@ SES_STATUS_UPS_BATT_FAIL_SHIFT
Definition: scsi_ses.h:1594
@ SES_STATUS_UPS_BATT_FAIL_BYTE
Definition: scsi_ses.h:1592
@ SES_STATUS_UPS_FAIL_MASK
Definition: scsi_ses.h:1589
@ SES_STATUS_UPS_IDENT_MASK
Definition: scsi_ses.h:1585
@ SES_STATUS_UPS_INTF_FAIL_BYTE
Definition: scsi_ses.h:1580
@ SES_STATUS_UPS_INTF_FAIL_MASK
Definition: scsi_ses.h:1581
@ SES_STATUS_UPS_AC_LO_BYTE
Definition: scsi_ses.h:1552
@ SES_STATUS_UPS_AC_FAIL_SHIFT
Definition: scsi_ses.h:1566
@ SES_STATUS_UPS_WARN_BYTE
Definition: scsi_ses.h:1576
@ SES_STATUS_UPS_WARN_SHIFT
Definition: scsi_ses.h:1578
@ SES_STATUS_UPS_IDENT_BYTE
Definition: scsi_ses.h:1584
@ SES_STATUS_UPS_BATT_FAIL_MASK
Definition: scsi_ses.h:1593
@ SES_STATUS_UPS_AC_HI_BYTE
Definition: scsi_ses.h:1556
@ SES_STATUS_UPS_DC_FAIL_MASK
Definition: scsi_ses.h:1569
int ses_elm_addlstatus_invalid(struct ses_elm_addlstatus_base_hdr *)
Definition: scsi_enc_ses.c:750
ses_ctrl_language_field_data
Definition: scsi_ses.h:702
@ SES_CTRL_LANGUAGE_RQST_IDENT_BYTE
Definition: scsi_ses.h:703
@ SES_CTRL_LANGUAGE_RQST_IDENT_MASK
Definition: scsi_ses.h:704
@ SES_CTRL_LANGUAGE_RQST_IDENT_SHIFT
Definition: scsi_ses.h:705
ses_ctrl_audible_alarm_field_data
Definition: scsi_ses.h:428
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_BYTE
Definition: scsi_ses.h:445
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_MASK
Definition: scsi_ses.h:446
@ SES_CTRL_AUDIBLE_ALARM_RQST_FAIL_SHIFT
Definition: scsi_ses.h:435
@ SES_CTRL_AUDIBLE_ALARM_RQST_FAIL_BYTE
Definition: scsi_ses.h:433
@ SES_CTRL_AUDIBLE_ALARM_SET_REMIND_MASK
Definition: scsi_ses.h:442
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_INFO
Definition: scsi_ses.h:448
@ SES_CTRL_AUDIBLE_ALARM_RQST_FAIL_MASK
Definition: scsi_ses.h:434
@ SES_CTRL_AUDIBLE_ALARM_SET_MUTE_SHIFT
Definition: scsi_ses.h:439
@ SES_CTRL_AUDIBLE_ALARM_RQST_IDENT_SHIFT
Definition: scsi_ses.h:431
@ SES_CTRL_AUDIBLE_ALARM_SET_REMIND_SHIFT
Definition: scsi_ses.h:443
@ SES_CTRL_AUDIBLE_ALARM_RQST_IDENT_BYTE
Definition: scsi_ses.h:429
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_NON_CRIT
Definition: scsi_ses.h:449
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_CRIT
Definition: scsi_ses.h:450
@ SES_CTRL_AUDIBLE_ALARM_SET_REMIND_BYTE
Definition: scsi_ses.h:441
@ SES_CTRL_AUDIBLE_ALARM_SET_MUTE_BYTE
Definition: scsi_ses.h:437
@ SES_CTRL_AUDIBLE_ALARM_RQST_IDENT_MASK
Definition: scsi_ses.h:430
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_UNRECOV
Definition: scsi_ses.h:451
@ SES_CTRL_AUDIBLE_ALARM_SET_MUTE_MASK
Definition: scsi_ses.h:438
@ SES_CTRL_AUDIBLE_ALARM_TONE_CONTROL_SHIFT
Definition: scsi_ses.h:447
int ses_elm_sas_descr_type(union ses_elm_sas_hdr *)
Definition: scsi_enc_ses.c:735
#define GEN_SES_CTRL_INITIATOR_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:833
static size_t ses_page_length(const struct ses_page_hdr *hdr)
Definition: scsi_ses.h:89
int ses_elm_sas_type0_not_all_phys(union ses_elm_sas_hdr *)
Definition: scsi_enc_ses.c:755
static void ses_status_to_ctrl(uint8_t type, uint8_t *bytes)
Definition: scsi_ses.h:2067
#define GEN_SES_CTRL_COMM_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:733
ses_ctrl_key_pad_entry_field_data
Definition: scsi_ses.h:603
@ SES_CTRL_KEY_PAD_ENTRY_RQST_IDENT_SHIFT
Definition: scsi_ses.h:606
@ SES_CTRL_KEY_PAD_ENTRY_RQST_IDENT_BYTE
Definition: scsi_ses.h:604
@ SES_CTRL_KEY_PAD_ENTRY_RQST_FAIL_BYTE
Definition: scsi_ses.h:608
@ SES_CTRL_KEY_PAD_ENTRY_RQST_FAIL_MASK
Definition: scsi_ses.h:609
@ SES_CTRL_KEY_PAD_ENTRY_RQST_FAIL_SHIFT
Definition: scsi_ses.h:610
@ SES_CTRL_KEY_PAD_ENTRY_RQST_IDENT_MASK
Definition: scsi_ses.h:605
#define GEN_SES_CTRL_TARGET_PORT_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:806
#define GEN_SES_CTRL_POWER_SUPPLY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:331
#define GEN_SES_STATUS_LANGUAGE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1777
ses_status_scsi_initiator_port_field_data
Definition: scsi_ses.h:1924
@ SES_STATUS_INITIATOR_PORT_FAIL_MASK
Definition: scsi_ses.h:1930
@ SES_STATUS_INITIATOR_PORT_IDENT_MASK
Definition: scsi_ses.h:1926
@ SES_STATUS_INITIATOR_PORT_REPORT_MASK
Definition: scsi_ses.h:1934
@ SES_STATUS_INITIATOR_PORT_FAIL_BYTE
Definition: scsi_ses.h:1929
@ SES_STATUS_INITIATOR_PORT_REPORT_BYTE
Definition: scsi_ses.h:1933
@ SES_STATUS_INITIATOR_PORT_ENABLED_BYTE
Definition: scsi_ses.h:1937
@ SES_STATUS_INITIATOR_PORT_ENABLED_MASK
Definition: scsi_ses.h:1938
@ SES_STATUS_INITIATOR_PORT_IDENT_SHIFT
Definition: scsi_ses.h:1927
@ SES_STATUS_INITIATOR_PORT_FAIL_SHIFT
Definition: scsi_ses.h:1931
@ SES_STATUS_INITIATOR_PORT_IDENT_BYTE
Definition: scsi_ses.h:1925
@ SES_STATUS_INITIATOR_PORT_ENABLED_SHIFT
Definition: scsi_ses.h:1939
@ SES_STATUS_INITIATOR_PORT_REPORT_SHIFT
Definition: scsi_ses.h:1935
#define GEN_SES_STATUS_SAS_CONNECTOR_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:2022
#define GEN_SES_STATUS_POWER_SUPPLY_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1207
ses_status_simple_subses_field_data
Definition: scsi_ses.h:1958
@ SES_STATUS_SIMPlE_SUBSES_FAIL_SHIFT
Definition: scsi_ses.h:1965
@ SES_STATUS_SIMPlE_SUBSES_FAIL_BYTE
Definition: scsi_ses.h:1963
@ SES_STATUS_SIMPlE_SUBSES_IDENT_SHIFT
Definition: scsi_ses.h:1961
@ SES_STATUS_SIMPlE_SUBSES_FAIL_MASK
Definition: scsi_ses.h:1964
@ SES_STATUS_SIMPlE_SUBSES_IDENT_MASK
Definition: scsi_ses.h:1960
@ SES_STATUS_SIMPlE_SUBSES_IDENT_BYTE
Definition: scsi_ses.h:1959
#define GEN_SES_STATUS_SAS_EXPANDER_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1991
#define GEN_SES_STATUS_NV_CACHE_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1491
static struct ses_enc_desc * ses_enc_desc_next(struct ses_enc_desc *encdesc)
Definition: scsi_ses.h:126
ses_status_comm_port_field_data
Definition: scsi_ses.h:1788
@ SES_STATUS_COMM_PORT_DISABLED_MASK
Definition: scsi_ses.h:1798
@ SES_STATUS_COMM_PORT_DISABLED_BYTE
Definition: scsi_ses.h:1797
@ SES_STATUS_COMM_PORT_FAIL_MASK
Definition: scsi_ses.h:1794
@ SES_STATUS_COMM_PORT_IDENT_MASK
Definition: scsi_ses.h:1790
@ SES_STATUS_COMM_PORT_FAIL_SHIFT
Definition: scsi_ses.h:1795
@ SES_STATUS_COMM_PORT_FAIL_BYTE
Definition: scsi_ses.h:1793
@ SES_STATUS_COMM_PORT_IDENT_SHIFT
Definition: scsi_ses.h:1791
@ SES_STATUS_COMM_PORT_DISABLED_SHIFT
Definition: scsi_ses.h:1799
@ SES_STATUS_COMM_PORT_IDENT_BYTE
Definition: scsi_ses.h:1789
#define GEN_SES_CTRL_AUDIBLE_ALARM_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:454
ses_ctrl_temp_sensor_field_data
Definition: scsi_ses.h:379
@ SES_CTRL_TEMP_SENSOR_RQST_IDENT_BYTE
Definition: scsi_ses.h:380
@ SES_CTRL_TEMP_SENSOR_RQST_IDENT_MASK
Definition: scsi_ses.h:381
@ SES_CTRL_TEMP_SENSOR_RQST_FAIL_SHIFT
Definition: scsi_ses.h:386
@ SES_CTRL_TEMP_SENSOR_RQST_FAIL_BYTE
Definition: scsi_ses.h:384
@ SES_CTRL_TEMP_SENSOR_RQST_FAIL_MASK
Definition: scsi_ses.h:385
@ SES_CTRL_TEMP_SENSOR_RQST_IDENT_SHIFT
Definition: scsi_ses.h:382
#define GEN_SES_STATUS_UPS_ACCESSORS(LCASE, UCASE)
Definition: scsi_ses.h:1601
ses_ctrl_sas_connector_field_data
Definition: scsi_ses.h:892
@ SES_CTRL_SAS_CONNECTOR_RQST_IDENT_SHIFT
Definition: scsi_ses.h:895
@ SES_CTRL_SAS_CONNECTOR_RQST_IDENT_MASK
Definition: scsi_ses.h:894
@ SES_CTRL_SAS_CONNECTOR_RQST_FAIL_SHIFT
Definition: scsi_ses.h:899
@ SES_CTRL_SAS_CONNECTOR_RQST_FAIL_MASK
Definition: scsi_ses.h:898
@ SES_CTRL_SAS_CONNECTOR_RQST_IDENT_BYTE
Definition: scsi_ses.h:893
@ SES_CTRL_SAS_CONNECTOR_RQST_FAIL_BYTE
Definition: scsi_ses.h:897
struct ses_page_hdr hdr
Definition: scsi_ses.h:2160
struct ses_page_hdr hdr
Definition: scsi_ses.h:146
struct ses_enc_desc subencs[]
Definition: scsi_ses.h:147
uint8_t gen_code[4]
Definition: scsi_ses.h:2168
uint8_t length[2]
Definition: scsi_ses.h:2167
struct ses_ctrl_common common
Definition: scsi_ses.h:253
struct ses_ctrl_common common
Definition: scsi_ses.h:424
uint8_t bytes[3]
Definition: scsi_ses.h:716
struct ses_ctrl_common common
Definition: scsi_ses.h:715
uint8_t bytes[1]
Definition: scsi_ses.h:160
uint8_t bytes[3]
Definition: scsi_ses.h:341
struct ses_ctrl_common common
Definition: scsi_ses.h:340
struct ses_ctrl_common common
Definition: scsi_ses.h:765
struct ses_ctrl_common common
Definition: scsi_ses.h:191
uint8_t bytes[3]
Definition: scsi_ses.h:192
uint8_t bytes[1]
Definition: scsi_ses.h:569
struct ses_ctrl_common common
Definition: scsi_ses.h:568
uint8_t display_character[2]
Definition: scsi_ses.h:570
uint8_t bytes[3]
Definition: scsi_ses.h:398
struct ses_ctrl_common common
Definition: scsi_ses.h:397
struct ses_ctrl_common common
Definition: scsi_ses.h:465
struct ses_ctrl_common common
Definition: scsi_ses.h:621
uint8_t bytes[3]
Definition: scsi_ses.h:622
struct ses_ctrl_common common
Definition: scsi_ses.h:815
struct ses_ctrl_common common
Definition: scsi_ses.h:538
Definition: scsi_ses.h:598
struct ses_ctrl_common common
Definition: scsi_ses.h:599
uint8_t bytes[3]
Definition: scsi_ses.h:600
struct ses_ctrl_common common
Definition: scsi_ses.h:697
uint8_t bytes[1]
Definition: scsi_ses.h:698
uint8_t language_code[2]
Definition: scsi_ses.h:699
struct ses_ctrl_common common
Definition: scsi_ses.h:516
uint8_t bytes[3]
Definition: scsi_ses.h:517
struct ses_page_hdr hdr
Definition: scsi_ses.h:940
union ses_ctrl_element elements[]
Definition: scsi_ses.h:941
struct ses_ctrl_common common
Definition: scsi_ses.h:313
uint8_t bytes[3]
Definition: scsi_ses.h:314
struct ses_ctrl_common common
Definition: scsi_ses.h:888
uint8_t bytes[3]
Definition: scsi_ses.h:867
struct ses_ctrl_common common
Definition: scsi_ses.h:866
struct ses_ctrl_common common
Definition: scsi_ses.h:493
struct ses_ctrl_common common
Definition: scsi_ses.h:669
struct ses_ctrl_common common
Definition: scsi_ses.h:843
uint8_t bytes[3]
Definition: scsi_ses.h:789
struct ses_ctrl_common common
Definition: scsi_ses.h:788
uint8_t bytes[3]
Definition: scsi_ses.h:376
struct ses_ctrl_common common
Definition: scsi_ses.h:375
struct ses_ctrl_common common
Definition: scsi_ses.h:546
uint8_t bytes[3]
Definition: scsi_ses.h:547
struct ses_ctrl_common common
Definition: scsi_ses.h:742
struct ses_elem_descr descrs[]
Definition: scsi_ses.h:2155
struct ses_page_hdr hdr
Definition: scsi_ses.h:2154
char description[]
Definition: scsi_ses.h:2150
uint8_t reserved[2]
Definition: scsi_ses.h:2148
uint8_t length[2]
Definition: scsi_ses.h:2149
struct ses_elm_addlstatus_base_hdr base
Definition: scsi_ses.h:2481
uint8_t target[4]
Definition: scsi_ses.h:2463
uint8_t bus[4]
Definition: scsi_ses.h:2462
uint8_t length[2]
Definition: scsi_ses.h:2268
uint8_t reserved[2]
Definition: scsi_ses.h:2267
uint8_t dev_slot_num
Definition: scsi_ses.h:2282
uint8_t node_name[8]
Definition: scsi_ses.h:2283
uint8_t reserved[2]
Definition: scsi_ses.h:2281
uint8_t node_name[8]
Definition: scsi_ses.h:2289
uint8_t port_loop_position
Definition: scsi_ses.h:2303
uint8_t n_port_id[3]
Definition: scsi_ses.h:2333
uint8_t bypass_reason
Definition: scsi_ses.h:2304
uint8_t n_port_name[8]
Definition: scsi_ses.h:2334
uint8_t port_req_hard_addr
Definition: scsi_ses.h:2332
uint8_t reserved1[7]
Definition: scsi_ses.h:2373
uint8_t parent_addr[8]
Definition: scsi_ses.h:2370
uint8_t connector_index
Definition: scsi_ses.h:2389
uint8_t phy_addr[8]
Definition: scsi_ses.h:2391
struct ses_elm_sas_type0_base_hdr base
Definition: scsi_ses.h:2407
uint8_t etype_subenc
Definition: scsi_ses.h:141
uint8_t etype_txt_len
Definition: scsi_ses.h:142
uint8_t etype_elm_type
Definition: scsi_ses.h:139
uint8_t etype_maxelt
Definition: scsi_ses.h:140
uint8_t vendor_id[8]
Definition: scsi_ses.h:113
uint8_t subenc_id
Definition: scsi_ses.h:109
uint8_t logical_id[8]
Definition: scsi_ses.h:112
uint8_t byte0
Definition: scsi_ses.h:102
uint8_t length
Definition: scsi_ses.h:111
uint8_t product_id[16]
Definition: scsi_ses.h:114
uint8_t num_types
Definition: scsi_ses.h:110
uint8_t product_rev[4]
Definition: scsi_ses.h:115
uint8_t vendor_bytes[]
Definition: scsi_ses.h:116
uint8_t page_specific_flags
Definition: scsi_ses.h:83
uint8_t length[2]
Definition: scsi_ses.h:84
uint8_t page_code
Definition: scsi_ses.h:82
uint8_t gen_code[4]
Definition: scsi_ses.h:85
struct ses_status_common common
Definition: scsi_ses.h:1094
struct ses_status_common common
Definition: scsi_ses.h:1361
uint8_t bytes[3]
Definition: scsi_ses.h:1785
struct ses_status_common common
Definition: scsi_ses.h:1784
uint8_t bytes[1]
Definition: scsi_ses.h:969
uint8_t bytes[3]
Definition: scsi_ses.h:1226
struct ses_status_common common
Definition: scsi_ses.h:1225
struct ses_status_common common
Definition: scsi_ses.h:1855
uint8_t slot_address
Definition: scsi_ses.h:1002
uint8_t bytes[2]
Definition: scsi_ses.h:1003
struct ses_status_common common
Definition: scsi_ses.h:1001
uint8_t display_character[2]
Definition: scsi_ses.h:1621
struct ses_status_common common
Definition: scsi_ses.h:1619
uint8_t bytes[1]
Definition: scsi_ses.h:1620
uint8_t bytes[3]
Definition: scsi_ses.h:1335
struct ses_status_common common
Definition: scsi_ses.h:1334
struct ses_status_common common
Definition: scsi_ses.h:1407
uint8_t bytes[3]
Definition: scsi_ses.h:1673
struct ses_status_common common
Definition: scsi_ses.h:1672
struct ses_status_common common
Definition: scsi_ses.h:1920
struct ses_status_common common
Definition: scsi_ses.h:1512
Definition: scsi_ses.h:1649
uint8_t bytes[3]
Definition: scsi_ses.h:1651
struct ses_status_common common
Definition: scsi_ses.h:1650
struct ses_status_common common
Definition: scsi_ses.h:1766
uint8_t bytes[1]
Definition: scsi_ses.h:1767
uint8_t language_code[2]
Definition: scsi_ses.h:1768
uint8_t cache_size[2]
Definition: scsi_ses.h:1470
uint8_t bytes[1]
Definition: scsi_ses.h:1469
struct ses_status_common common
Definition: scsi_ses.h:1468
uint8_t status_flags
Definition: scsi_ses.h:2174
uint8_t gen_code[4]
Definition: scsi_ses.h:2176
uint8_t length[2]
Definition: scsi_ses.h:2175
struct ses_page_hdr hdr
Definition: scsi_ses.h:2107
union ses_status_element elements[]
Definition: scsi_ses.h:2108
struct ses_status_common common
Definition: scsi_ses.h:1999
struct ses_status_common common
Definition: scsi_ses.h:1977
struct ses_status_common common
Definition: scsi_ses.h:1440
struct ses_status_common common
Definition: scsi_ses.h:1723
uint8_t short_enclosure_status
Definition: scsi_ses.h:1955
struct ses_status_common common
Definition: scsi_ses.h:1953
struct ses_status_common common
Definition: scsi_ses.h:1888
struct ses_status_common common
Definition: scsi_ses.h:1287
uint8_t battery_status
Definition: scsi_ses.h:1547
uint8_t bytes[2]
Definition: scsi_ses.h:1548
struct ses_status_common common
Definition: scsi_ses.h:1545
struct ses_status_common common
Definition: scsi_ses.h:1811
struct ses_ctrl_sas_connector sas_connector
Definition: scsi_ses.h:935
struct ses_ctrl_current_sensor current_sensor
Definition: scsi_ses.h:930
struct ses_ctrl_array_dev_slot array_dev_slot
Definition: scsi_ses.h:913
struct ses_ctrl_sas_expander sas_expander
Definition: scsi_ses.h:934
struct ses_ctrl_language language
Definition: scsi_ses.h:927
struct ses_ctrl_initiator_port initiator_port
Definition: scsi_ses.h:932
struct ses_ctrl_power_supply power_supply
Definition: scsi_ses.h:914
struct ses_ctrl_common common
Definition: scsi_ses.h:911
struct ses_ctrl_ups ups
Definition: scsi_ses.h:923
struct ses_ctrl_comm_port comm_port
Definition: scsi_ses.h:928
struct ses_ctrl_nv_cache nv_cache
Definition: scsi_ses.h:921
struct ses_ctrl_cooling cooling
Definition: scsi_ses.h:915
struct ses_ctrl_scsi_port_or_xcvr scsi_port_or_xcvr
Definition: scsi_ses.h:926
struct ses_ctrl_target_port target_port
Definition: scsi_ses.h:931
struct ses_ctrl_simple_subenc simple_subenc
Definition: scsi_ses.h:933
struct ses_ctrl_display display
Definition: scsi_ses.h:924
struct ses_ctrl_key_pad_entry key_pad_entry
Definition: scsi_ses.h:925
struct ses_ctrl_ecc_electronics ecc_electronics
Definition: scsi_ses.h:919
struct ses_ctrl_voltage_sensor voltage_sensor
Definition: scsi_ses.h:929
struct ses_ctrl_door_lock door_lock
Definition: scsi_ses.h:917
struct ses_ctrl_dev_slot dev_slot
Definition: scsi_ses.h:912
struct ses_ctrl_invalid_op_reason invalid_op_reason
Definition: scsi_ses.h:922
struct ses_ctrl_temp_sensor temp_sensor
Definition: scsi_ses.h:916
struct ses_ctrl_scc_electronics scc_electronics
Definition: scsi_ses.h:920
struct ses_ctrl_audible_alarm audible_alarm
Definition: scsi_ses.h:918
struct ses_elm_addlstatus_eip_hdr eip
Definition: scsi_ses.h:2497
struct ses_elm_addlstatus_base_hdr base
Definition: scsi_ses.h:2496
union ses_elm_fc_hdr fc
Definition: scsi_ses.h:2501
union ses_elm_sas_hdr sas
Definition: scsi_ses.h:2502
struct ses_elm_fc_eip_hdr eip_hdr
Definition: scsi_ses.h:2298
struct ses_elm_fc_base_hdr base_hdr
Definition: scsi_ses.h:2297
struct ses_elm_fc_noneip_hdr noneip_hdr
Definition: scsi_ses.h:2299
struct ses_elm_sas_type0_eip_hdr type0_eip
Definition: scsi_ses.h:2448
struct ses_elm_sas_base_hdr base_hdr
Definition: scsi_ses.h:2446
struct ses_elm_sas_type1_nonexpander_hdr type1_nonexp
Definition: scsi_ses.h:2450
struct ses_elm_sas_type0_base_hdr type0_noneip
Definition: scsi_ses.h:2447
struct ses_elm_sas_type1_expander_hdr type1_exp
Definition: scsi_ses.h:2449
unsigned int obj_id
Definition: scsi_ses.h:2261
struct ses_status_sas_expander sas_expander
Definition: scsi_ses.h:2056
struct ses_status_key_pad_entry key_pad_entry
Definition: scsi_ses.h:2047
struct ses_status_power_supply power_supply
Definition: scsi_ses.h:2036
struct ses_status_scsi_port_or_xcvr scsi_port_or_xcvr
Definition: scsi_ses.h:2048
struct ses_status_door_lock door_lock
Definition: scsi_ses.h:2039
struct ses_status_audible_alarm audible_alarm
Definition: scsi_ses.h:2040
struct ses_status_current_sensor current_sensor
Definition: scsi_ses.h:2052
struct ses_status_comm_port comm_port
Definition: scsi_ses.h:2050
struct ses_status_common common
Definition: scsi_ses.h:2033
uint8_t bytes[4]
Definition: scsi_ses.h:2058
struct ses_status_ecc_electronics ecc_electronics
Definition: scsi_ses.h:2041
struct ses_status_sas_connector sas_connector
Definition: scsi_ses.h:2057
struct ses_status_nv_cache nv_cache
Definition: scsi_ses.h:2043
struct ses_status_initiator_port initiator_port
Definition: scsi_ses.h:2054
struct ses_status_cooling cooling
Definition: scsi_ses.h:2037
struct ses_status_display display
Definition: scsi_ses.h:2046
struct ses_status_scc_electronics scc_electronics
Definition: scsi_ses.h:2042
struct ses_status_language language
Definition: scsi_ses.h:2049
struct ses_status_temp_sensor temp_sensor
Definition: scsi_ses.h:2038
struct ses_status_ups ups
Definition: scsi_ses.h:2045
struct ses_status_array_dev_slot array_dev_slot
Definition: scsi_ses.h:2035
struct ses_status_target_port target_port
Definition: scsi_ses.h:2053
struct ses_status_dev_slot dev_slot
Definition: scsi_ses.h:2034
struct ses_status_voltage_sensor voltage_sensor
Definition: scsi_ses.h:2051
struct ses_status_simple_subses simple_subses
Definition: scsi_ses.h:2055
struct ses_status_invalid_op_reason invalid_op_reason
Definition: scsi_ses.h:2044