b78b10c4 |
/* |
c83d7949 |
* This file is part of FFmpeg. |
b78b10c4 |
* |
c83d7949 |
* FFmpeg is free software; you can redistribute it and/or |
b78b10c4 |
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* |
c83d7949 |
* FFmpeg is distributed in the hope that it will be useful, |
b78b10c4 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public |
c83d7949 |
* License along with FFmpeg; if not, write to the Free Software |
b78b10c4 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVUTIL_CPU_INTERNAL_H
#define AVUTIL_CPU_INTERNAL_H
|
4cf84e25 |
#include "config.h"
|
8410d6e9 |
#include "cpu.h"
#define CPUEXT_SUFFIX(flags, suffix, cpuext) \
(HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext))
|
73a4589d |
#define CPUEXT_SUFFIX_FAST2(flags, suffix, cpuext, slow_cpuext) \ |
cae39851 |
(HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext) && \ |
73a4589d |
!((flags) & AV_CPU_FLAG_ ## slow_cpuext ## SLOW)) |
cae39851 |
|
73a4589d |
#define CPUEXT_SUFFIX_SLOW2(flags, suffix, cpuext, slow_cpuext) \ |
cae39851 |
(HAVE_ ## cpuext ## suffix && ((flags) & AV_CPU_FLAG_ ## cpuext) && \ |
73a4589d |
((flags) & AV_CPU_FLAG_ ## slow_cpuext ## SLOW))
#define CPUEXT_SUFFIX_FAST(flags, suffix, cpuext) CPUEXT_SUFFIX_FAST2(flags, suffix, cpuext, cpuext)
#define CPUEXT_SUFFIX_SLOW(flags, suffix, cpuext) CPUEXT_SUFFIX_SLOW2(flags, suffix, cpuext, cpuext) |
cae39851 |
|
8410d6e9 |
#define CPUEXT(flags, cpuext) CPUEXT_SUFFIX(flags, , cpuext) |
cae39851 |
#define CPUEXT_FAST(flags, cpuext) CPUEXT_SUFFIX_FAST(flags, , cpuext)
#define CPUEXT_SLOW(flags, cpuext) CPUEXT_SUFFIX_SLOW(flags, , cpuext) |
8410d6e9 |
|
b7b17ed6 |
int ff_get_cpu_flags_aarch64(void); |
b78b10c4 |
int ff_get_cpu_flags_arm(void);
int ff_get_cpu_flags_ppc(void);
int ff_get_cpu_flags_x86(void);
|
3b345d38 |
size_t ff_get_cpu_max_align_aarch64(void);
size_t ff_get_cpu_max_align_arm(void);
size_t ff_get_cpu_max_align_ppc(void);
size_t ff_get_cpu_max_align_x86(void);
|
b78b10c4 |
#endif /* AVUTIL_CPU_INTERNAL_H */ |