/* * In both ETMv3 and v4 the maximum number of address comparator implentable * is 8. The actual number is implementation specific and will be checked * when filters are applied.
*/ #define ETM_ADDR_CMP_MAX 8
/** * struct etm_filter - single instruction range or start/stop configuration. * @start_addr: The address to start tracing on. * @stop_addr: The address to stop tracing on. * @type: Is this a range or start/stop filter.
*/ struct etm_filter { unsignedlong start_addr; unsignedlong stop_addr; enum etm_addr_type type;
};
/** * struct etm_filters - set of filters for a session * @etm_filter: All the filters for this session. * @nr_filters: Number of filters * @ssstatus: Status of the start/stop logic.
*/ struct etm_filters { struct etm_filter etm_filter[ETM_ADDR_CMP_MAX]; unsignedint nr_filters; bool ssstatus;
};
/** * struct etm_event_data - Coresight specifics associated to an event * @work: Handle to free allocated memory outside IRQ context. * @mask: Hold the CPU(s) this event was set for. * @aux_hwid_done: Whether a CPU has emitted the TraceID packet or not. * @snk_config: The sink configuration. * @cfg_hash: The hash id of any coresight config selected. * @path: An array of path, each slot for one CPU.
*/ struct etm_event_data { struct work_struct work;
cpumask_t mask;
cpumask_t aux_hwid_done; void *snk_config;
u32 cfg_hash; struct coresight_path * __percpu *path;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.