aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/seccomp/libseccomp-helper.h
blob: 0fad2d4ab4001bc3cc674e4ef66ca6b111b35e17 (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
25
#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;
};

extern void *hakurei_scmp_allocate(uintptr_t f, size_t len);
int32_t hakurei_scmp_make_filter(int *ret_p, uintptr_t allocate_p,
                                 uint32_t arch, uint32_t multiarch,
                                 struct hakurei_syscall_rule *rules,
                                 size_t rules_sz, hakurei_export_flag flags);