blob: f474fb36d2da6c103d71f5472876f60a764d689b [file] [log] [blame]
Nick Kledzik7735a7d2012-01-04 23:58:17 +00001//===- Core/YamlKeyValues.h - Reads YAML ----------------------------------===//
2//
3// The LLVM Linker
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLD_CORE_YAML_KEY_VALUES_H_
11#define LLD_CORE_YAML_KEY_VALUES_H_
12
13#include "lld/Core/Atom.h"
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000014#include "lld/Core/DefinedAtom.h"
Nick Kledzik6bc04c62012-02-22 21:56:59 +000015#include "lld/Core/UndefinedAtom.h"
Nick Kledzik7735a7d2012-01-04 23:58:17 +000016
17
18namespace lld {
19namespace yaml {
20
21class KeyValues {
22public:
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000023 static const char* const nameKeyword;
Nick Kledzik49d6cc82012-02-15 00:38:09 +000024 static const char* const refNameKeyword;
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000025 static const char* const sectionNameKeyword;
26 static const char* const contentKeyword;
27 static const char* const sizeKeyword;
Nick Kledzik6bc04c62012-02-22 21:56:59 +000028 static const char* const loadNameKeyword;
29 static const char* const valueKeyword;
Nick Kledzik49d6cc82012-02-15 00:38:09 +000030 static const char* const fixupsKeyword;
Michael J. Spencer765792d2012-04-03 18:40:27 +000031
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000032 static const char* const definitionKeyword;
33 static const Atom::Definition definitionDefault;
34 static Atom::Definition definition(const char*);
35 static const char* definition(Atom::Definition);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000036
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000037 static const char* const scopeKeyword;
38 static const DefinedAtom::Scope scopeDefault;
39 static DefinedAtom::Scope scope(const char*);
40 static const char* scope(DefinedAtom::Scope);
Michael J. Spencer765792d2012-04-03 18:40:27 +000041
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000042 static const char* const contentTypeKeyword;
43 static const DefinedAtom::ContentType contentTypeDefault;
44 static DefinedAtom::ContentType contentType(const char*);
45 static const char* contentType(DefinedAtom::ContentType);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000046
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000047 static const char* const deadStripKindKeyword;
48 static const DefinedAtom::DeadStripKind deadStripKindDefault;
49 static DefinedAtom::DeadStripKind deadStripKind(const char*);
50 static const char* deadStripKind(DefinedAtom::DeadStripKind);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000051
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000052 static const char* const sectionChoiceKeyword;
53 static const DefinedAtom::SectionChoice sectionChoiceDefault;
54 static DefinedAtom::SectionChoice sectionChoice(const char*);
55 static const char* sectionChoice(DefinedAtom::SectionChoice);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000056
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000057 static const char* const interposableKeyword;
58 static const DefinedAtom::Interposable interposableDefault;
59 static DefinedAtom::Interposable interposable(const char*);
60 static const char* interposable(DefinedAtom::Interposable);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000061
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000062 static const char* const mergeKeyword;
63 static const DefinedAtom::Merge mergeDefault;
64 static DefinedAtom::Merge merge(const char*);
65 static const char* merge(DefinedAtom::Merge);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000066
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000067 static const char* const permissionsKeyword;
68 static const DefinedAtom::ContentPermissions permissionsDefault;
69 static DefinedAtom::ContentPermissions permissions(const char*);
70 static const char* permissions(DefinedAtom::ContentPermissions);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000071
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000072 static const char* const isThumbKeyword;
73 static const bool isThumbDefault;
74 static bool isThumb(const char*);
75 static const char* isThumb(bool);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000076
Nick Kledzikf4fb2c52012-01-11 01:06:19 +000077 static const char* const isAliasKeyword;
78 static const bool isAliasDefault;
79 static bool isAlias(const char*);
80 static const char* isAlias(bool);
Nick Kledzik7735a7d2012-01-04 23:58:17 +000081
Nick Kledzik6bc04c62012-02-22 21:56:59 +000082 static const char* const canBeNullKeyword;
83 static const UndefinedAtom::CanBeNull canBeNullDefault;
84 static UndefinedAtom::CanBeNull canBeNull(const char*);
85 static const char* canBeNull(UndefinedAtom::CanBeNull);
Nick Kledzik23384e82012-02-07 02:59:54 +000086
Nick Kledzik49d6cc82012-02-15 00:38:09 +000087
88 static const char* const fixupsKindKeyword;
89 static const char* const fixupsOffsetKeyword;
90 static const char* const fixupsTargetKeyword;
91 static const char* const fixupsAddendKeyword;
92
Nick Kledzik7735a7d2012-01-04 23:58:17 +000093};
94
95} // namespace yaml
96} // namespace lld
97
98#endif // LLD_CORE_YAML_KEY_VALUES_H_
99