36#include "checkasm/checkasm.h"
41PACKED(
typedef struct { uint32_t eax, ebx, ecx, edx; }) CpuidRegisters;
44checkasm_cpu_cpuid(CpuidRegisters *regs,
unsigned leaf,
unsigned subleaf);
48void checkasm_init_x86(
void);
55char *checkasm_get_x86_cpuid(
char *buf,
size_t buflen);
63void checkasm_simd_warmup(
void);
68int checkasm_get_cpuids(uint32_t *vendor, uintptr_t *arch, uintptr_t *imp);
69const char *checkasm_get_riscv_vendor_name(uint32_t vendorid);
70const char *checkasm_get_riscv_arch_name(
char *buf,
size_t len,
71 uint32_t vendorid, uintptr_t archid);
80unsigned long checkasm_get_vlen(
void);
82void checkasm_checked_call_i(
void);
83void checkasm_checked_call_if(
void);
84void checkasm_checked_call_iv(
void);
85void checkasm_checked_call_ifv(
void);
90int checkasm_has_sve(
void);
92int checkasm_has_sme(
void);
97int checkasm_sve_length(
void);
104int checkasm_sme_length(
void);
110void checkasm_init_arm(
void);
112void checkasm_checked_call_vfp(
void *
func,
int dummy, ...);
113void checkasm_checked_call_novfp(
void *
func,
int dummy, ...);
126#if (ARCH_ARM || ARCH_AARCH64) && defined(__linux__)
127const char *checkasm_get_arm_cpuinfo(
char *buf,
size_t buflen,
int affinity);
130#if (ARCH_ARM || ARCH_AARCH64) && defined(_WIN32)
131const char *checkasm_get_arm_win32_reg(
char *buf,
size_t buflen,
int affinity);
135void checkasm_cpu_info(
void (*info_cb)(
void *priv,
const char *fmt, ...),
void *priv,
#define CHECKASM_SELF_API
Exports symbols for internal use inside the checkasm self-tests.
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Configuration structure for the checkasm test suite.
Platform and compiler attribute macros.
void checkasm_init_cpu(void)
void checkasm_cpu_info(void(*info_cb)(void *priv, const char *fmt,...), void *priv, const CheckasmConfig *config)
unsigned long checkasm_getauxval(unsigned long)
const char * checkasm_get_jedec_vendor_name(unsigned bank, unsigned offset)