1
#pragma once
2

            
3
#if !defined(__linux__)
4
#error "Linux platform file is part of non-Linux build."
5
#endif
6

            
7
#include <sched.h>
8

            
9
#include "envoy/api/os_sys_calls_common.h"
10
#include "envoy/common/pure.h"
11

            
12
namespace Envoy {
13
namespace Api {
14

            
15
class LinuxOsSysCalls {
16
public:
17
6
  virtual ~LinuxOsSysCalls() = default;
18

            
19
  /**
20
   * @see man 2 setns
21
   */
22
  virtual SysCallIntResult setns(int fd, int nstype) const PURE;
23

            
24
  /**
25
   * @see sched_getaffinity (man 2 sched_getaffinity)
26
   */
27
  virtual SysCallIntResult sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t* mask) PURE;
28
};
29

            
30
using LinuxOsSysCallsPtr = std::unique_ptr<LinuxOsSysCalls>;
31

            
32
} // namespace Api
33
} // namespace Envoy