| Index: sandbox/linux/bpf_dsl/bpf_dsl.cc
|
| diff --git a/sandbox/linux/bpf_dsl/bpf_dsl.cc b/sandbox/linux/bpf_dsl/bpf_dsl.cc
|
| index de0a1ae449ac0e37a89fb6c584717f88b324ed88..a004971bdd952cab9d66ee275fb61fd84e8810fa 100644
|
| --- a/sandbox/linux/bpf_dsl/bpf_dsl.cc
|
| +++ b/sandbox/linux/bpf_dsl/bpf_dsl.cc
|
| @@ -90,6 +90,24 @@ class IfThenResultExprImpl : public internal::ResultExprImpl {
|
| DISALLOW_COPY_AND_ASSIGN(IfThenResultExprImpl);
|
| };
|
|
|
| +class ConstBoolExprImpl : public internal::BoolExprImpl {
|
| + public:
|
| + ConstBoolExprImpl(bool value) : value_(value) {}
|
| +
|
| + virtual ErrorCode Compile(SandboxBPF* sb,
|
| + ErrorCode true_ec,
|
| + ErrorCode false_ec) const OVERRIDE {
|
| + return value_ ? true_ec : false_ec;
|
| + }
|
| +
|
| + private:
|
| + virtual ~ConstBoolExprImpl() {}
|
| +
|
| + bool value_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ConstBoolExprImpl);
|
| +};
|
| +
|
| class PrimitiveBoolExprImpl : public internal::BoolExprImpl {
|
| public:
|
| PrimitiveBoolExprImpl(int argno,
|
| @@ -214,6 +232,10 @@ ResultExpr Trap(Trap::TrapFnc trap_func, void* aux) {
|
| return ResultExpr(new const TrapResultExprImpl(trap_func, aux));
|
| }
|
|
|
| +BoolExpr BoolConst(bool value) {
|
| + return BoolExpr(new const ConstBoolExprImpl(value));
|
| +}
|
| +
|
| BoolExpr operator!(const BoolExpr& cond) {
|
| return BoolExpr(new const NegateBoolExprImpl(cond));
|
| }
|
|
|