/* contrib/riscv-rvv/linux.c * * Copyright (c) 2023 Google LLC * Written by DragoČ™ Tiselice , May 2023. * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer * and license in png.h * * SEE contrib/riscv-rvv/README before reporting bugs * * STATUS: SUPPORTED * BUG REPORTS: png-mng-implement@sourceforge.net * * png_have_rvv implemented for Linux by looking for COMPAT_HWCAP_ISA_V * via hardware capabilites API. * * This code is strict ANSI-C and is probably moderately portable; it does * however use and it assumes that /proc/cpuinfo is never localized. */ #if defined(__linux__) #include #include #endif static int png_have_rvv() { #if defined(__linux__) return getauxval (AT_HWCAP) & COMPAT_HWCAP_ISA_V ? 1 : 0; #else #pragma message( \ "warning: RISC-V Vector not supported for this platform") return 0; #endif }