summaryrefslogtreecommitdiffstats
path: root/lld/lib/Core/YamlKeyValues.h
blob: f474fb36d2da6c103d71f5472876f60a764d689b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//===- Core/YamlKeyValues.h - Reads YAML ----------------------------------===//
//
//                             The LLVM Linker
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef LLD_CORE_YAML_KEY_VALUES_H_
#define LLD_CORE_YAML_KEY_VALUES_H_

#include "lld/Core/Atom.h"
#include "lld/Core/DefinedAtom.h"
#include "lld/Core/UndefinedAtom.h"


namespace lld {
namespace yaml {

class KeyValues {
public:
  static const char* const                nameKeyword;
  static const char* const                refNameKeyword;
  static const char* const                sectionNameKeyword;
  static const char* const                contentKeyword;
  static const char* const                sizeKeyword;
  static const char* const                loadNameKeyword;
  static const char* const                valueKeyword;
  static const char* const                fixupsKeyword;

  static const char* const                definitionKeyword;
  static const Atom::Definition           definitionDefault;
  static Atom::Definition                 definition(const char*);
  static const char*                      definition(Atom::Definition);

  static const char* const                scopeKeyword;
  static const DefinedAtom::Scope         scopeDefault;
  static DefinedAtom::Scope               scope(const char*);
  static const char*                      scope(DefinedAtom::Scope);

  static const char* const                contentTypeKeyword;
  static const DefinedAtom::ContentType   contentTypeDefault;
  static DefinedAtom::ContentType         contentType(const char*);
  static const char*                      contentType(DefinedAtom::ContentType);

  static const char* const                deadStripKindKeyword;
  static const DefinedAtom::DeadStripKind deadStripKindDefault;
  static DefinedAtom::DeadStripKind       deadStripKind(const char*);
  static const char*                      deadStripKind(DefinedAtom::DeadStripKind);

  static const char* const                sectionChoiceKeyword;
  static const DefinedAtom::SectionChoice sectionChoiceDefault;
  static DefinedAtom::SectionChoice       sectionChoice(const char*);
  static const char*                      sectionChoice(DefinedAtom::SectionChoice);

  static const char* const                interposableKeyword;
  static const DefinedAtom::Interposable  interposableDefault;
  static DefinedAtom::Interposable        interposable(const char*);
  static const char*                      interposable(DefinedAtom::Interposable);

  static const char* const                mergeKeyword;
  static const DefinedAtom::Merge         mergeDefault;
  static DefinedAtom::Merge               merge(const char*);
  static const char*                      merge(DefinedAtom::Merge);

  static const char* const                      permissionsKeyword;
  static const DefinedAtom::ContentPermissions  permissionsDefault;
  static DefinedAtom::ContentPermissions        permissions(const char*);
  static const char*                            permissions(DefinedAtom::ContentPermissions);

  static const char* const                isThumbKeyword;
  static const bool                       isThumbDefault;
  static bool                             isThumb(const char*);
  static const char*                      isThumb(bool);

  static const char* const                isAliasKeyword;
  static const bool                       isAliasDefault;
  static bool                             isAlias(const char*);
  static const char*                      isAlias(bool);

  static const char* const                canBeNullKeyword;
  static const UndefinedAtom::CanBeNull   canBeNullDefault;
  static UndefinedAtom::CanBeNull         canBeNull(const char*);
  static const char*                      canBeNull(UndefinedAtom::CanBeNull);


  static const char* const                fixupsKindKeyword;
  static const char* const                fixupsOffsetKeyword;
  static const char* const                fixupsTargetKeyword;
  static const char* const                fixupsAddendKeyword;

};

} // namespace yaml
} // namespace lld

#endif // LLD_CORE_YAML_KEY_VALUES_H_

OpenPOWER on IntegriCloud