1
1
// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
// SPDX-License-Identifier: Apache-2.0
3
3
4
- extern crate libc;
5
- extern crate sys_util;
6
-
7
4
use seccomp:: {
8
5
setup_seccomp, Error , SeccompAction , SeccompCmpOp , SeccompCondition , SeccompFilterContext ,
9
6
SeccompLevel , SeccompRule , SECCOMP_LEVEL_ADVANCED , SECCOMP_LEVEL_BASIC , SECCOMP_LEVEL_NONE ,
10
7
} ;
11
8
12
- /// List of allowed syscalls, necessary for Firecracker to function correctly.
9
+ /// List of allowed syscalls necessary for correct functioning on x86_64 architectures.
10
+ /// Taken from the musl repo (i.e arch/x86_64/bits/syscall.h).
13
11
pub const ALLOWED_SYSCALLS : & [ i64 ] = & [
14
12
libc:: SYS_accept ,
15
13
libc:: SYS_clock_gettime ,
@@ -38,17 +36,17 @@ pub const ALLOWED_SYSCALLS: &[i64] = &[
38
36
libc:: SYS_writev ,
39
37
] ;
40
38
41
- // See /usr/ include/x86_64- linux-gnu/sys/epoll.h
39
+ // See include/uapi/ linux/eventpoll.h in the kernel code.
42
40
const EPOLL_CTL_ADD : u64 = 1 ;
43
41
const EPOLL_CTL_DEL : u64 = 2 ;
44
42
45
- // See /usr/ include/x86_64-linux-gnu/bits/ fcntl-linux.h
43
+ // See include/uapi/asm-generic/ fcntl.h in the kernel code.
46
44
const O_RDONLY : u64 = 0x00000000 ;
47
45
const O_RDWR : u64 = 0x00000002 ;
48
46
const O_NONBLOCK : u64 = 0x00004000 ;
49
47
const O_CLOEXEC : u64 = 0x02000000 ;
50
48
51
- // See /usr/ include/linux/futex.h
49
+ // See include/uapi/ linux/futex.h in the kernel code.
52
50
const FUTEX_WAIT : u64 = 0 ;
53
51
const FUTEX_WAKE : u64 = 1 ;
54
52
const FUTEX_REQUEUE : u64 = 3 ;
@@ -57,14 +55,14 @@ const FUTEX_WAIT_PRIVATE: u64 = FUTEX_WAIT | FUTEX_PRIVATE_FLAG;
57
55
const FUTEX_WAKE_PRIVATE : u64 = FUTEX_WAKE | FUTEX_PRIVATE_FLAG ;
58
56
const FUTEX_REQUEUE_PRIVATE : u64 = FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG ;
59
57
60
- // See /usr/ include/asm-generic/ioctls.h
58
+ // See include/uapi/ asm-generic/ioctls.h in the kernel code.
61
59
const TCGETS : u64 = 0x5401 ;
62
60
const TCSETS : u64 = 0x5402 ;
63
61
const TIOCGWINSZ : u64 = 0x5413 ;
64
62
const FIOCLEX : u64 = 0x5451 ;
65
63
const FIONBIO : u64 = 0x5421 ;
66
64
67
- // See /usr/ include/linux/kvm.h
65
+ // See include/uapi/ linux/if_tun.h in the kernel code.
68
66
const KVM_GET_API_VERSION : u64 = 0xae00 ;
69
67
const KVM_CREATE_VM : u64 = 0xae01 ;
70
68
const KVM_CHECK_EXTENSION : u64 = 0xae03 ;
@@ -88,15 +86,17 @@ const KVM_GET_SREGS: u64 = 0x8138ae83;
88
86
const KVM_GET_LAPIC : u64 = 0x8400ae8e ;
89
87
const KVM_GET_SUPPORTED_CPUID : u64 = 0xc008ae05 ;
90
88
91
- // See /usr/ include/linux/if_tun.h
89
+ // See include/uapi/ linux/if_tun.h in the kernel code.
92
90
const TUNSETIFF : u64 = 0x400454ca ;
93
91
const TUNSETOFFLOAD : u64 = 0x400454d0 ;
94
92
const TUNSETVNETHDRSZ : u64 = 0x400454d8 ;
95
93
96
- // See /usr/ include/asm-generic/mman-common.h and /usr/include/asm-generic/mman.h
94
+ // See include/uapi/ asm-generic/mman-common.h in the kernel code.
97
95
const PROT_NONE : u64 = 0x0 ;
98
96
const PROT_READ : u64 = 0x1 ;
99
97
const PROT_WRITE : u64 = 0x2 ;
98
+
99
+ // See include/uapi/asm-generic/mman.h in the kernel code.
100
100
const MAP_SHARED : u64 = 0x01 ;
101
101
const MAP_PRIVATE : u64 = 0x02 ;
102
102
const MAP_ANONYMOUS : u64 = 0x20 ;
@@ -529,7 +529,7 @@ pub fn default_context() -> Result<SeccompFilterContext, Error> {
529
529
vec![ SeccompCondition :: new(
530
530
1 ,
531
531
SeccompCmpOp :: Eq ,
532
- sys_util:: validate_signal_num( super :: VCPU_RTSIG_OFFSET , true )
532
+ sys_util:: validate_signal_num( super :: super :: VCPU_RTSIG_OFFSET , true )
533
533
. map_err( |_| Error :: InvalidArgumentNumber ) ?
534
534
as u64 ,
535
535
) ?] ,
0 commit comments