perf cs-etm: Print the decoder name
[linux-2.6-microblaze.git] / tools / perf / util / cs-etm-decoder / cs-etm-decoder.c
index e2a7eca..31fa3b4 100644 (file)
@@ -37,6 +37,7 @@ struct cs_etm_decoder {
        dcd_tree_handle_t dcd_tree;
        cs_etm_mem_cb_type mem_access;
        ocsd_datapath_resp_t prev_return;
+       const char *decoder_name;
 };
 
 static u32
@@ -615,7 +616,6 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
                                   struct cs_etm_trace_params *t_params,
                                   struct cs_etm_decoder *decoder)
 {
-       const char *decoder_name;
        ocsd_etmv3_cfg config_etmv3;
        ocsd_etmv4_cfg trace_config_etmv4;
        ocsd_ete_cfg trace_config_ete;
@@ -626,19 +626,19 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
        case CS_ETM_PROTO_ETMV3:
        case CS_ETM_PROTO_PTM:
                cs_etm_decoder__gen_etmv3_config(t_params, &config_etmv3);
-               decoder_name = (t_params->protocol == CS_ETM_PROTO_ETMV3) ?
+               decoder->decoder_name = (t_params->protocol == CS_ETM_PROTO_ETMV3) ?
                                                        OCSD_BUILTIN_DCD_ETMV3 :
                                                        OCSD_BUILTIN_DCD_PTM;
                trace_config = &config_etmv3;
                break;
        case CS_ETM_PROTO_ETMV4i:
                cs_etm_decoder__gen_etmv4_config(t_params, &trace_config_etmv4);
-               decoder_name = OCSD_BUILTIN_DCD_ETMV4I;
+               decoder->decoder_name = OCSD_BUILTIN_DCD_ETMV4I;
                trace_config = &trace_config_etmv4;
                break;
        case CS_ETM_PROTO_ETE:
                cs_etm_decoder__gen_ete_config(t_params, &trace_config_ete);
-               decoder_name = OCSD_BUILTIN_DCD_ETE;
+               decoder->decoder_name = OCSD_BUILTIN_DCD_ETE;
                trace_config = &trace_config_ete;
                break;
        default:
@@ -647,7 +647,7 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
 
        if (d_params->operation == CS_ETM_OPERATION_DECODE) {
                if (ocsd_dt_create_decoder(decoder->dcd_tree,
-                                          decoder_name,
+                                          decoder->decoder_name,
                                           OCSD_CREATE_FLG_FULL_DECODER,
                                           trace_config, &csid))
                        return -1;
@@ -659,7 +659,7 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
 
                return 0;
        } else if (d_params->operation == CS_ETM_OPERATION_PRINT) {
-               if (ocsd_dt_create_decoder(decoder->dcd_tree, decoder_name,
+               if (ocsd_dt_create_decoder(decoder->dcd_tree, decoder->decoder_name,
                                           OCSD_CREATE_FLG_PACKET_PROC,
                                           trace_config, &csid))
                        return -1;
@@ -791,3 +791,8 @@ void cs_etm_decoder__free(struct cs_etm_decoder *decoder)
        decoder->dcd_tree = NULL;
        free(decoder);
 }
+
+const char *cs_etm_decoder__get_name(struct cs_etm_decoder *decoder)
+{
+       return decoder->decoder_name;
+}