xref: /linux/drivers/net/ethernet/intel/libie/adminq.c (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /* Copyright (C) 2025 Intel Corporation */
3 
4 #include <linux/module.h>
5 #include <linux/net/intel/libie/adminq.h>
6 
7 static const char * const libie_aq_str_arr[] = {
8 #define LIBIE_AQ_STR(x)					\
9 	[LIBIE_AQ_RC_##x]	= "LIBIE_AQ_RC" #x
10 	LIBIE_AQ_STR(OK),
11 	LIBIE_AQ_STR(EPERM),
12 	LIBIE_AQ_STR(ENOENT),
13 	LIBIE_AQ_STR(ESRCH),
14 	LIBIE_AQ_STR(EIO),
15 	LIBIE_AQ_STR(EAGAIN),
16 	LIBIE_AQ_STR(ENOMEM),
17 	LIBIE_AQ_STR(EACCES),
18 	LIBIE_AQ_STR(EBUSY),
19 	LIBIE_AQ_STR(EEXIST),
20 	LIBIE_AQ_STR(EINVAL),
21 	LIBIE_AQ_STR(ENOSPC),
22 	LIBIE_AQ_STR(ENOSYS),
23 	LIBIE_AQ_STR(EMODE),
24 	LIBIE_AQ_STR(ENOSEC),
25 	LIBIE_AQ_STR(EBADSIG),
26 	LIBIE_AQ_STR(ESVN),
27 	LIBIE_AQ_STR(EBADMAN),
28 	LIBIE_AQ_STR(EBADBUF),
29 #undef LIBIE_AQ_STR
30 	"LIBIE_AQ_RC_UNKNOWN",
31 };
32 
33 #define __LIBIE_AQ_STR_NUM (ARRAY_SIZE(libie_aq_str_arr) - 1)
34 
35 /**
36  * libie_aq_str - get error string based on aq error
37  * @err: admin queue error type
38  *
39  * Return: error string for passed error code
40  */
libie_aq_str(enum libie_aq_err err)41 const char *libie_aq_str(enum libie_aq_err err)
42 {
43 	if (err >= ARRAY_SIZE(libie_aq_str_arr) ||
44 	    !libie_aq_str_arr[err])
45 		err = __LIBIE_AQ_STR_NUM;
46 
47 	return libie_aq_str_arr[err];
48 }
49 EXPORT_SYMBOL_NS_GPL(libie_aq_str, "LIBIE_ADMINQ");
50 
51 MODULE_DESCRIPTION("Intel(R) Ethernet common library - adminq helpers");
52 MODULE_LICENSE("GPL");
53