blob: 0a7519211b2e7247fea61da01a6e21e5132abed1 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
// clang-format off
// types of features that can be retrieved via |zx_system_get_features|
#define ZX_FEATURE_KIND_CPU 0
// arch-independent CPU features
#define ZX_HAS_CPU_FEATURES (1u << 0)
#if defined(__x86_64__)
// x86-64 CPU features
// None; use cpuid instead
#elif defined(__aarch64__)
// arm64 CPU features
#define ZX_ARM64_FEATURE_ISA_FP (1u << 1)
#define ZX_ARM64_FEATURE_ISA_ASIMD (1u << 2)
#define ZX_ARM64_FEATURE_ISA_AES (1u << 3)
#define ZX_ARM64_FEATURE_ISA_PMULL (1u << 4)
#define ZX_ARM64_FEATURE_ISA_SHA1 (1u << 5)
#define ZX_ARM64_FEATURE_ISA_SHA2 (1u << 6)
#define ZX_ARM64_FEATURE_ISA_CRC32 (1u << 7)
#define ZX_ARM64_FEATURE_ISA_ATOMICS (1u << 8)
#define ZX_ARM64_FEATURE_ISA_RDM (1u << 9)
#define ZX_ARM64_FEATURE_ISA_SHA3 (1u << 10)
#define ZX_ARM64_FEATURE_ISA_SM3 (1u << 11)
#define ZX_ARM64_FEATURE_ISA_SM4 (1u << 12)
#define ZX_ARM64_FEATURE_ISA_DP (1u << 13)
#define ZX_ARM64_FEATURE_ISA_DPB (1u << 14)
#else
#error what architecture?
#endif