xref: /spdk/test/common/lib/nvme/common_stubs.h (revision fecffda6ecf8853b82edccde429b68252f0a62c5)
1 /*   SPDX-License-Identifier: BSD-3-Clause
2  *   Copyright (C) 2020 Intel Corporation.
3  *   All rights reserved.
4  *   Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
5  */
6 
7 #include "common/lib/test_env.c"
8 
9 const char *
10 spdk_nvme_transport_id_trtype_str(enum spdk_nvme_transport_type trtype)
11 {
12 	switch (trtype) {
13 	case SPDK_NVME_TRANSPORT_PCIE:
14 		return "PCIe";
15 	case SPDK_NVME_TRANSPORT_RDMA:
16 		return "RDMA";
17 	case SPDK_NVME_TRANSPORT_FC:
18 		return "FC";
19 	default:
20 		return NULL;
21 	}
22 }
23 
24 int
25 spdk_nvme_transport_id_populate_trstring(struct spdk_nvme_transport_id *trid, const char *trstring)
26 {
27 	int len, i;
28 
29 	if (trstring == NULL) {
30 		return -EINVAL;
31 	}
32 
33 	len = strnlen(trstring, SPDK_NVMF_TRSTRING_MAX_LEN);
34 	if (len == SPDK_NVMF_TRSTRING_MAX_LEN) {
35 		return -EINVAL;
36 	}
37 
38 	/* cast official trstring to uppercase version of input. */
39 	for (i = 0; i < len; i++) {
40 		trid->trstring[i] = toupper(trstring[i]);
41 	}
42 	return 0;
43 }
44 
45 DEFINE_STUB(nvme_request_check_timeout, int, (struct nvme_request *req, uint16_t cid,
46 		struct spdk_nvme_ctrlr_process *active_proc, uint64_t now_tick), 0);
47 DEFINE_STUB_V(nvme_ctrlr_destruct_finish, (struct spdk_nvme_ctrlr *ctrlr));
48 DEFINE_STUB(nvme_ctrlr_construct, int, (struct spdk_nvme_ctrlr *ctrlr), 0);
49 DEFINE_STUB_V(nvme_ctrlr_destruct, (struct spdk_nvme_ctrlr *ctrlr));
50 DEFINE_STUB(nvme_ctrlr_get_vs, int, (struct spdk_nvme_ctrlr *ctrlr,
51 				     union spdk_nvme_vs_register *vs), 0);
52 DEFINE_STUB(nvme_ctrlr_get_cap, int, (struct spdk_nvme_ctrlr *ctrlr,
53 				      union spdk_nvme_cap_register *cap), 0);
54 DEFINE_STUB_V(nvme_qpair_deinit, (struct spdk_nvme_qpair *qpair));
55 DEFINE_STUB_V(spdk_nvme_transport_register, (const struct spdk_nvme_transport_ops *ops));
56 DEFINE_STUB(nvme_transport_ctrlr_connect_qpair, int, (struct spdk_nvme_ctrlr *ctrlr,
57 		struct spdk_nvme_qpair *qpair), 0);
58 DEFINE_STUB_V(nvme_transport_ctrlr_disconnect_qpair_done, (struct spdk_nvme_qpair *qpair));
59 DEFINE_STUB(nvme_ctrlr_get_current_process, struct spdk_nvme_ctrlr_process *,
60 	    (struct spdk_nvme_ctrlr *ctrlr), (struct spdk_nvme_ctrlr_process *)(uintptr_t)0x1);
61 DEFINE_STUB(nvme_ctrlr_add_process, int, (struct spdk_nvme_ctrlr *ctrlr, void *devhandle), 0);
62 DEFINE_STUB_V(spdk_nvme_trid_populate_transport, (struct spdk_nvme_transport_id *trid,
63 		enum spdk_nvme_transport_type trtype));
64 DEFINE_STUB(nvme_get_transport, const struct spdk_nvme_transport *, (const char *transport_name),
65 	    NULL);
66 DEFINE_STUB(spdk_nvme_qpair_process_completions, int32_t, (struct spdk_nvme_qpair *qpair,
67 		uint32_t max_completions), 0);
68 DEFINE_STUB_V(nvme_ctrlr_disable, (struct spdk_nvme_ctrlr *ctrlr));
69 DEFINE_STUB(nvme_ctrlr_disable_poll, int, (struct spdk_nvme_ctrlr *ctrlr), 0);
70 
71 /* Fabric transports only */
72 DEFINE_STUB_V(nvme_ctrlr_disconnect_qpair, (struct spdk_nvme_qpair *qpair));
73 DEFINE_STUB(nvme_fabric_ctrlr_set_reg_4, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
74 		uint32_t value), 0);
75 DEFINE_STUB(nvme_fabric_ctrlr_set_reg_8, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
76 		uint64_t value), 0);
77 DEFINE_STUB(nvme_fabric_ctrlr_get_reg_4, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
78 		uint32_t *value), 0);
79 DEFINE_STUB(nvme_fabric_ctrlr_get_reg_8, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
80 		uint64_t *value), 0);
81 DEFINE_STUB(nvme_fabric_ctrlr_set_reg_4_async, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
82 		uint32_t value, spdk_nvme_reg_cb cb, void *ctx), 0);
83 DEFINE_STUB(nvme_fabric_ctrlr_set_reg_8_async, int, (struct spdk_nvme_ctrlr *ctrlr, uint32_t offset,
84 		uint64_t value, spdk_nvme_reg_cb cb, void *ctx), 0);
85 DEFINE_STUB(nvme_fabric_ctrlr_get_reg_4_async, int, (struct spdk_nvme_ctrlr *ctrlr,
86 		uint32_t offset, spdk_nvme_reg_cb cb, void *ctx), 0);
87 DEFINE_STUB(nvme_fabric_ctrlr_get_reg_8_async, int, (struct spdk_nvme_ctrlr *ctrlr,
88 		uint32_t offset, spdk_nvme_reg_cb cb, void *ctx), 0);
89 DEFINE_STUB(nvme_fabric_ctrlr_scan, int, (struct spdk_nvme_probe_ctx *probe_ctx,
90 		bool direct_connect), 0);
91 DEFINE_STUB(nvme_fabric_qpair_connect, int, (struct spdk_nvme_qpair *qpair, uint32_t num_entries),
92 	    0);
93 DEFINE_STUB(nvme_fabric_qpair_connect_async, int, (struct spdk_nvme_qpair *qpair,
94 		uint32_t num_entries), 0);
95 DEFINE_STUB(nvme_fabric_qpair_connect_poll, int, (struct spdk_nvme_qpair *qpair), 0);
96 DEFINE_STUB_V(nvme_transport_ctrlr_disconnect_qpair, (struct spdk_nvme_ctrlr *ctrlr,
97 		struct spdk_nvme_qpair *qpair));
98 DEFINE_STUB(nvme_poll_group_disconnect_qpair, int, (struct spdk_nvme_qpair *qpair), 0);
99 
100 int
101 nvme_qpair_init(struct spdk_nvme_qpair *qpair, uint16_t id,
102 		struct spdk_nvme_ctrlr *ctrlr,
103 		enum spdk_nvme_qprio qprio,
104 		uint32_t num_requests, bool async)
105 {
106 	qpair->ctrlr = ctrlr;
107 	qpair->id = id;
108 	qpair->qprio = qprio;
109 	qpair->async = async;
110 	qpair->trtype = SPDK_NVME_TRANSPORT_TCP;
111 	qpair->poll_group = (void *)0xDEADBEEF;
112 
113 	return 0;
114 }
115