summaryrefslogtreecommitdiff
path: root/libartbase/base/sdk_version.h
diff options
context:
space:
mode:
author David Brazdil <dbrazdil@google.com> 2018-11-16 14:21:47 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-11-16 14:21:47 +0000
commit54c7da9c50ee85ade636605cd6ea18b4c2bc69fa (patch)
tree57e1a23dcc0beba8e98841b8cf063f6153b08c9b /libartbase/base/sdk_version.h
parentd94653399e2f9f06bbdf629f2affbf9a4fa73b8f (diff)
parent2bb2fbd2879d0a6d9ebf7acff817079dde89b417 (diff)
Merge changes Idc6e518c,Ia1cc0506
* changes: Create SdkVersion enum, migrate users to it Runtime flags only for fast/slow hiddenapi path
Diffstat (limited to 'libartbase/base/sdk_version.h')
-rw-r--r--libartbase/base/sdk_version.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/libartbase/base/sdk_version.h b/libartbase/base/sdk_version.h
new file mode 100644
index 0000000000..4372e5a02f
--- /dev/null
+++ b/libartbase/base/sdk_version.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ART_LIBARTBASE_BASE_SDK_VERSION_H_
+#define ART_LIBARTBASE_BASE_SDK_VERSION_H_
+
+#include <cstdint>
+#include <limits>
+
+namespace art {
+
+enum class SdkVersion : uint32_t {
+ kMin = 0u,
+ kUnset = 0u,
+ kL = 21u,
+ kL_MR1 = 22u,
+ kM = 23u,
+ kN = 24u,
+ kN_MR1 = 25u,
+ kO = 26u,
+ kO_MR1 = 27u,
+ kP = 28u,
+ kP_MR1 = 29u,
+ kMax = std::numeric_limits<uint32_t>::max(),
+};
+
+inline bool IsSdkVersionSetAndMoreThan(uint32_t lhs, SdkVersion rhs) {
+ return lhs != static_cast<uint32_t>(SdkVersion::kUnset) && lhs > static_cast<uint32_t>(rhs);
+}
+
+inline bool IsSdkVersionSetAndAtLeast(uint32_t lhs, SdkVersion rhs) {
+ return lhs != static_cast<uint32_t>(SdkVersion::kUnset) && lhs >= static_cast<uint32_t>(rhs);
+}
+
+inline bool IsSdkVersionSetAndAtMost(uint32_t lhs, SdkVersion rhs) {
+ return lhs != static_cast<uint32_t>(SdkVersion::kUnset) && lhs <= static_cast<uint32_t>(rhs);
+}
+
+inline bool IsSdkVersionSetAndLessThan(uint32_t lhs, SdkVersion rhs) {
+ return lhs != static_cast<uint32_t>(SdkVersion::kUnset) && lhs < static_cast<uint32_t>(rhs);
+}
+
+} // namespace art
+
+#endif // ART_LIBARTBASE_BASE_SDK_VERSION_H_