aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/seccomp/libseccomp-helper.h
blob: 330fc99b6bcee5564cd5b383f91fdaa607bc8947 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <seccomp.h>
#include <stdint.h>

#if (SCMP_VER_MAJOR < 2) || (SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR < 5) ||     \
    (SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR == 5 && SCMP_VER_MICRO < 1)
#error This package requires libseccomp >= v2.5.1
#endif

typedef enum {
  HAKUREI_EXPORT_MULTIARCH = 1 << 0,
  HAKUREI_EXPORT_CAN = 1 << 1,
  HAKUREI_EXPORT_BLUETOOTH = 1 << 2,
} hakurei_export_flag;

struct hakurei_syscall_rule {
  int syscall;
  int m_errno;
  struct scmp_arg_cmp *arg;
};

int32_t hakurei_export_filter(int *ret_p, int fd, uint32_t arch,
                              uint32_t multiarch,
                              struct hakurei_syscall_rule *rules,
                              size_t rules_sz, hakurei_export_flag flags);