LCOV - code coverage report
Current view: top level - spdk/lib/scsi - scsi_rpc.c (source / functions) Hit Total Coverage
Test: Combined Lines: 16 18 88.9 %
Date: 2024-07-15 15:46:37 Functions: 2 2 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 5 6 83.3 %

           Branch data     Line data    Source code
       1                 :            : /*   SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  *   Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>.
       3                 :            :  *   Copyright (C) 2016 Intel Corporation.
       4                 :            :  *   All rights reserved.
       5                 :            :  */
       6                 :            : 
       7                 :            : #include "scsi_internal.h"
       8                 :            : 
       9                 :            : #include "spdk/rpc.h"
      10                 :            : #include "spdk/util.h"
      11                 :            : 
      12                 :            : static void
      13                 :        134 : rpc_scsi_get_devices(struct spdk_jsonrpc_request *request,
      14                 :            :                      const struct spdk_json_val *params)
      15                 :            : {
      16                 :            :         struct spdk_json_write_ctx *w;
      17                 :        134 :         struct spdk_scsi_dev *devs = scsi_dev_get_list();
      18                 :            :         int i;
      19                 :            : 
      20         [ -  + ]:        134 :         if (params != NULL) {
      21                 :          0 :                 spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
      22                 :            :                                                  "scsi_get_devices requires no parameters");
      23                 :          0 :                 return;
      24                 :            :         }
      25                 :            : 
      26                 :        134 :         w = spdk_jsonrpc_begin_result(request);
      27                 :        134 :         spdk_json_write_array_begin(w);
      28                 :            : 
      29         [ +  + ]:     137350 :         for (i = 0; i < SPDK_SCSI_MAX_DEVS; i++) {
      30                 :     137216 :                 struct spdk_scsi_dev *dev = &devs[i];
      31                 :            : 
      32         [ +  + ]:     137216 :                 if (!dev->is_allocated) {
      33                 :     137133 :                         continue;
      34                 :            :                 }
      35                 :            : 
      36                 :         83 :                 spdk_json_write_object_begin(w);
      37                 :            : 
      38                 :         83 :                 spdk_json_write_named_int32(w, "id", dev->id);
      39                 :            : 
      40                 :         83 :                 spdk_json_write_named_string(w, "device_name", dev->name);
      41                 :            : 
      42                 :         83 :                 spdk_json_write_object_end(w);
      43                 :            :         }
      44                 :        134 :         spdk_json_write_array_end(w);
      45                 :            : 
      46                 :        134 :         spdk_jsonrpc_end_result(request, w);
      47                 :            : }
      48                 :        798 : SPDK_RPC_REGISTER("scsi_get_devices", rpc_scsi_get_devices, SPDK_RPC_RUNTIME)

Generated by: LCOV version 1.14