Lines Matching defs:metadata

79 	u64 **metadata;
119 /* Conversion between traceID and metadata pointers */
166 u64 *metadata;
172 metadata = inode->priv;
173 *magic = metadata[CS_ETM_MAGIC];
180 u64 *metadata;
186 metadata = inode->priv;
187 *cpu = (int)metadata[CS_ETM_CPU];
207 static enum cs_etm_pid_fmt cs_etm__init_pid_fmt(u64 *metadata)
211 if (metadata[CS_ETM_MAGIC] == __perf_cs_etmv3_magic) {
212 val = metadata[CS_ETM_ETMCR];
217 val = metadata[CS_ETMV4_TRCCONFIGR];
244 /* Disallow re-mapping a different traceID to metadata pair. */
278 /* Not one we've seen before, associate the traceID with the metadata pointer */
340 * the correct trace ID into the metadata for setting up decoders later.
424 * update metadata trace ID from the value found in the AUX_HW_INFO packet.
446 * Get a metadata index for a specific cpu from an array.
454 if (etm->metadata[i][CS_ETM_CPU] == (u64)cpu) {
463 * Get a metadata for a specific cpu from an array.
470 return (idx != -1) ? etm->metadata[idx] : NULL;
500 /* get access to the etm metadata */
502 if (!etm || !etm->metadata)
793 u64 *metadata, u32 etmidr)
796 t_params->etmv3.reg_ctrl = metadata[CS_ETM_ETMCR];
797 t_params->etmv3.reg_trc_id = metadata[CS_ETM_ETMTRACEIDR];
801 u64 *metadata)
804 t_params->etmv4.reg_idr0 = metadata[CS_ETMV4_TRCIDR0];
805 t_params->etmv4.reg_idr1 = metadata[CS_ETMV4_TRCIDR1];
806 t_params->etmv4.reg_idr2 = metadata[CS_ETMV4_TRCIDR2];
807 t_params->etmv4.reg_idr8 = metadata[CS_ETMV4_TRCIDR8];
808 t_params->etmv4.reg_configr = metadata[CS_ETMV4_TRCCONFIGR];
809 t_params->etmv4.reg_traceidr = metadata[CS_ETMV4_TRCTRACEIDR];
813 u64 *metadata)
816 t_params->ete.reg_idr0 = metadata[CS_ETE_TRCIDR0];
817 t_params->ete.reg_idr1 = metadata[CS_ETE_TRCIDR1];
818 t_params->ete.reg_idr2 = metadata[CS_ETE_TRCIDR2];
819 t_params->ete.reg_idr8 = metadata[CS_ETE_TRCIDR8];
820 t_params->ete.reg_configr = metadata[CS_ETE_TRCCONFIGR];
821 t_params->ete.reg_traceidr = metadata[CS_ETE_TRCTRACEIDR];
822 t_params->ete.reg_devarch = metadata[CS_ETE_TRCDEVARCH];
831 u64 *metadata = inode->priv;
832 u64 architecture = metadata[CS_ETM_MAGIC];
837 etmidr = metadata[CS_ETM_ETMIDR];
838 cs_etm__set_trace_param_etmv3(t_params++, metadata, etmidr);
841 cs_etm__set_trace_param_etmv4(t_params++, metadata);
844 cs_etm__set_trace_param_ete(t_params++, metadata);
977 /* First remove all traceID/metadata nodes for the RB tree */
1014 zfree(&aux->metadata[i]);
1016 zfree(&aux->metadata);
1173 * Create an RB tree for traceID-metadata tuple. Since the conversion
2954 * fill out the nr_param value in the metadata we create.
2959 u64 *metadata = NULL;
2964 metadata = zalloc(sizeof(*metadata) * out_blk_size);
2965 if (!metadata)
2973 /* read version 0 info block into a version 1 metadata block */
2975 metadata[CS_ETM_MAGIC] = buff_in[i + CS_ETM_MAGIC];
2976 metadata[CS_ETM_CPU] = buff_in[i + CS_ETM_CPU];
2977 metadata[CS_ETM_NR_TRC_PARAMS] = nr_in_params;
2980 metadata[k + 1] = buff_in[i + k];
2995 metadata[k] = buff_in[i + k];
2998 metadata[CS_ETM_NR_TRC_PARAMS] = nr_out_params - nr_cmn_params;
3004 return metadata;
3217 #define HAS_PARAM(j, type, param) (metadata[(j)][CS_ETM_NR_TRC_PARAMS] <= \
3224 static bool cs_etm__has_virtual_ts(u64 **metadata, int num_cpu)
3229 switch (metadata[j][CS_ETM_MAGIC]) {
3231 if (HAS_PARAM(j, ETMV4, TS_SOURCE) || metadata[j][CS_ETMV4_TS_SOURCE] != 1)
3235 if (HAS_PARAM(j, ETE, TS_SOURCE) || metadata[j][CS_ETE_TS_SOURCE] != 1)
3246 /* map trace ids to correct metadata block, from information in metadata */
3248 u64 **metadata)
3255 cs_etm_magic = metadata[i][CS_ETM_MAGIC];
3258 metadata[i][CS_ETM_ETMTRACEIDR] &= CORESIGHT_TRACE_ID_VAL_MASK;
3259 trace_chan_id = (u8)(metadata[i][CS_ETM_ETMTRACEIDR]);
3263 metadata[i][CS_ETMV4_TRCTRACEIDR] &= CORESIGHT_TRACE_ID_VAL_MASK;
3264 trace_chan_id = (u8)(metadata[i][CS_ETMV4_TRCTRACEIDR]);
3270 err = cs_etm__map_trace_id_v0(etm, trace_chan_id, metadata[i]);
3297 /* Use metadata to fill in trace parameters for trace decoder */
3375 u64 **metadata = NULL;
3380 metadata = zalloc(sizeof(*metadata) * num_cpu);
3381 if (!metadata)
3388 * The metadata is stored in the auxtrace_info section and encodes
3395 metadata[j] =
3400 metadata[j] =
3405 metadata[j] = cs_etm__create_meta_blk(ptr, &i, CS_ETE_PRIV_MAX, -1);
3413 if (!metadata[j]) {
3418 if ((int) metadata[j][CS_ETM_CPU] > max_cpu)
3419 max_cpu = metadata[j][CS_ETM_CPU];
3425 * global metadata, and each cpu's metadata respectively.
3447 etm->pid_fmt = cs_etm__init_pid_fmt(metadata[0]);
3472 etm->metadata = metadata;
3488 etm->has_virtual_ts = cs_etm__has_virtual_ts(metadata, num_cpu);
3527 * Map Trace ID values to CPU metadata.
3529 * Trace metadata will always contain Trace ID values from the legacy algorithm
3540 * the metadata and decoders are only created for each mapping received.
3543 * then we map Trace ID values to CPU directly from the metadata and create decoders
3547 /* Scan for AUX_OUTPUT_HW_ID records to map trace ID values to CPU metadata */
3555 /* if no HW ID found this is a file with metadata values only, map from metadata */
3557 err = cs_etm__map_trace_ids_metadata(etm, num_cpu, metadata);
3575 /* No need to check @metadata[j], free(NULL) is supported */
3577 zfree(&metadata[j]);
3578 zfree(&metadata);