[FFmpeg-devel] [PATCH 02/16] configure, avutil: add support for HorizonOS
Rémi Denis-Courmont
remi at remlab.net
Thu May 30 23:37:04 EEST 2024
Le torstaina 30. toukokuuta 2024, 22.43.04 EEST averne a écrit :
> HorizonOS (HOS) is the operating system of the Nintendo Switch.
> This patch enables integration with the homebrew toolchain developped by the
> devkitPro team. Its two main components are devkitA64 (common toolchain for
> aarch64 targets) and libnx (library implementing interaction with the HOS
> kernel and system daemons, termed sysmodules).
>
> Signed-off-by: averne <averne381 at gmail.com>
> ---
> configure | 8 ++++++++
> libavutil/cpu.c | 7 +++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/configure b/configure
> index 96b181fd21..09fb2aed1b 100755
> --- a/configure
> +++ b/configure
> @@ -5967,6 +5967,10 @@ case $target_os in
> ;;
> minix)
> ;;
> + horizon)
> + enable section_data_rel_ro
> + add_extralibs -lnx
> + ;;
> none)
> ;;
> *)
> @@ -7710,6 +7714,10 @@ haiku)
> disable memalign
> fi
> ;;
> +horizon)
> + disable sysctl
> + disable sysctlbyname
> + ;;
Are those really broken, or is this just a trick to force a fallback? In the
later case, you don't need to disable them; just to put the HOS code ahead of
the generic BSD code.
> esac
>
> flatten_extralibs(){
> diff --git a/libavutil/cpu.c b/libavutil/cpu.c
> index 9ac2f01c20..6a77df5e34 100644
> --- a/libavutil/cpu.c
> +++ b/libavutil/cpu.c
> @@ -48,6 +48,9 @@
> #if HAVE_UNISTD_H
> #include <unistd.h>
> #endif
> +#ifdef __SWITCH__
> +#include <switch.h>
> +#endif
>
> static atomic_int cpu_flags = -1;
> static atomic_int cpu_count = -1;
> @@ -247,6 +250,10 @@ int av_cpu_count(void)
> #elif HAVE_WINRT
> GetNativeSystemInfo(&sysinfo);
> nb_cpus = sysinfo.dwNumberOfProcessors;
> +#elif defined(__SWITCH__)
> + u64 core_mask = 0;
> + Result rc = svcGetInfo(&core_mask, InfoType_CoreMask,
> CUR_PROCESS_HANDLE, 0); + nb_cpus = R_SUCCEEDED(rc) ?
> av_popcount64(core_mask) : 3;
> #endif
>
> if (!atomic_exchange_explicit(&printed, 1, memory_order_relaxed))
--
雷米‧德尼-库尔蒙
http://www.remlab.net/
More information about the ffmpeg-devel
mailing list