FFmpeg
header_config.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2025, Niklas Haas
3  * Copyright © 2018, VideoLAN and dav1d authors
4  * Copyright © 2018, Two Orioles, LLC
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice, this
11  * list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright notice,
14  * this list of conditions and the following disclaimer in the documentation
15  * and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
21  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef CHECKASM_HEADER_CONFIG_H
30 #define CHECKASM_HEADER_CONFIG_H
31 
32 #ifdef CHECKASM_HAVE_HEADER_GENERATED_H
33  #include "checkasm_header_config_generated.h"
34 #endif
35 
36 #if defined(__aarch64__) || defined(_M_ARM64) || defined(__arm64ec__) \
37  || defined(_M_ARM64EC)
38  #ifndef CHECKASM_ARCH_AARCH64
39  #define CHECKASM_ARCH_AARCH64 1
40  #endif
41 #elif defined(__arm__) || defined(_M_ARM)
42  #ifndef CHECKASM_ARCH_ARM
43  #define CHECKASM_ARCH_ARM 1
44  #endif
45 #elif defined(__x86_64__) || defined(_M_AMD64)
46  #ifndef CHECKASM_ARCH_X86
47  #define CHECKASM_ARCH_X86 1
48  #define CHECKASM_ARCH_X86_64 1
49  #endif
50 #elif defined(__i386__) || defined(_M_IX86)
51  #ifndef CHECKASM_ARCH_X86
52  #define CHECKASM_ARCH_X86 1
53  #define CHECKASM_ARCH_X86_32 1
54  #endif
55 #elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__)
56  #ifndef CHECKASM_ARCH_PPC64LE
57  #define CHECKASM_ARCH_PPC64LE 1
58  #endif
59 #elif defined(__riscv)
60  #ifndef CHECKASM_ARCH_RISCV
61  #define CHECKASM_ARCH_RISCV 1
62  #if __riscv_xlen == 64
63  #define CHECKASM_ARCH_RV64 1
64  #else
65  #define CHECKASM_ARCH_RV32 1
66  #endif
67  #endif
68 #elif defined(__loongarch__)
69  #ifndef CHECKASM_ARCH_LOONGARCH
70  #define CHECKASM_ARCH_LOONGARCH 1
71  #if defined(__loongarch64)
72  #define CHECKASM_ARCH_LOONGARCH64 1
73  #else
74  #define CHECKASM_ARCH_LOONGARCH32 1
75  #endif
76  #endif
77 #endif
78 
79 #ifndef CHECKASM_ARCH_AARCH64
80  #define CHECKASM_ARCH_AARCH64 0
81 #endif
82 
83 #ifndef CHECKASM_ARCH_ARM
84  #define CHECKASM_ARCH_ARM 0
85 #endif
86 
87 #ifndef CHECKASM_ARCH_X86
88  #define CHECKASM_ARCH_X86 0
89 #endif
90 
91 #ifndef CHECKASM_ARCH_X86_64
92  #define CHECKASM_ARCH_X86_64 0
93 #endif
94 
95 #ifndef CHECKASM_ARCH_X86_32
96  #define CHECKASM_ARCH_X86_32 0
97 #endif
98 
99 #ifndef CHECKASM_ARCH_PPC64LE
100  #define CHECKASM_ARCH_PPC64LE 0
101 #endif
102 
103 #ifndef CHECKASM_ARCH_RISCV
104  #define CHECKASM_ARCH_RISCV 0
105 #endif
106 
107 #ifndef CHECKASM_ARCH_RV64
108  #define CHECKASM_ARCH_RV64 0
109 #endif
110 
111 #ifndef CHECKASM_ARCH_RV32
112  #define CHECKASM_ARCH_RV32 0
113 #endif
114 
115 #ifndef CHECKASM_ARCH_LOONGARCH
116  #define CHECKASM_ARCH_LOONGARCH 0
117 #endif
118 
119 #ifndef CHECKASM_ARCH_LOONGARCH64
120  #define CHECKASM_ARCH_LOONGARCH64 0
121 #endif
122 
123 #ifndef CHECKASM_ARCH_LOONGARCH32
124  #define CHECKASM_ARCH_LOONGARCH32 0
125 #endif
126 
127 #endif /* CHECKASM_HEADER_CONFIG */