Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause 2 : : * Copyright (c) Intel Corporation. 3 : : * Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. 4 : : * All rights reserved. 5 : : */ 6 : : 7 : : #include "accel_dpdk_cryptodev.h" 8 : : 9 : : #include "spdk/rpc.h" 10 : : #include "spdk/util.h" 11 : : 12 : : static void 13 : 23 : rpc_dpdk_cryptodev_scan_accel_module(struct spdk_jsonrpc_request *request, 14 : : const struct spdk_json_val *params) 15 : : { 16 [ - + ]: 23 : if (params != NULL) { 17 : 0 : spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, 18 : : "No parameters expected"); 19 : 0 : return; 20 : : } 21 : : 22 : 23 : accel_dpdk_cryptodev_enable(); 23 : 23 : spdk_jsonrpc_send_bool_response(request, true); 24 : : } 25 : 172 : SPDK_RPC_REGISTER("dpdk_cryptodev_scan_accel_module", rpc_dpdk_cryptodev_scan_accel_module, 26 : : SPDK_RPC_STARTUP) 27 : : 28 : : struct rpc_set_driver { 29 : : char *driver_name; 30 : : }; 31 : : 32 : : static const struct spdk_json_object_decoder rpc_set_driver_decoders[] = { 33 : : {"driver_name", offsetof(struct rpc_set_driver, driver_name), spdk_json_decode_string}, 34 : : }; 35 : : 36 : : static void 37 : 22 : rpc_dpdk_cryptodev_set_driver(struct spdk_jsonrpc_request *request, 38 : : const struct spdk_json_val *params) 39 : : { 40 : 22 : struct rpc_set_driver req = {}; 41 : : int rc; 42 : : 43 [ - + ]: 22 : if (spdk_json_decode_object(params, rpc_set_driver_decoders, 44 : : SPDK_COUNTOF(rpc_set_driver_decoders), &req)) { 45 : 0 : spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_PARSE_ERROR, 46 : : "spdk_json_decode_object failed"); 47 : 0 : return; 48 : : } 49 : : 50 : 22 : rc = accel_dpdk_cryptodev_set_driver(req.driver_name); 51 : 22 : free(req.driver_name); 52 [ - + ]: 22 : if (rc) { 53 : 0 : spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, 54 : : "incorrect driver name"); 55 : : } else { 56 : 22 : spdk_jsonrpc_send_bool_response(request, true); 57 : : } 58 : : } 59 : 172 : SPDK_RPC_REGISTER("dpdk_cryptodev_set_driver", rpc_dpdk_cryptodev_set_driver, SPDK_RPC_STARTUP) 60 : : 61 : : static void 62 : 0 : rpc_dpdk_cryptodev_get_driver(struct spdk_jsonrpc_request *request, 63 : : const struct spdk_json_val *params) 64 : : { 65 : : struct spdk_json_write_ctx *w; 66 : : const char *driver_name; 67 : : 68 [ # # ]: 0 : if (params) { 69 : 0 : spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, 70 : : "No parameters expected"); 71 : 0 : return; 72 : : } 73 : : 74 : 0 : driver_name = accel_dpdk_cryptodev_get_driver(); 75 [ # # ]: 0 : assert(driver_name); 76 : : 77 : 0 : w = spdk_jsonrpc_begin_result(request); 78 : 0 : spdk_json_write_string(w, driver_name); 79 : 0 : spdk_jsonrpc_end_result(request, w); 80 : : } 81 : 172 : SPDK_RPC_REGISTER("dpdk_cryptodev_get_driver", rpc_dpdk_cryptodev_get_driver, 82 : : SPDK_RPC_STARTUP | SPDK_RPC_RUNTIME)