Motorcortex Core  version: 2.7.6
utl_isolcpus.h
1 /*
2  * Developer : Alexey Zakharov (alexey.zakharov@vectioneer.com)
3  * All rights reserved. Copyright (c) 2016 VECTIONEER.
4  */
5 
6 #ifndef UTILS_UTL_ISOLCPUS_H
7 #define UTILS_UTL_ISOLCPUS_H
8 
9 #include <string>
10 #include <unistd.h>
11 #include <vector>
12 
13 namespace mcx::utils {
14 
15 struct ProcessInfo {
16  pid_t pid;
17  std::string proc_path;
18  std::string proc_name;
19 };
20 
21 void isolateCpuList(const std::vector<uint32_t>& cpu_list);
22 
23 std::vector<ProcessInfo> getProcessId(const std::vector<std::string>& proc_list);
24 
25 bool bindIrqList(const std::vector<uint32_t>& cpu_list, const std::vector<uint32_t>& irq_list);
26 
27 bool bindProcList(const std::vector<uint32_t>& cpu_list, const std::vector<std::string>& proc_list);
28 
29 void resetIsolateCpu();
30 
31 std::vector<uint32_t> getAllCpu();
32 
33 std::vector<uint32_t> getAvailableCpu();
34 
35 std::vector<uint32_t> getIsolatedCpu();
36 
37 cpu_set_t toCpuSet(const std::vector<uint32_t>& cpu_list);
38 
39 std::vector<uint32_t> fromCpuSet(const cpu_set_t& cpuset);
40 
41 } // namespace mcx::utils
42 
43 #endif // UTILS_UTL_ISOLCPUS_H
mcx::utils::ProcessInfo
Definition: utl_isolcpus.h:15