diff options
author | 2018-11-16 14:21:47 +0000 | |
---|---|---|
committer | 2018-11-16 14:21:47 +0000 | |
commit | 54c7da9c50ee85ade636605cd6ea18b4c2bc69fa (patch) | |
tree | 57e1a23dcc0beba8e98841b8cf063f6153b08c9b /libartbase/base/sdk_version.h | |
parent | d94653399e2f9f06bbdf629f2affbf9a4fa73b8f (diff) | |
parent | 2bb2fbd2879d0a6d9ebf7acff817079dde89b417 (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.h | 58 |
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_ |