Home | History | Annotate | Download | only in seccomp-bpf
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Commonly used macro definitions to make the code build in different
      6 // target environments (e.g. as part of Chrome vs. stand-alone)
      7 
      8 #ifndef SANDBOX_LINUX_SECCOMP_BPF_PORT_H__
      9 #define SANDBOX_LINUX_SECCOMP_BPF_PORT_H__
     10 
     11 #if !defined(SECCOMP_BPF_STANDALONE)
     12   #include "base/basictypes.h"
     13   #include "base/logging.h"
     14   #include "base/posix/eintr_wrapper.h"
     15 #else
     16   #define arraysize(x) (sizeof(x)/sizeof(*(x)))
     17 
     18   #define HANDLE_EINTR TEMP_FAILURE_RETRY
     19 
     20   #define DISALLOW_COPY_AND_ASSIGN(TypeName)       \
     21     TypeName(const TypeName&);                     \
     22     void operator=(const TypeName&)
     23 
     24   #define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
     25     TypeName();                                    \
     26     DISALLOW_COPY_AND_ASSIGN(TypeName)
     27 
     28   template <bool>
     29   struct CompileAssert {
     30   };
     31 
     32   #define COMPILE_ASSERT(expr, msg) \
     33     typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
     34 #endif
     35 
     36 #endif  // SANDBOX_LINUX_SECCOMP_BPF_PORT_H__
     37