@@ -136,85 +136,84 @@ static void json_fw_activation_history(const struct fw_activation_history *fw_hi
136136 printf ("\n" );
137137}
138138
139- static void json_smart_extended_log (void * data )
139+ static void json_smart_extended_log (struct ocp_smart_extended_log * log )
140140{
141141 struct json_object * root ;
142142 struct json_object * pmuw ;
143143 struct json_object * pmur ;
144144 uint16_t smart_log_ver = 0 ;
145- __u8 * log_data = data ;
146145 char guid [40 ];
147146
148147 root = json_create_object ();
149148 pmuw = json_create_object ();
150149 pmur = json_create_object ();
151150
152151 json_object_add_value_uint64 (pmuw , "hi" ,
153- ( uint64_t ) le64_to_cpu (* (uint64_t * )& log_data [ SCAO_PMUW + 8 ] & 0xFFFFFFFFFFFFFFFF ));
152+ le64_to_cpu (* (uint64_t * )& log -> physical_media_units_written [ 8 ] ));
154153 json_object_add_value_uint64 (pmuw , "lo" ,
155- ( uint64_t ) le64_to_cpu (* (uint64_t * )& log_data [ SCAO_PMUW ] & 0xFFFFFFFFFFFFFFFF ));
154+ le64_to_cpu (* (uint64_t * )& log -> physical_media_units_written ));
156155 json_object_add_value_object (root , "Physical media units written" , pmuw );
157156 json_object_add_value_uint64 (pmur , "hi" ,
158- ( uint64_t ) le64_to_cpu (* (uint64_t * )& log_data [ SCAO_PMUR + 8 ] & 0xFFFFFFFFFFFFFFFF ));
157+ le64_to_cpu (* (uint64_t * )& log -> physical_media_units_read [ 8 ] ));
159158 json_object_add_value_uint64 (pmur , "lo" ,
160- ( uint64_t ) le64_to_cpu (* (uint64_t * )& log_data [ SCAO_PMUR ] & 0xFFFFFFFFFFFFFFFF ));
159+ le64_to_cpu (* (uint64_t * )& log -> physical_media_units_read ));
161160 json_object_add_value_object (root , "Physical media units read" , pmur );
162161 json_object_add_value_uint64 (root , "Bad user nand blocks - Raw" ,
163- ( uint64_t ) le64_to_cpu ( * ( uint64_t * ) & log_data [ SCAO_BUNBR ] & 0x0000FFFFFFFFFFFF ));
162+ int48_to_long ( log -> bad_user_nand_blocks_raw ));
164163 json_object_add_value_uint (root , "Bad user nand blocks - Normalized" ,
165- ( uint16_t ) le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_BUNBN ] ));
164+ le16_to_cpu (log -> bad_user_nand_blocks_normalized ));
166165 json_object_add_value_uint64 (root , "Bad system nand blocks - Raw" ,
167- ( uint64_t ) le64_to_cpu ( * ( uint64_t * ) & log_data [ SCAO_BSNBR ] & 0x0000FFFFFFFFFFFF ));
166+ int48_to_long ( log -> bad_system_nand_blocks_raw ));
168167 json_object_add_value_uint (root , "Bad system nand blocks - Normalized" ,
169- ( uint16_t ) le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_BSNBN ] ));
168+ le16_to_cpu (log -> bad_system_nand_blocks_normalized ));
170169 json_object_add_value_uint64 (root , "XOR recovery count" ,
171- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_XRC ] ));
170+ le64_to_cpu (log -> xor_recovery_count ));
172171 json_object_add_value_uint64 (root , "Uncorrectable read error count" ,
173- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_UREC ] ));
172+ le64_to_cpu (log -> uncorrectable_read_err_count ));
174173 json_object_add_value_uint64 (root , "Soft ecc error count" ,
175- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_SEEC ] ));
174+ le64_to_cpu (log -> soft_ecc_err_count ));
176175 json_object_add_value_uint (root , "End to end detected errors" ,
177- ( uint32_t ) le32_to_cpu (* ( uint32_t * ) & log_data [ SCAO_EEDC ] ));
176+ le32_to_cpu (log -> end_to_end_detected_err ));
178177 json_object_add_value_uint (root , "End to end corrected errors" ,
179- ( uint32_t ) le32_to_cpu (* ( uint32_t * ) & log_data [ SCAO_EECE ] ));
178+ le32_to_cpu (log -> end_to_end_corrected_err ));
180179 json_object_add_value_uint (root , "System data percent used" ,
181- ( __u8 ) log_data [ SCAO_SDPU ] );
180+ log -> system_data_used_percent );
182181 json_object_add_value_uint64 (root , "Refresh counts" ,
183- ( uint64_t )( le64_to_cpu (* (uint64_t * )& log_data [ SCAO_RFSC ] ) & 0x00FFFFFFFFFFFFFF ) );
182+ le64_to_cpu (* (uint64_t * )& log -> refresh_counts ) & 0x00FFFFFFFFFFFFFF );
184183 json_object_add_value_uint (root , "Max User data erase counts" ,
185- ( uint32_t ) le32_to_cpu (* ( uint32_t * ) & log_data [ SCAO_MXUDEC ] ));
184+ le32_to_cpu (log -> user_data_erase_count_max ));
186185 json_object_add_value_uint (root , "Min User data erase counts" ,
187- ( uint32_t ) le32_to_cpu (* ( uint32_t * ) & log_data [ SCAO_MNUDEC ] ));
186+ le32_to_cpu (log -> user_data_erase_count_min ));
188187 json_object_add_value_uint (root , "Number of Thermal throttling events" ,
189- ( __u8 ) log_data [ SCAO_NTTE ] );
188+ log -> thermal_throttling_event_count );
190189 json_object_add_value_uint (root , "Current throttling status" ,
191- ( __u8 ) log_data [ SCAO_CTS ] );
190+ log -> thermal_throttling_current_status );
192191 json_object_add_value_uint64 (root , "PCIe correctable error count" ,
193- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_PCEC ] ));
192+ le64_to_cpu (log -> pcie_correctable_err_count ));
194193 json_object_add_value_uint (root , "Incomplete shutdowns" ,
195- ( uint32_t ) le32_to_cpu (* ( uint32_t * ) & log_data [ SCAO_ICS ] ));
194+ le32_to_cpu (log -> incomplete_shoutdowns ));
196195 json_object_add_value_uint (root , "Percent free blocks" ,
197- ( __u8 ) log_data [ SCAO_PFB ] );
196+ log -> percent_free_blocks );
198197 json_object_add_value_uint (root , "Capacitor health" ,
199- ( uint16_t ) le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_CPH ] ));
198+ le16_to_cpu (log -> capacitor_health ));
200199 json_object_add_value_uint64 (root , "Unaligned I/O" ,
201- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_UIO ] ));
200+ le64_to_cpu (log -> unaligned_io ));
202201 json_object_add_value_uint64 (root , "Security Version Number" ,
203- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_SVN ] ));
202+ le64_to_cpu (log -> security_version ));
204203 json_object_add_value_uint64 (root , "NUSE - Namespace utilization" ,
205- ( uint64_t ) le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_NUSE ] ));
204+ le64_to_cpu (log -> total_nuse ));
206205 json_object_add_value_uint128 (root , "PLP start count" ,
207- le128_to_cpu (& log_data [ SCAO_PSC ] ));
206+ le128_to_cpu (log -> plp_start_count ));
208207 json_object_add_value_uint128 (root , "Endurance estimate" ,
209- le128_to_cpu (& log_data [ SCAO_EEST ] ));
210- smart_log_ver = ( uint16_t ) le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_LPV ] );
208+ le128_to_cpu (log -> endurance_estimate ));
209+ smart_log_ver = le16_to_cpu (log -> log_page_version );
211210
212211 json_object_add_value_uint (root , "Log page version" , smart_log_ver );
213212
214213 memset ((void * )guid , 0 , 40 );
215214 sprintf ((char * )guid , "0x%" PRIx64 "%" PRIx64 "" ,
216- (uint64_t )le64_to_cpu (* (uint64_t * )& log_data [ SCAO_LPG + 8 ]),
217- (uint64_t )le64_to_cpu (* (uint64_t * )& log_data [ SCAO_LPG ] ));
215+ (uint64_t )le64_to_cpu (* (uint64_t * )& log -> log_page_guid [ 8 ]),
216+ (uint64_t )le64_to_cpu (* (uint64_t * )& log -> log_page_guid ));
218217 json_object_add_value_string (root , "Log page GUID" , guid );
219218
220219 switch (smart_log_ver ) {
@@ -223,25 +222,25 @@ static void json_smart_extended_log(void *data)
223222 default :
224223 case 4 :
225224 json_object_add_value_uint (root , "NVMe Command Set Errata Version" ,
226- ( __u8 ) log_data [ SCAO_NCSEV ] );
225+ log -> nvme_cmdset_errata_version );
227226 json_object_add_value_uint (root , "Lowest Permitted Firmware Revision" ,
228- le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_PSCC ] ));
227+ le64_to_cpu (log -> lowest_permitted_fw_rev ));
229228 fallthrough ;
230229 case 2 ... 3 :
231230 json_object_add_value_uint (root , "Errata Version Field" ,
232- ( __u8 ) log_data [ SCAO_EVF ] );
231+ log -> dssd_errata_version );
233232 json_object_add_value_uint (root , "Point Version Field" ,
234- le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_PVF ] ));
233+ le16_to_cpu (log -> dssd_point_version ));
235234 json_object_add_value_uint (root , "Minor Version Field" ,
236- le16_to_cpu (* ( uint16_t * ) & log_data [ SCAO_MIVF ] ));
235+ le16_to_cpu (log -> dssd_minor_version ));
237236 json_object_add_value_uint (root , "Major Version Field" ,
238- ( __u8 ) log_data [ SCAO_MAVF ] );
237+ log -> dssd_major_version );
239238 json_object_add_value_uint (root , "NVMe Base Errata Version" ,
240- ( __u8 ) log_data [ SCAO_NBEV ] );
239+ log -> nvme_base_errata_version );
241240 json_object_add_value_uint (root , "PCIe Link Retraining Count" ,
242- le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_PLRC ] ));
241+ le64_to_cpu (log -> pcie_link_retaining_count ));
243242 json_object_add_value_uint (root , "Power State Change Count" ,
244- le64_to_cpu (* ( uint64_t * ) & log_data [ SCAO_PSCC ] ));
243+ le64_to_cpu (log -> power_state_change_count ));
245244 }
246245 json_print_object (root , NULL );
247246 printf ("\n" );
0 commit comments