1 /* Data for AArch64 version of processor capability information.
2    Linux version.
3    Copyright (C) 2017-2022 Free Software Foundation, Inc.
4    This file is part of the GNU C Library.
5 
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10 
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15 
16    You should have received a copy of the GNU Lesser General Public
17    License along with the GNU C Library; if not, see
18    <https://www.gnu.org/licenses/>.  */
19 
20 /* If anything should be added here check whether the size of each string
21    is still ok with the given array size.
22 
23    All the #ifdefs in the definitions are quite irritating but
24    necessary if we want to avoid duplicating the information.  There
25    are three different modes:
26 
27    - PROCINFO_DECL is defined.  This means we are only interested in
28      declarations.
29 
30    - PROCINFO_DECL is not defined:
31 
32      + if SHARED is defined the file is included in an array
33        initializer.  The .element = { ... } syntax is needed.
34 
35      + if SHARED is not defined a normal array initialization is
36        needed.
37   */
38 
39 #ifndef PROCINFO_CLASS
40 # define PROCINFO_CLASS
41 #endif
42 
43 #if !IS_IN (ldconfig)
44 # if !defined PROCINFO_DECL && defined SHARED
45   ._dl_aarch64_cpu_features
46 # else
47 PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
48 # endif
49 # ifndef PROCINFO_DECL
50 = { }
51 # endif
52 # if !defined SHARED || defined PROCINFO_DECL
53 ;
54 # else
55 ,
56 # endif
57 #endif
58 
59 /* Number of HWCAP bits set.  */
60 #define _DL_HWCAP_COUNT 32
61 
62 #if !defined PROCINFO_DECL && defined SHARED
63   ._dl_aarch64_cap_flags
64 #else
65 PROCINFO_CLASS const char _dl_aarch64_cap_flags[_DL_HWCAP_COUNT][10]
66 #endif
67 #ifndef PROCINFO_DECL
68 /* Matches the names in arch/arm64/kernel/cpuinfo.c of Linux.  */
69 = { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
70     "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
71     "lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve",
72     "asimdfhm", "dit", "uscat", "ilrcpc", "flagm", "ssbs", "sb", "paca",
73     "pacg" }
74 #endif
75 #if !defined SHARED || defined PROCINFO_DECL
76 ;
77 #else
78 ,
79 #endif
80 
81 #undef PROCINFO_DECL
82 #undef PROCINFO_CLASS
83