#include "sandbox/linux/seccomp-bpf-helpers/syscall_sets.h"
#include "build/build_config.h"
#include "sandbox/linux/system_headers/linux_syscalls.h"
namespace sandbox {
bool SyscallSets::IsKill(int sysno) { … }
bool SyscallSets::IsAllowedGettime(int sysno) { … }
bool SyscallSets::IsSendfile(int sysno) { … }
bool SyscallSets::IsCurrentDirectory(int sysno) { … }
bool SyscallSets::IsUmask(int sysno) { … }
bool SyscallSets::IsFileSystem(int sysno) { … }
bool SyscallSets::IsTruncate(int sysno) { … }
bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { … }
bool SyscallSets::IsDeniedFileSystemAccessViaFd(int sysno) { … }
bool SyscallSets::IsGetSimpleId(int sysno) { … }
bool SyscallSets::IsProcessPrivilegeChange(int sysno) { … }
bool SyscallSets::IsProcessGroupOrSession(int sysno) { … }
bool SyscallSets::IsAllowedSignalHandling(int sysno) { … }
bool SyscallSets::IsAllowedOperationOnFd(int sysno) { … }
bool SyscallSets::IsKernelInternalApi(int sysno) { … }
bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { … }
bool SyscallSets::IsAllowedFutex(int sysno) { … }
bool SyscallSets::IsAllowedEpoll(int sysno) { … }
bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) { … }
#if defined(__i386__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
bool SyscallSets::IsSocketCall(int sysno) {
switch (sysno) {
#if !(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
case __NR_socketcall:
return true;
#endif
default:
return false;
}
}
#endif
#if defined(__x86_64__) || defined(__arm__) || defined(__mips__)
bool SyscallSets::IsNetworkSocketInformation(int sysno) { … }
#endif
bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) { … }
bool SyscallSets::IsAllowedGeneralIo(int sysno) { … }
bool SyscallSets::IsPrctl(int sysno) { … }
bool SyscallSets::IsSeccomp(int sysno) { … }
bool SyscallSets::IsAllowedBasicScheduler(int sysno) { … }
bool SyscallSets::IsAdminOperation(int sysno) { … }
bool SyscallSets::IsKernelModule(int sysno) { … }
bool SyscallSets::IsGlobalFSViewChange(int sysno) { … }
bool SyscallSets::IsFsControl(int sysno) { … }
bool SyscallSets::IsNuma(int sysno) { … }
bool SyscallSets::IsMessageQueue(int sysno) { … }
bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { … }
bool SyscallSets::IsDebug(int sysno) { … }
bool SyscallSets::IsGlobalSystemStatus(int sysno) { … }
bool SyscallSets::IsEventFd(int sysno) { … }
bool SyscallSets::IsDlopen(int sysno) { … }
bool SyscallSets::IsAsyncIo(int sysno) { … }
bool SyscallSets::IsKeyManagement(int sysno) { … }
#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
bool SyscallSets::IsSystemVSemaphores(int sysno) { … }
#endif
#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
defined(__aarch64__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
bool SyscallSets::IsSystemVSharedMemory(int sysno) { … }
#endif
#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
bool SyscallSets::IsSystemVMessageQueue(int sysno) { … }
#endif
#if defined(__i386__) || \
(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
bool SyscallSets::IsSystemVIpc(int sysno) {
switch (sysno) {
#if !(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
case __NR_ipc:
return true;
#endif
default:
return false;
}
}
#endif
bool SyscallSets::IsAnySystemV(int sysno) { … }
bool SyscallSets::IsAdvancedScheduler(int sysno) { … }
bool SyscallSets::IsInotify(int sysno) { … }
bool SyscallSets::IsFaNotify(int sysno) { … }
bool SyscallSets::IsTimer(int sysno) { … }
bool SyscallSets::IsAdvancedTimer(int sysno) { … }
bool SyscallSets::IsClockApi(int sysno) { … }
bool SyscallSets::IsExtendedAttributes(int sysno) { … }
bool SyscallSets::IsMisc(int sysno) { … }
#if defined(__arm__)
bool SyscallSets::IsArmPciConfig(int sysno) {
switch (sysno) {
case __NR_pciconfig_iobase:
case __NR_pciconfig_read:
case __NR_pciconfig_write:
return true;
default:
return false;
}
}
bool SyscallSets::IsArmPrivate(int sysno) {
switch (sysno) {
case __ARM_NR_breakpoint:
case __ARM_NR_cacheflush:
case __ARM_NR_set_tls:
case __ARM_NR_usr26:
case __ARM_NR_usr32:
return true;
default:
return false;
}
}
#endif
#if defined(__mips__)
bool SyscallSets::IsMipsPrivate(int sysno) {
switch (sysno) {
case __NR_cacheflush:
case __NR_cachectl:
return true;
default:
return false;
}
}
bool SyscallSets::IsMipsMisc(int sysno) {
switch (sysno) {
case __NR_sysmips:
#if !(defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
case __NR_unused150:
#endif
return true;
default:
return false;
}
}
#endif
bool SyscallSets::IsGoogle3Threading(int sysno) { … }
}