1 /*
2  * This file and its contents are supplied under the terms of the
3  * Common Development and Distribution License ("CDDL"), version 1.0.
4  * You may only use this file in accordance with the terms of version
5  * 1.0 of the CDDL.
6  *
7  * A full copy of the text of the CDDL should have accompanied this
8  * source.  A copy of the CDDL is also available via the Internet at
9  * http://www.illumos.org/license/CDDL.
10  */
11 
12 /*
13  * Copyright 2024 Oxide Computer Company
14  */
15 
16 #ifndef _LIBNVME_TEST_COMMON_H
17 #define	_LIBNVME_TEST_COMMON_H
18 
19 #include <stdbool.h>
20 #include <libnvme.h>
21 #include <sys/ccompile.h>
22 
23 /*
24  * Common definitions and functions for the libnvme tests.
25  */
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #define	NVME_TEST_DEV_ENVVAR	"NVME_TEST_DEVICE"
32 
33 extern void libnvme_test_init(nvme_t **, nvme_ctrl_t **);
34 
35 /*
36  * Warnings and fatal errors from the surrounding tests.
37  */
38 extern void libnvme_test_hdl_warn(nvme_t *, const char *,
39     ...) __PRINTFLIKE(2);
40 extern void libnvme_test_ctrl_warn(nvme_ctrl_t *, const char *,
41     ...) __PRINTFLIKE(2);
42 extern void libnvme_test_ctrl_info_warn(nvme_ctrl_info_t *, const char *,
43     ...) __PRINTFLIKE(2);
44 extern void libnvme_test_ns_info_warn(nvme_ns_info_t *, const char *,
45     ...) __PRINTFLIKE(2);
46 extern void libnvme_test_hdl_fatal(nvme_t *, const char *,
47     ...) __PRINTFLIKE(2) __NORETURN;
48 extern void libnvme_test_ctrl_fatal(nvme_ctrl_t *, const char *,
49     ...) __PRINTFLIKE(2) __NORETURN;
50 extern void libnvme_test_ctrl_info_fatal(nvme_ctrl_info_t *, const char *,
51     ...) __PRINTFLIKE(2) __NORETURN;
52 
53 #ifdef __cplusplus
54 }
55 #endif
56 
57 #endif /* _LIBNVME_TEST_COMMON_H */
58