• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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(OPTIONS)
27 POLPARAMS_END(OpenFile)
28 
29 // Policy parameter for name-based policies.
30 POLPARAMS_BEGIN(FileName)
31   POLPARAM(NAME)
32   POLPARAM(BROKER)   // TRUE if called from the broker.
33 POLPARAMS_END(FileName)
34 
35 COMPILE_ASSERT(OpenFile::NAME == static_cast<int>(FileName::NAME),
36                to_simplify_fs_policies);
37 COMPILE_ASSERT(OpenFile::BROKER == static_cast<int>(FileName::BROKER),
38                to_simplify_fs_policies);
39 
40 // Policy parameter for name-based policies.
41 POLPARAMS_BEGIN(NameBased)
42   POLPARAM(NAME)
43 POLPARAMS_END(NameBased)
44 
45 // Policy parameters for open event.
46 POLPARAMS_BEGIN(OpenEventParams)
47   POLPARAM(NAME)
48   POLPARAM(ACCESS)
49 POLPARAMS_END(OpenEventParams)
50 
51 // Policy Parameters for reg open / create.
52 POLPARAMS_BEGIN(OpenKey)
53   POLPARAM(NAME)
54   POLPARAM(ACCESS)
55 POLPARAMS_END(OpenKey)
56 
57 // Policy parameter for name-based policies.
58 POLPARAMS_BEGIN(HandleTarget)
59   POLPARAM(NAME)
60   POLPARAM(TARGET)
61 POLPARAMS_END(HandleTarget)
62 
63 
64 }  // namespace sandbox
65 
66 #endif  // SANDBOX_SRC_POLICY_PARAMS_H__
67