summaryrefslogtreecommitdiff
path: root/simpleperf/ETMRecorder.h
diff options
context:
space:
mode:
Diffstat (limited to 'simpleperf/ETMRecorder.h')
-rw-r--r--simpleperf/ETMRecorder.h77
1 files changed, 0 insertions, 77 deletions
diff --git a/simpleperf/ETMRecorder.h b/simpleperf/ETMRecorder.h
deleted file mode 100644
index 219741fb..00000000
--- a/simpleperf/ETMRecorder.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <inttypes.h>
-
-#include <map>
-#include <memory>
-
-#include "event_type.h"
-#include "record.h"
-#include "perf_event.h"
-
-namespace simpleperf {
-
-struct ETMPerCpu {
- uint32_t trcidr0;
- uint32_t trcidr1;
- uint32_t trcidr2;
- uint32_t trcidr4;
- uint32_t trcidr8;
- uint32_t trcauthstatus;
-
- int GetMajorVersion() const;
- bool IsContextIDSupported() const;
- bool IsTimestampSupported() const;
-};
-
-// Help recording Coresight ETM data on ARM devices.
-// 1. Get etm event type on device.
-// 2. Get sink config, which selects the ETR device moving etm data to memory.
-// 3. Get etm info on each cpu.
-// The etm event type and sink config are used to build perf_event_attr for etm data tracing.
-// The etm info is kept in perf.data to help etm decoding.
-class ETMRecorder {
- public:
- static ETMRecorder& GetInstance();
-
- // If not found, return -1.
- int GetEtmEventType();
- std::unique_ptr<EventType> BuildEventType();
- bool CheckEtmSupport();
- void SetEtmPerfEventAttr(perf_event_attr* attr);
- AuxTraceInfoRecord CreateAuxTraceInfoRecord();
- size_t GetAddrFilterPairs();
-
- private:
- bool ReadEtmInfo();
- bool FindSinkConfig();
- void BuildEtmConfig();
-
- int event_type_ = 0;
- bool etm_supported_ = false;
- // select ETR device, setting in perf_event_attr->config2
- uint32_t sink_config_ = 0;
- // select etm options (timestamp, context_id, ...), setting in perf_event_attr->config
- uint64_t etm_event_config_ = 0;
- // record etm options in AuxTraceInfoRecord
- uint32_t etm_config_reg_ = 0;
- std::map<int, ETMPerCpu> etm_info_;
-};
-
-} // namespace simpleperf \ No newline at end of file