VLC
3.0.15
include
vlc_gcrypt.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* vlc_gcrypt.h: VLC thread support for gcrypt
3
*****************************************************************************
4
* Copyright (C) 2004-2010 RĂ©mi Denis-Courmont
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation; either version 2.1 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this program; if not, write to the Free Software Foundation,
18
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19
*****************************************************************************/
20
21
/**
22
* \file
23
* This file implements gcrypt support functions in vlc
24
*/
25
26
#include <errno.h>
27
28
static
inline
void
vlc_gcrypt_init
(
void
)
29
{
30
/* This would need a process-wide static mutex with all libraries linking
31
* to a given instance of libgcrypt. We cannot do this as we have different
32
* plugins linking with gcrypt, and some underlying libraries may use it
33
* behind our back. Only way is to always link gcrypt statically (ouch!) or
34
* have upstream gcrypt provide one shared object per threading system. */
35
static
bool
done =
false
;
36
37
vlc_global_lock
(
VLC_GCRYPT_MUTEX
);
38
if
(!done)
39
{
40
/* The suggested way for an application to make sure that global_init
41
* has been called is by using gcry_check_version. (see global_init
42
* comments in gcrypt sources) */
43
gcry_check_version(NULL);
44
done =
true
;
45
}
46
vlc_global_unlock
(
VLC_GCRYPT_MUTEX
);
47
}
vlc_gcrypt_init
static void vlc_gcrypt_init(void)
Definition:
vlc_gcrypt.h:28
vlc_global_lock
#define vlc_global_lock(n)
Acquires a global mutex.
Definition:
vlc_threads.h:1074
vlc_common.h
vlc_global_unlock
#define vlc_global_unlock(n)
Releases a global mutex.
Definition:
vlc_threads.h:1079
VLC_GCRYPT_MUTEX
Definition:
vlc_threads.h:1052
Generated by
1.8.16