[vlc-devel] [PATCH 3/4] cpu: deduplicate one-time initialization
Alexandre Janniaux
ajanni at videolabs.io
Mon Mar 30 09:35:38 CEST 2020
Hi,
Can you add the reason for putting an additional VLC_WEAK
on vlc_CPU_raw in the commit message? It would probably help
in the future.
Regards,
--
Alexandre Janniaux
Videolabs
On Sun, Mar 29, 2020 at 11:43:54PM +0300, RĂ©mi Denis-Courmont wrote:
> ---
> include/vlc_cpu.h | 8 ++++++++
> src/linux/cpu.c | 22 +---------------------
> src/misc/cpu.c | 2 +-
> 3 files changed, 10 insertions(+), 22 deletions(-)
>
> diff --git a/include/vlc_cpu.h b/include/vlc_cpu.h
> index 6fe098f78a..80dfd9656d 100644
> --- a/include/vlc_cpu.h
> +++ b/include/vlc_cpu.h
> @@ -31,6 +31,14 @@
> */
> VLC_API unsigned vlc_CPU(void);
>
> +/**
> + * Computes CPU capability flags.
> + *
> + * Do not call this function directly.
> + * Call vlc_CPU() instead, which caches the correct value.
> + */
> +unsigned vlc_CPU_raw(void);
> +
> # if defined (__i386__) || defined (__x86_64__)
> # define HAVE_FPU 1
> # define VLC_CPU_MMX 0x00000008
> diff --git a/src/linux/cpu.c b/src/linux/cpu.c
> index f9a82bb51e..6ba11512ef 100644
> --- a/src/linux/cpu.c
> +++ b/src/linux/cpu.c
> @@ -40,7 +40,7 @@
> #endif
>
> #ifdef CPU_FLAGS
> -static unsigned vlc_CPU_raw(void)
> +unsigned vlc_CPU_raw(void)
> {
> FILE *info = fopen ("/proc/cpuinfo", "rte");
> if (info == NULL)
> @@ -120,24 +120,4 @@ static unsigned vlc_CPU_raw(void)
>
> return all_caps;
> }
> -
> -static uint32_t cpu_flags = 0;
> -
> -static void vlc_CPU_init(void)
> -{
> - cpu_flags = vlc_CPU_raw();
> -}
> -
> -unsigned vlc_CPU (void)
> -{
> - static pthread_once_t once = PTHREAD_ONCE_INIT;
> -
> - pthread_once (&once, vlc_CPU_init);
> - return cpu_flags;
> -}
> -#else /* CPU_FLAGS */
> -unsigned vlc_CPU (void)
> -{
> - return 0;
> -}
> #endif
> diff --git a/src/misc/cpu.c b/src/misc/cpu.c
> index 8a8835b79b..7f3a89a3cb 100644
> --- a/src/misc/cpu.c
> +++ b/src/misc/cpu.c
> @@ -113,7 +113,7 @@ static void Altivec_test (void)
> /**
> * Determines the CPU capabilities.
> */
> -static unsigned vlc_CPU_raw(void)
> +VLC_WEAK unsigned vlc_CPU_raw(void)
> {
> uint32_t i_capabilities = 0;
>
> --
> 2.26.0
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list