#include "src/trace_processor/importers/perf/sample.h"
#include <cstdint>
#include <optional>
#include <utility>
#include <vector>
#include "perfetto/base/logging.h"
#include "perfetto/base/status.h"
#include "perfetto/public/compiler.h"
#include "src/trace_processor/importers/perf/perf_event.h"
#include "src/trace_processor/importers/perf/reader.h"
#include "src/trace_processor/importers/perf/record.h"
#include "protos/perfetto/trace/profiling/profile_packet.pbzero.h"
namespace perfetto::trace_processor::perf_importer {
namespace {
bool ParseSampleReadGroup(Reader& reader,
uint64_t read_format,
uint64_t num_records,
std::vector<Sample::ReadGroup>& out) { … }
bool ParseSampleRead(Reader& reader,
uint64_t read_format,
std::vector<Sample::ReadGroup>& out) { … }
protos::pbzero::Profiling::CpuMode PerfCallchainContextToCpuMode(uint64_t ip) { … }
bool IsPerfContextMark(uint64_t ip) { … }
bool ParseSampleCallchain(Reader& reader,
protos::pbzero::Profiling::CpuMode cpu_mode,
std::vector<Sample::Frame>& out) { … }
}
base::Status Sample::Parse(int64_t in_trace_ts, const Record& record) { … }
}