/* SPDX-License-Identifier: Apache-2.0 * Copyright (c) 2024 Cisco Systems, Inc. */ #ifndef included_vnet_crypto_engine_h #define included_vnet_crypto_engine_h #ifndef included_clib_types_h typedef unsigned int u32; #endif typedef struct { vnet_crypto_op_id_t opt; vnet_crypto_ops_handler_t *fn; vnet_crypto_chained_ops_handler_t *cfn; } vnet_crypto_engine_op_handlers_t; struct vnet_crypto_engine_registration; typedef char *( vnet_crypto_engine_init_fn_t) (struct vnet_crypto_engine_registration *); typedef struct vnet_crypto_engine_registration { char name[32]; /* backend name */ char desc[128]; /* backend name */ int prio; u32 version; u32 per_thread_data_sz; u32 num_threads; void *per_thread_data; vnet_crypto_engine_init_fn_t *init_fn; vnet_crypto_key_handler_t *key_handler; vnet_crypto_engine_op_handlers_t *op_handlers; } vnet_crypto_engine_registration_t; #define VNET_CRYPTO_ENGINE_REGISTRATION() \ __clib_export vnet_crypto_engine_registration_t __vnet_crypto_engine #endif