Home | History | Annotate | Download | only in src
      1 // Copyright (c) 2006-2008 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 #ifndef SANDBOX_SRC_POLICY_PARAMS_H__
      6 #define SANDBOX_SRC_POLICY_PARAMS_H__
      7 
      8 #include "sandbox/win/src/policy_engine_params.h"
      9 
     10 namespace sandbox {
     11 
     12 class ParameterSet;
     13 
     14 // Warning: The following macros store the address to the actual variables, in
     15 // other words, the values are not copied.
     16 #define POLPARAMS_BEGIN(type) class type { public: enum Args {
     17 #define POLPARAM(arg) arg,
     18 #define POLPARAMS_END(type) PolParamLast }; }; \
     19   typedef sandbox::ParameterSet type##Array [type::PolParamLast];
     20 
     21 // Policy parameters for file open / create.
     22 POLPARAMS_BEGIN(OpenFile)
     23   POLPARAM(NAME)
     24   POLPARAM(BROKER)   // TRUE if called from the broker.
     25   POLPARAM(ACCESS)
     26   POLPARAM(DISPOSITION)
     27   POLPARAM(OPTIONS)
     28 POLPARAMS_END(OpenFile)
     29 
     30 // Policy parameter for name-based policies.
     31 POLPARAMS_BEGIN(FileName)
     32   POLPARAM(NAME)
     33   POLPARAM(BROKER)   // TRUE if called from the broker.
     34 POLPARAMS_END(FileName)
     35 
     36 static_assert(OpenFile::NAME == static_cast<int>(FileName::NAME),
     37               "to simplify fs policies");
     38 static_assert(OpenFile::BROKER == static_cast<int>(FileName::BROKER),
     39               "to simplify fs policies");
     40 
     41 // Policy parameter for name-based policies.
     42 POLPARAMS_BEGIN(NameBased)
     43   POLPARAM(NAME)
     44 POLPARAMS_END(NameBased)
     45 
     46 // Policy parameters for open event.
     47 POLPARAMS_BEGIN(OpenEventParams)
     48   POLPARAM(NAME)
     49   POLPARAM(ACCESS)
     50 POLPARAMS_END(OpenEventParams)
     51 
     52 // Policy Parameters for reg open / create.
     53 POLPARAMS_BEGIN(OpenKey)
     54   POLPARAM(NAME)
     55   POLPARAM(ACCESS)
     56 POLPARAMS_END(OpenKey)
     57 
     58 // Policy parameter for name-based policies.
     59 POLPARAMS_BEGIN(HandleTarget)
     60   POLPARAM(NAME)
     61   POLPARAM(TARGET)
     62 POLPARAMS_END(HandleTarget)
     63 
     64 
     65 }  // namespace sandbox
     66 
     67 #endif  // SANDBOX_SRC_POLICY_PARAMS_H__
     68