forked from cory/tildefriends
apps
core
deps
codemirror
crypt_blowfish
libbacktrace
libbacktrace_config
libsodium
libuv
lit
openssl
android
ios
mingw64
usr
local
include
crypto
internal
__DECC_INCLUDE_EPILOGUE.H
__DECC_INCLUDE_PROLOGUE.H
asn1.h
bio.h
bio_addr.h
bio_tfo.h
common.h
comp.h
conf.h
constant_time.h
core.h
cryptlib.h
dane.h
deprecated.h
der.h
deterministic_nonce.h
dso.h
dsoerr.h
e_os.h
endian.h
err.h
event_queue.h
ffc.h
hpke_util.h
ktls.h
list.h
namemap.h
nelem.h
numbers.h
o_dir.h
packet.h
packet_quic.h
param_build_set.h
param_names.h
param_names.h.in
params.h
passphrase.h
priority_queue.h
property.h
propertyerr.h
provider.h
quic_ackm.h
quic_cc.h
quic_cfq.h
quic_channel.h
quic_demux.h
quic_error.h
quic_fc.h
quic_fifd.h
quic_reactor.h
quic_record_rx.h
quic_record_tx.h
quic_record_util.h
quic_rx_depack.h
quic_sf_list.h
quic_ssl.h
quic_statm.h
quic_stream.h
quic_stream_map.h
quic_thread_assist.h
quic_tls.h
quic_tserver.h
quic_txp.h
quic_txpim.h
quic_types.h
quic_vlint.h
quic_wire.h
quic_wire_pkt.h
recordmethod.h
refcount.h
ring_buf.h
safe_math.h
sha3.h
sizes.h
sm3.h
sockets.h
ssl.h
ssl3_cbc.h
sslconf.h
statem.h
symhacks.h
thread.h
thread_arch.h
thread_once.h
time.h
tlsgroups.h
tsan_assist.h
uint_set.h
unicode.h
openssl
picohttpparser
quickjs
speedscope
sqlite
xopt
zlib
docs
src
tools
.dockerignore
Dockerfile
GNUmakefile
LICENSE
README.md
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
|
/*
|
||
|
* Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
|
||
|
*
|
||
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
||
|
* this file except in compliance with the License. You can obtain a copy
|
||
|
* in the file LICENSE in the source distribution or at
|
||
|
* https://www.openssl.org/source/license.html
|
||
|
*/
|
||
|
|
||
|
#ifndef OPENSSL_INTERNAL_THREAD_H
|
||
|
# define OPENSSL_INTERNAL_THREAD_H
|
||
|
# include <openssl/configuration.h>
|
||
|
# include <internal/thread_arch.h>
|
||
|
# include <openssl/e_os2.h>
|
||
|
# include <openssl/types.h>
|
||
|
# include <internal/cryptlib.h>
|
||
|
# include "crypto/context.h"
|
||
|
|
||
|
void *ossl_crypto_thread_start(OSSL_LIB_CTX *ctx, CRYPTO_THREAD_ROUTINE start,
|
||
|
void *data);
|
||
|
int ossl_crypto_thread_join(void *task, CRYPTO_THREAD_RETVAL *retval);
|
||
|
int ossl_crypto_thread_clean(void *vhandle);
|
||
|
uint64_t ossl_get_avail_threads(OSSL_LIB_CTX *ctx);
|
||
|
|
||
|
# if defined(OPENSSL_THREADS)
|
||
|
|
||
|
# define OSSL_LIB_CTX_GET_THREADS(CTX) \
|
||
|
ossl_lib_ctx_get_data(CTX, OSSL_LIB_CTX_THREAD_INDEX);
|
||
|
|
||
|
typedef struct openssl_threads_st {
|
||
|
uint64_t max_threads;
|
||
|
uint64_t active_threads;
|
||
|
CRYPTO_MUTEX *lock;
|
||
|
CRYPTO_CONDVAR *cond_finished;
|
||
|
} OSSL_LIB_CTX_THREADS;
|
||
|
|
||
|
# endif /* defined(OPENSSL_THREADS) */
|
||
|
|
||
|
#endif /* OPENSSL_INTERNAL_THREAD_H */
|