OSDN Git Service

simpleperf: check perf event limit.
[android-x86/system-extras.git] / simpleperf / event_selection_set.h
index 54cf3cd..746abfa 100644 (file)
 #ifndef SIMPLE_PERF_EVENT_SELECTION_SET_H_
 #define SIMPLE_PERF_EVENT_SELECTION_SET_H_
 
-#include <poll.h>
 #include <functional>
 #include <map>
 #include <vector>
 
-#include <base/macros.h>
+#include <android-base/macros.h>
 
 #include "event_fd.h"
 #include "event_type.h"
@@ -38,6 +37,8 @@ struct CountersInfo {
   std::vector<CounterInfo> counters;
 };
 
+struct pollfd;
+
 // EventSelectionSet helps to monitor events.
 // Firstly, the user creates an EventSelectionSet, and adds the specific event types to monitor.
 // Secondly, the user defines how to monitor the events (by setting enable_on_exec flag,
@@ -68,10 +69,8 @@ class EventSelectionSet {
   bool EnableDwarfCallChainSampling(uint32_t dump_stack_size);
   void SetInherit(bool enable);
 
-  bool OpenEventFilesForAllCpus();
-  bool OpenEventFilesForThreads(const std::vector<pid_t>& threads);
-  bool OpenEventFilesForThreadsOnAllCpus(const std::vector<pid_t>& threads);
-  bool EnableEvents();
+  bool OpenEventFilesForCpus(const std::vector<int>& cpus);
+  bool OpenEventFilesForThreadsOnCpus(const std::vector<pid_t>& threads, std::vector<int> cpus);
   bool ReadCounters(std::vector<CountersInfo>* counters);
   void PreparePollForEventFiles(std::vector<pollfd>* pollfds);
   bool MmapEventFiles(size_t mmap_pages);