11// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22// SPDX-License-Identifier: Apache-2.0
33
4- extern crate libc;
5- extern crate sys_util;
6-
74use seccomp:: {
85 setup_seccomp, Error , SeccompAction , SeccompCmpOp , SeccompCondition , SeccompFilterContext ,
96 SeccompLevel , SeccompRule , SECCOMP_LEVEL_ADVANCED , SECCOMP_LEVEL_BASIC , SECCOMP_LEVEL_NONE ,
107} ;
118
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).
1311pub const ALLOWED_SYSCALLS : & [ i64 ] = & [
1412 libc:: SYS_accept ,
1513 libc:: SYS_clock_gettime ,
@@ -38,17 +36,17 @@ pub const ALLOWED_SYSCALLS: &[i64] = &[
3836 libc:: SYS_writev ,
3937] ;
4038
41- // See /usr/ include/x86_64- linux-gnu/sys/epoll.h
39+ // See include/uapi/ linux/eventpoll.h in the kernel code.
4240const EPOLL_CTL_ADD : u64 = 1 ;
4341const EPOLL_CTL_DEL : u64 = 2 ;
4442
45- // See /usr/ include/x86_64-linux-gnu/bits/ fcntl-linux.h
43+ // See include/uapi/asm-generic/ fcntl.h in the kernel code.
4644const O_RDONLY : u64 = 0x00000000 ;
4745const O_RDWR : u64 = 0x00000002 ;
4846const O_NONBLOCK : u64 = 0x00004000 ;
4947const O_CLOEXEC : u64 = 0x02000000 ;
5048
51- // See /usr/ include/linux/futex.h
49+ // See include/uapi/ linux/futex.h in the kernel code.
5250const FUTEX_WAIT : u64 = 0 ;
5351const FUTEX_WAKE : u64 = 1 ;
5452const FUTEX_REQUEUE : u64 = 3 ;
@@ -57,14 +55,14 @@ const FUTEX_WAIT_PRIVATE: u64 = FUTEX_WAIT | FUTEX_PRIVATE_FLAG;
5755const FUTEX_WAKE_PRIVATE : u64 = FUTEX_WAKE | FUTEX_PRIVATE_FLAG ;
5856const FUTEX_REQUEUE_PRIVATE : u64 = FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG ;
5957
60- // See /usr/ include/asm-generic/ioctls.h
58+ // See include/uapi/ asm-generic/ioctls.h in the kernel code.
6159const TCGETS : u64 = 0x5401 ;
6260const TCSETS : u64 = 0x5402 ;
6361const TIOCGWINSZ : u64 = 0x5413 ;
6462const FIOCLEX : u64 = 0x5451 ;
6563const FIONBIO : u64 = 0x5421 ;
6664
67- // See /usr/ include/linux/kvm.h
65+ // See include/uapi/ linux/if_tun.h in the kernel code.
6866const KVM_GET_API_VERSION : u64 = 0xae00 ;
6967const KVM_CREATE_VM : u64 = 0xae01 ;
7068const KVM_CHECK_EXTENSION : u64 = 0xae03 ;
@@ -88,15 +86,17 @@ const KVM_GET_SREGS: u64 = 0x8138ae83;
8886const KVM_GET_LAPIC : u64 = 0x8400ae8e ;
8987const KVM_GET_SUPPORTED_CPUID : u64 = 0xc008ae05 ;
9088
91- // See /usr/ include/linux/if_tun.h
89+ // See include/uapi/ linux/if_tun.h in the kernel code.
9290const TUNSETIFF : u64 = 0x400454ca ;
9391const TUNSETOFFLOAD : u64 = 0x400454d0 ;
9492const TUNSETVNETHDRSZ : u64 = 0x400454d8 ;
9593
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.
9795const PROT_NONE : u64 = 0x0 ;
9896const PROT_READ : u64 = 0x1 ;
9997const PROT_WRITE : u64 = 0x2 ;
98+
99+ // See include/uapi/asm-generic/mman.h in the kernel code.
100100const MAP_SHARED : u64 = 0x01 ;
101101const MAP_PRIVATE : u64 = 0x02 ;
102102const MAP_ANONYMOUS : u64 = 0x20 ;
@@ -529,7 +529,7 @@ pub fn default_context() -> Result<SeccompFilterContext, Error> {
529529 vec![ SeccompCondition :: new(
530530 1 ,
531531 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 )
533533 . map_err( |_| Error :: InvalidArgumentNumber ) ?
534534 as u64 ,
535535 ) ?] ,
0 commit comments