| Index: sandbox/linux/bpf_dsl/bpf_dsl.h
|
| diff --git a/sandbox/linux/bpf_dsl/bpf_dsl.h b/sandbox/linux/bpf_dsl/bpf_dsl.h
|
| index 25892b7eff51f82583c890c0bcac06970d772917..63b095deb6740b5d2d85b1718b57d6491651b1b0 100644
|
| --- a/sandbox/linux/bpf_dsl/bpf_dsl.h
|
| +++ b/sandbox/linux/bpf_dsl/bpf_dsl.h
|
| @@ -12,6 +12,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "sandbox/linux/bpf_dsl/bpf_dsl_forward.h"
|
| #include "sandbox/linux/bpf_dsl/cons.h"
|
| #include "sandbox/linux/bpf_dsl/trap_registry.h"
|
| #include "sandbox/sandbox_export.h"
|
| @@ -29,7 +30,7 @@
|
| //
|
| // using namespace sandbox::bpf_dsl;
|
| //
|
| -// class SillyPolicy : public SandboxBPFDSLPolicy {
|
| +// class SillyPolicy : public Policy {
|
| // public:
|
| // SillyPolicy() {}
|
| // virtual ~SillyPolicy() {}
|
| @@ -72,56 +73,12 @@
|
| namespace sandbox {
|
| namespace bpf_dsl {
|
|
|
| -// Forward declarations of classes; see below for proper documentation.
|
| -class Elser;
|
| -template <typename T>
|
| -class Caser;
|
| -namespace internal {
|
| -class ResultExprImpl;
|
| -class BoolExprImpl;
|
| -}
|
| -
|
| -} // namespace bpf_dsl
|
| -} // namespace sandbox
|
| -
|
| -extern template class SANDBOX_EXPORT
|
| - scoped_refptr<const sandbox::bpf_dsl::internal::BoolExprImpl>;
|
| -extern template class SANDBOX_EXPORT
|
| - scoped_refptr<const sandbox::bpf_dsl::internal::ResultExprImpl>;
|
| -
|
| -namespace sandbox {
|
| -namespace bpf_dsl {
|
| -
|
| // ResultExpr is an opaque reference to an immutable result expression tree.
|
| typedef scoped_refptr<const internal::ResultExprImpl> ResultExpr;
|
|
|
| // BoolExpr is an opaque reference to an immutable boolean expression tree.
|
| typedef scoped_refptr<const internal::BoolExprImpl> BoolExpr;
|
|
|
| -// Interface to implement to define a BPF sandbox policy.
|
| -// TODO(mdempsky): "sandbox::bpf_dsl::SandboxBPFDSLPolicy" is
|
| -// tediously repetitive; rename to just "Policy".
|
| -class SANDBOX_EXPORT SandboxBPFDSLPolicy {
|
| - public:
|
| - SandboxBPFDSLPolicy() {}
|
| - virtual ~SandboxBPFDSLPolicy() {}
|
| -
|
| - // User extension point for writing custom sandbox policies.
|
| - // The returned ResultExpr will control how the kernel responds to the
|
| - // specified system call number.
|
| - virtual ResultExpr EvaluateSyscall(int sysno) const = 0;
|
| -
|
| - // Optional overload for specifying alternate behavior for invalid
|
| - // system calls. The default is to return ENOSYS.
|
| - virtual ResultExpr InvalidSyscall() const;
|
| -
|
| - // Helper method so policies can just write Trap(func, aux).
|
| - static ResultExpr Trap(TrapRegistry::TrapFnc trap_func, const void* aux);
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(SandboxBPFDSLPolicy);
|
| -};
|
| -
|
| // Allow specifies a result that the system call should be allowed to
|
| // execute normally.
|
| SANDBOX_EXPORT ResultExpr Allow();
|
|
|