@@ -562,17 +562,16 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
562562 struct event_id_str_table_entry event_id_str_table_arr [eve_id_index ];
563563 struct vu_event_id_str_table_entry vu_event_id_str_table_arr [vu_eve_index ];
564564 __u8 ascii_table_info_arr [ascii_table_index ];
565- char ascii_buf [ascii_table_index ];
566- char * ascii = ascii_buf ;
565+ char ascii_char [2 ];
567566 int j ;
568567
569568 json_object_add_value_int (root , "Log Page Version" ,
570569 le16_to_cpu (log_data -> log_page_version ));
571570
572- memset ((__u8 * )res , 0 , 15 );
571+ memset ((__u8 * )res , 0 , 48 );
573572 for (j = 0 ; j < 15 ; j ++ )
574573 res += sprintf (res , "%d" , log_data -> reserved1 [j ]);
575- json_object_add_value_string (root , "Reserved" , res_arr );
574+ json_object_add_value_string (root , "Reserved[15:01] " , res_arr );
576575
577576 memset ((void * )guid , 0 , GUID_LEN );
578577 for (j = GUID_LEN - 1 ; j >= 0 ; j -- )
@@ -581,10 +580,11 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
581580
582581 json_object_add_value_int (root , "Telemetry String Log Size" , le64_to_cpu (log_data -> sls ));
583582
584- memset ((__u8 * )res , 0 , 24 );
583+ res = res_arr ;
584+ memset ((__u8 * )res , 0 , 48 );
585585 for (j = 0 ; j < 24 ; j ++ )
586586 res += sprintf (res , "%d" , log_data -> reserved2 [j ]);
587- json_object_add_value_string (root , "Reserved" , res_arr );
587+ json_object_add_value_string (root , "Reserved[63:40] " , res_arr );
588588
589589 json_object_add_value_int (root , "Statistics Identifier String Table Start" ,
590590 le64_to_cpu (log_data -> sits ));
@@ -604,85 +604,101 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
604604 fifo += sprintf (fifo , "%c" , log_data -> fifo1 [j ]);
605605 json_object_add_value_string (root , "FIFO 1 ASCII String" , fifo_arr );
606606
607+ fifo = fifo_arr ;
607608 memset ((void * )fifo , 0 , 16 );
608609 for (j = 0 ; j < 16 ; j ++ )
609610 fifo += sprintf (fifo , "%c" , log_data -> fifo2 [j ]);
610611 json_object_add_value_string (root , "FIFO 2 ASCII String" , fifo_arr );
611612
613+ fifo = fifo_arr ;
612614 memset ((void * )fifo , 0 , 16 );
613615 for (j = 0 ; j < 16 ; j ++ )
614616 fifo += sprintf (fifo , "%c" , log_data -> fifo3 [j ]);
615617 json_object_add_value_string (root , "FIFO 3 ASCII String" , fifo_arr );
616618
619+ fifo = fifo_arr ;
617620 memset ((void * )fifo , 0 , 16 );
618621 for (j = 0 ; j < 16 ; j ++ )
619622 fifo += sprintf (fifo , "%c" , log_data -> fifo4 [j ]);
620623 json_object_add_value_string (root , "FIFO 4 ASCII String" , fifo_arr );
621624
625+ fifo = fifo_arr ;
622626 memset ((void * )fifo , 0 , 16 );
623627 for (j = 0 ; j < 16 ; j ++ )
624628 fifo += sprintf (fifo , "%c" , log_data -> fifo5 [j ]);
625629 json_object_add_value_string (root , "FIFO 5 ASCII String" , fifo_arr );
626630
631+ fifo = fifo_arr ;
627632 memset ((void * )fifo , 0 , 16 );
628633 for (j = 0 ; j < 16 ; j ++ )
629634 fifo += sprintf (fifo , "%c" , log_data -> fifo6 [j ]);
630635 json_object_add_value_string (root , "FIFO 6 ASCII String" , fifo_arr );
631636
637+ fifo = fifo_arr ;
632638 memset ((void * )fifo , 0 , 16 );
633639 for (j = 0 ; j < 16 ; j ++ )
634640 fifo += sprintf (fifo , "%c" , log_data -> fifo7 [j ]);
635641 json_object_add_value_string (root , "FIFO 7 ASCII String" , fifo_arr );
636642
643+ fifo = fifo_arr ;
637644 memset ((void * )fifo , 0 , 16 );
638645 for (j = 0 ; j < 16 ; j ++ )
639646 fifo += sprintf (fifo , "%c" , log_data -> fifo8 [j ]);
640647 json_object_add_value_string (root , "FIFO 8 ASCII String" , fifo_arr );
641648
649+ fifo = fifo_arr ;
642650 memset ((void * )fifo , 0 , 16 );
643651 for (j = 0 ; j < 16 ; j ++ )
644652 fifo += sprintf (fifo , "%c" , log_data -> fifo9 [j ]);
645653 json_object_add_value_string (root , "FIFO 9 ASCII String" , fifo_arr );
646654
655+ fifo = fifo_arr ;
647656 memset ((void * )fifo , 0 , 16 );
648657 for (j = 0 ; j < 16 ; j ++ )
649658 fifo += sprintf (fifo , "%c" , log_data -> fifo10 [j ]);
650659 json_object_add_value_string (root , "FIFO 10 ASCII String" , fifo_arr );
651660
661+ fifo = fifo_arr ;
652662 memset ((void * )fifo , 0 , 16 );
653663 for (j = 0 ; j < 16 ; j ++ )
654664 fifo += sprintf (fifo , "%c" , log_data -> fifo11 [j ]);
655665 json_object_add_value_string (root , "FIFO 11 ASCII String" , fifo_arr );
656666
667+ fifo = fifo_arr ;
657668 memset ((void * )fifo , 0 , 16 );
658669 for (j = 0 ; j < 16 ; j ++ )
659670 fifo += sprintf (fifo , "%c" , log_data -> fifo12 [j ]);
660671 json_object_add_value_string (root , "FIFO 12 ASCII String" , fifo_arr );
661672
673+ fifo = fifo_arr ;
662674 memset ((void * )fifo , 0 , 16 );
663675 for (j = 0 ; j < 16 ; j ++ )
664676 fifo += sprintf (fifo , "%c" , log_data -> fifo13 [j ]);
665677 json_object_add_value_string (root , "FIFO 13 ASCII String" , fifo_arr );
666678
679+ fifo = fifo_arr ;
667680 memset ((void * )fifo , 0 , 16 );
668681 for (j = 0 ; j < 16 ; j ++ )
669682 fifo += sprintf (fifo , "%c" , log_data -> fifo14 [j ]);
670683 json_object_add_value_string (root , "FIFO 14 ASCII String" , fifo_arr );
671684
685+ fifo = fifo_arr ;
672686 memset ((void * )fifo , 0 , 16 );
673687 for (j = 0 ; j < 16 ; j ++ )
674688 fifo += sprintf (fifo , "%c" , log_data -> fifo15 [j ]);
675689 json_object_add_value_string (root , "FIFO 15 ASCII String" , fifo_arr );
676690
691+ fifo = fifo_arr ;
677692 memset ((void * )fifo , 0 , 16 );
678693 for (j = 0 ; j < 16 ; j ++ )
679694 fifo += sprintf (fifo , "%c" , log_data -> fifo16 [j ]);
680695 json_object_add_value_string (root , "FIFO 16 ASCII String" , fifo_arr );
681696
697+ res = res_arr ;
682698 memset ((__u8 * )res , 0 , 48 );
683699 for (j = 0 ; j < 48 ; j ++ )
684700 res += sprintf (res , "%d" , log_data -> reserved3 [j ]);
685- json_object_add_value_string (root , "Reserved" , res_arr );
701+ json_object_add_value_string (root , "Reserved[431:384] " , res_arr );
686702
687703 if (log_data -> sitsz != 0 ) {
688704
@@ -767,13 +783,28 @@ static void json_c9_log(struct telemetry_str_log_format *log_data, __u8 *log_dat
767783 }
768784
769785 if (log_data -> asctsz != 0 ) {
786+ struct json_object * ascii_table = json_create_object ();
787+
770788 memcpy (ascii_table_info_arr ,
771789 (__u8 * )log_data_buf + ascii_table_ofst ,
772790 (log_data -> asctsz * 4 ));
773- memset ((void * )ascii , 0 , ascii_table_index );
774- for (j = 0 ; j < ascii_table_index ; j ++ )
775- ascii += sprintf (ascii , "%c" , ascii_table_info_arr [j ]);
776- json_object_add_value_string (root , "ASCII Table" , ascii_buf );
791+
792+ for (j = 0 ; j < ascii_table_index ; j ++ ) {
793+ struct json_object * entry = json_create_object ();
794+
795+ json_object_add_value_int (entry , "Byte" ,
796+ le16_to_cpu (ascii_table_ofst + j ));
797+ json_object_add_value_int (entry , "Data Byte" ,
798+ le16_to_cpu (ascii_table_info_arr [j ]));
799+ sprintf (ascii_char , "%c" , (ascii_table_info_arr [j ]));
800+ json_object_add_value_string (entry , "ASCII Character" ,
801+ ascii_char );
802+ sprintf (buf , "ASCII Table Entry %d" , j );
803+ json_object_add_value_object (ascii_table , buf , entry );
804+ }
805+ json_object_add_value_object (root ,
806+ "ASCII Table Entry" ,
807+ ascii_table );
777808 }
778809
779810 json_print_object (root , NULL );
0 commit comments