| // Copyright 2019 The Cobalt Authors. All Rights Reserved. |
| // |
| // 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. |
| |
| // Module Overview: Starboard CPU features API |
| |
| // Provide helper classes, macros and functions useful to the implementations of |
| // Starboard CPU features API on all platforms |
| |
| #ifndef STARBOARD_SHARED_STARBOARD_CPU_FEATURES_H_ |
| #define STARBOARD_SHARED_STARBOARD_CPU_FEATURES_H_ |
| |
| #include "starboard/cpu_features.h" |
| |
| #if SB_API_VERSION >= 11 |
| |
| namespace starboard { |
| namespace shared { |
| |
| // Set the general features of SbCPUFeatures to be invalid |
| inline void SetGeneralFeaturesInvalid(SbCPUFeatures* features) { |
| features->brand = ""; |
| features->icache_line_size = -1; |
| features->dcache_line_size = -1; |
| features->hwcap = 0; |
| features->hwcap2 = 0; |
| } |
| |
| // Set the features of SbCPUFeatures.x86 to be invalid |
| inline void SetX86FeaturesInvalid(SbCPUFeatures* features) { |
| features->x86.vendor = ""; |
| features->x86.family = -1; |
| features->x86.ext_family = -1; |
| features->x86.model = -1; |
| features->x86.ext_model = -1; |
| features->x86.stepping = -1; |
| features->x86.type = -1; |
| features->x86.signature = -1; |
| } |
| |
| // Set the features of SbCPUFeatures.arm to be invalid |
| inline void SetArmFeaturesInvalid(SbCPUFeatures* features) { |
| features->arm.implementer = -1; |
| features->arm.variant = -1; |
| features->arm.revision = -1; |
| features->arm.architecture_generation = -1; |
| features->arm.part = -1; |
| } |
| |
| } // namespace shared |
| } // namespace starboard |
| |
| #endif // SB_API_VERSION >= 11 |
| |
| #endif // STARBOARD_SHARED_STARBOARD_CPU_FEATURES_H_ |