diff options
author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2018-12-07 19:13:51 +0300 |
---|---|---|
committer | Daniel P. Berrangé <berrange@redhat.com> | 2018-12-12 11:16:49 +0000 |
commit | c972fa123c73501b4b0c6de7873754ea3205a5eb (patch) | |
tree | bde968050ae58bb203988e66bfe1cbe7110d0fef /include/crypto/block.h | |
parent | 0f0d596cb16a43314c8bc4a9afa2f966203fb05f (diff) | |
download | qemu-c972fa123c73501b4b0c6de7873754ea3205a5eb.zip qemu-c972fa123c73501b4b0c6de7873754ea3205a5eb.tar.gz qemu-c972fa123c73501b4b0c6de7873754ea3205a5eb.tar.bz2 |
crypto: support multiple threads accessing one QCryptoBlock
The two thing that should be handled are cipher and ivgen. For ivgen
the solution is just mutex, as iv calculations should not be long in
comparison with encryption/decryption. And for cipher let's just keep
per-thread ciphers.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'include/crypto/block.h')
-rw-r--r-- | include/crypto/block.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/crypto/block.h b/include/crypto/block.h index cd18f46..e729d5b 100644 --- a/include/crypto/block.h +++ b/include/crypto/block.h @@ -75,6 +75,7 @@ typedef enum { * @readfunc: callback for reading data from the volume * @opaque: data to pass to @readfunc * @flags: bitmask of QCryptoBlockOpenFlags values + * @n_threads: allow concurrent I/O from up to @n_threads threads * @errp: pointer to a NULL-initialized error object * * Create a new block encryption object for an existing @@ -107,6 +108,7 @@ QCryptoBlock *qcrypto_block_open(QCryptoBlockOpenOptions *options, QCryptoBlockReadFunc readfunc, void *opaque, unsigned int flags, + size_t n_threads, Error **errp); /** |