Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | /* * Copyright (c) 2007 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. The rights granted to you under the License * may not be used to create, or enable the creation or redistribution of, * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ #ifndef _ARM_CPU_CAPABILITIES_PUBLIC_H #define _ARM_CPU_CAPABILITIES_PUBLIC_H /* * In order to reduce the number of sysctls require for a process to get * the full list of supported processor capabilities extensions, the * hw.optional.arm.caps sysctl generates a bit buffer with each bit representing * the presence (1) or absence (0) of a given FEAT extension. */ #define HW_OPTIONAL_ARM_CAPS /* * Clang needs those bits to remain constant. * Existing entries should never be updated as they are ABI. * Adding new entries to the end and bumping CAP_BIT_NB is okay. */ #define CAP_BIT_FEAT_FlagM 0 #define CAP_BIT_FEAT_FlagM2 1 #define CAP_BIT_FEAT_FHM 2 #define CAP_BIT_FEAT_DotProd 3 #define CAP_BIT_FEAT_SHA3 4 #define CAP_BIT_FEAT_RDM 5 #define CAP_BIT_FEAT_LSE 6 #define CAP_BIT_FEAT_SHA256 7 #define CAP_BIT_FEAT_SHA512 8 #define CAP_BIT_FEAT_SHA1 9 #define CAP_BIT_FEAT_AES 10 #define CAP_BIT_FEAT_PMULL 11 #define CAP_BIT_FEAT_SPECRES 12 #define CAP_BIT_FEAT_SB 13 #define CAP_BIT_FEAT_FRINTTS 14 #define CAP_BIT_FEAT_LRCPC 15 #define CAP_BIT_FEAT_LRCPC2 16 #define CAP_BIT_FEAT_FCMA 17 #define CAP_BIT_FEAT_JSCVT 18 #define CAP_BIT_FEAT_PAuth 19 #define CAP_BIT_FEAT_PAuth2 20 #define CAP_BIT_FEAT_FPAC 21 #define CAP_BIT_FEAT_DPB 22 #define CAP_BIT_FEAT_DPB2 23 #define CAP_BIT_FEAT_BF16 24 #define CAP_BIT_FEAT_I8MM 25 #define CAP_BIT_FEAT_WFxT 26 #define CAP_BIT_FEAT_RPRES 27 #define CAP_BIT_FEAT_ECV 28 #define CAP_BIT_FEAT_AFP 29 #define CAP_BIT_FEAT_LSE2 30 #define CAP_BIT_FEAT_CSV2 31 #define CAP_BIT_FEAT_CSV3 32 #define CAP_BIT_FEAT_DIT 33 #define CAP_BIT_FEAT_FP16 34 #define CAP_BIT_FEAT_SSBS 35 #define CAP_BIT_FEAT_BTI 36 /* SME */ #define CAP_BIT_FEAT_SME 40 #define CAP_BIT_FEAT_SME2 41 #define CAP_BIT_FEAT_SME_F64F64 42 #define CAP_BIT_FEAT_SME_I16I64 43 #define CAP_BIT_FEAT_SME2p1 44 #define CAP_BIT_FEAT_SME_F16F16 45 #define CAP_BIT_FEAT_SME_B16B16 46 #define CAP_BIT_FEAT_SME_F8F16 47 #define CAP_BIT_FEAT_SME_F8F32 48 #define CAP_BIT_AdvSIMD 49 #define CAP_BIT_AdvSIMD_HPFPCvt 50 #define CAP_BIT_FEAT_CRC32 51 #define CAP_BIT_SME_F32F32 52 #define CAP_BIT_SME_BI32I32 53 #define CAP_BIT_SME_B16F32 54 #define CAP_BIT_SME_F16F32 55 #define CAP_BIT_SME_I8I32 56 #define CAP_BIT_SME_I16I32 57 #define CAP_BIT_FEAT_PACIMP 58 #if defined(PRIVATE) #define CAP_BIT_UCNORMALMEM 59 #endif /* defined(PRIVATE) */ #define CAP_BIT_FEAT_MTE 60 #define CAP_BIT_FEAT_MTE2 61 #define CAP_BIT_FEAT_MTE3 62 #define CAP_BIT_FEAT_MTE4 63 #define CAP_BIT_FEAT_HBC 64 #define CAP_BIT_FEAT_EBF16 65 #define CAP_BIT_FEAT_SPECRES2 66 #define CAP_BIT_FEAT_CSSC 67 #define CAP_BIT_FEAT_FPACCOMBINE 68 #define CAP_BIT_FEAT_MTE_ASYNC 69 #define CAP_BIT_FEAT_MTE_CANONICAL_TAGS 70 #define CAP_BIT_FEAT_MTE_STORE_ONLY 71 #define CAP_BIT_FEAT_MTE_NO_ADDRESS_TAGS 72 #define CAP_BIT_FP_SyncExceptions 73 #define CAP_BIT_FEAT_SVE_B16B16 91 /* Legacy definitions for backwards compatibility */ #define CAP_BIT_CRC32 CAP_BIT_FEAT_CRC32 /* Total number of FEAT bits. */ #define CAP_BIT_NB 92 #endif /* _ARM_CPU_CAPABILITIES_PUBLIC_H */ |