1c45952f88c568046a02bc0aea793008d8bb37755Will Drewry/*
2c45952f88c568046a02bc0aea793008d8bb37755Will Drewry * seccomp-compat.h - seccomp defines for bad headers
3c45952f88c568046a02bc0aea793008d8bb37755Will Drewry * Copyright (c) 2013 The Chromium Authors. All rights reserved.
4c45952f88c568046a02bc0aea793008d8bb37755Will Drewry * Use of this source code is governed by a BSD-style license that can be
5c45952f88c568046a02bc0aea793008d8bb37755Will Drewry * found in the LICENSE file.
6c45952f88c568046a02bc0aea793008d8bb37755Will Drewry */
7c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#ifndef SECCOMP_COMPAT_H
8c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_COMPAT_H
9c45952f88c568046a02bc0aea793008d8bb37755Will Drewry
10c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#include <stdint.h>
11c45952f88c568046a02bc0aea793008d8bb37755Will Drewry
12c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#ifndef PR_SET_NO_NEW_PRIVS
13c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#  define PR_SET_NO_NEW_PRIVS 38
14c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#endif
15c45952f88c568046a02bc0aea793008d8bb37755Will Drewry
16c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#ifndef SECCOMP_MODE_FILTER
17c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */
18c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */
19c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */
20c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */
21c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */
22c45952f88c568046a02bc0aea793008d8bb37755Will Drewry
23c45952f88c568046a02bc0aea793008d8bb37755Will Drewrystruct seccomp_data
24c45952f88c568046a02bc0aea793008d8bb37755Will Drewry{
25c45952f88c568046a02bc0aea793008d8bb37755Will Drewry  int nr;
26c45952f88c568046a02bc0aea793008d8bb37755Will Drewry  uint32_t arch;
27c45952f88c568046a02bc0aea793008d8bb37755Will Drewry  uint64_t instruction_pointer;
28c45952f88c568046a02bc0aea793008d8bb37755Will Drewry  uint64_t args[6];
29c45952f88c568046a02bc0aea793008d8bb37755Will Drewry};
30c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#endif  /* !SECCOMP_MODE_FILTER */
31c45952f88c568046a02bc0aea793008d8bb37755Will Drewry
32c45952f88c568046a02bc0aea793008d8bb37755Will Drewry#endif
33