mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
cryptodev: Use CryptoDevBackendOpInfo for operation
Move queue_index, CryptoDevCompletionFunc and opaque into struct CryptoDevBackendOpInfo, then cryptodev_backend_crypto_operation() needs an argument CryptoDevBackendOpInfo *op_info only. And remove VirtIOCryptoReq from cryptodev. It's also possible to hide VirtIOCryptoReq into virtio-crypto.c in the next step. (In theory, VirtIOCryptoReq is a private structure used by virtio-crypto only) Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20230301105847.253084-9-pizhenwei@bytedance.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
ef52091aeb
commit
2cb0692768
5 changed files with 25 additions and 44 deletions
|
@ -174,9 +174,14 @@ typedef struct CryptoDevBackendAsymOpInfo {
|
|||
uint8_t *dst;
|
||||
} CryptoDevBackendAsymOpInfo;
|
||||
|
||||
typedef void (*CryptoDevCompletionFunc) (void *opaque, int ret);
|
||||
|
||||
typedef struct CryptoDevBackendOpInfo {
|
||||
QCryptodevBackendAlgType algtype;
|
||||
uint32_t op_code;
|
||||
uint32_t queue_index;
|
||||
CryptoDevCompletionFunc cb;
|
||||
void *opaque; /* argument for cb */
|
||||
uint64_t session_id;
|
||||
union {
|
||||
CryptoDevBackendSymOpInfo *sym_op_info;
|
||||
|
@ -184,7 +189,6 @@ typedef struct CryptoDevBackendOpInfo {
|
|||
} u;
|
||||
} CryptoDevBackendOpInfo;
|
||||
|
||||
typedef void (*CryptoDevCompletionFunc) (void *opaque, int ret);
|
||||
struct CryptoDevBackendClass {
|
||||
ObjectClass parent_class;
|
||||
|
||||
|
@ -204,10 +208,7 @@ struct CryptoDevBackendClass {
|
|||
void *opaque);
|
||||
|
||||
int (*do_op)(CryptoDevBackend *backend,
|
||||
CryptoDevBackendOpInfo *op_info,
|
||||
uint32_t queue_index,
|
||||
CryptoDevCompletionFunc cb,
|
||||
void *opaque);
|
||||
CryptoDevBackendOpInfo *op_info);
|
||||
};
|
||||
|
||||
struct CryptoDevBackendClient {
|
||||
|
@ -335,24 +336,17 @@ int cryptodev_backend_close_session(
|
|||
/**
|
||||
* cryptodev_backend_crypto_operation:
|
||||
* @backend: the cryptodev backend object
|
||||
* @opaque1: pointer to a VirtIOCryptoReq object
|
||||
* @queue_index: queue index of cryptodev backend client
|
||||
* @errp: pointer to a NULL-initialized error object
|
||||
* @cb: callbacks when operation is completed
|
||||
* @opaque2: parameter passed to cb
|
||||
* @op_info: pointer to a CryptoDevBackendOpInfo object
|
||||
*
|
||||
* Do crypto operation, such as encryption and
|
||||
* decryption
|
||||
* Do crypto operation, such as encryption, decryption, signature and
|
||||
* verification
|
||||
*
|
||||
* Returns: 0 for success and cb will be called when creation is completed,
|
||||
* negative value for error, and cb will not be called.
|
||||
*/
|
||||
int cryptodev_backend_crypto_operation(
|
||||
CryptoDevBackend *backend,
|
||||
void *opaque1,
|
||||
uint32_t queue_index,
|
||||
CryptoDevCompletionFunc cb,
|
||||
void *opaque2);
|
||||
CryptoDevBackendOpInfo *op_info);
|
||||
|
||||
/**
|
||||
* cryptodev_backend_set_used:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue