OSDN Git Service

Merge "mksquashfsimage.sh: Make disable-4k-align a paramter" into nyc-dev
[android-x86/system-extras.git] / simpleperf / record_file_writer.cpp
index 48ed325..dddd0b0 100644 (file)
 #include <sys/mman.h>
 #include <unistd.h>
 #include <set>
+#include <string>
 #include <vector>
 
-#include <base/logging.h>
+#include <android-base/file.h>
+#include <android-base/logging.h>
 
 #include "perf_event.h"
 #include "record.h"
@@ -33,7 +35,9 @@ using namespace PerfFileFormat;
 
 std::unique_ptr<RecordFileWriter> RecordFileWriter::CreateInstance(const std::string& filename) {
   // Remove old perf.data to avoid file ownership problems.
-  if (!RemovePossibleFile(filename)) {
+  std::string err;
+  if (!android::base::RemoveFileIfExists(filename, &err)) {
+    LOG(ERROR) << "failed to remove file " << filename << ": " << err;
     return nullptr;
   }
   FILE* fp = fopen(filename.c_str(), "web+");
@@ -129,32 +133,6 @@ bool RecordFileWriter::Write(const void* buf, size_t len) {
   return true;
 }
 
-bool RecordFileWriter::ReadDataSection(std::vector<std::unique_ptr<Record>>* records) {
-  if (fflush(record_fp_) != 0) {
-    PLOG(ERROR) << "fflush() failed";
-    return false;
-  }
-  uint64_t file_size;
-  if (!SeekFileEnd(&file_size)) {
-    return false;
-  }
-  size_t mmap_len = static_cast<size_t>(file_size);
-  void* mmap_addr = mmap(nullptr, mmap_len, PROT_READ, MAP_SHARED, fileno(record_fp_), 0);
-  if (mmap_addr == MAP_FAILED) {
-    PLOG(ERROR) << "mmap() failed";
-    return false;
-  }
-  const char* data_section = reinterpret_cast<char*>(mmap_addr) + data_section_offset_;
-  std::vector<std::unique_ptr<Record>> result =
-      ReadRecordsFromBuffer(event_attr_, data_section, data_section_size_);
-  if (munmap(mmap_addr, mmap_len) == -1) {
-    PLOG(ERROR) << "munmap() failed";
-    return false;
-  }
-  *records = std::move(result);
-  return true;
-}
-
 bool RecordFileWriter::SeekFileEnd(uint64_t* file_end) {
   if (fseek(record_fp_, 0, SEEK_END) == -1) {
     PLOG(ERROR) << "fseek() failed";