// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CLIENT_H_ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CLIENT_H_ #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include "base/memory/raw_ref.h" #include "sandbox/linux/syscall_broker/broker_channel.h" #include "sandbox/linux/syscall_broker/broker_command.h" #include "sandbox/linux/syscall_broker/broker_sandbox_config.h" #include "sandbox/linux/syscall_broker/syscall_dispatcher.h" #include "sandbox/sandbox_export.h" namespace sandbox { namespace syscall_broker { // This class can be embedded in a sandboxed process and can be // used to perform certain system calls in another, presumably // non-sandboxed process (which embeds BrokerHost). // A key feature of this class is the ability to use some of its methods in a // thread-safe and async-signal safe way. The goal is to be able to use it to // replace the open() or access() system calls happening anywhere in a process // (as allowed for instance by seccomp-bpf's SIGSYS mechanism). class SANDBOX_EXPORT BrokerClient : public SyscallDispatcher { … }; } // namespace syscall_broker } // namespace sandbox #endif // SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CLIENT_H_