1 /*
2 * Copyright (c) 2020, The OpenThread Authors.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * 3. Neither the name of the copyright holder nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28 /**
29 * @file
30 * This file implements exit code utilities.
31 */
32
33 #include "exit_code.h"
34
35 #include <assert.h>
36 #include <errno.h>
37 #include <stdbool.h>
38 #include <string.h>
39
otExitCodeToString(uint8_t aExitCode)40 const char *otExitCodeToString(uint8_t aExitCode)
41 {
42 const char *retval = NULL;
43
44 switch (aExitCode)
45 {
46 case OT_EXIT_SUCCESS:
47 retval = "Success";
48 break;
49
50 case OT_EXIT_FAILURE:
51 retval = "Failure";
52 break;
53
54 case OT_EXIT_INVALID_ARGUMENTS:
55 retval = "InvalidArgument";
56 break;
57
58 case OT_EXIT_RADIO_SPINEL_INCOMPATIBLE:
59 retval = "RadioSpinelIncompatible";
60 break;
61
62 case OT_EXIT_RADIO_SPINEL_RESET:
63 retval = "RadioSpinelReset";
64 break;
65
66 case OT_EXIT_RADIO_SPINEL_NO_RESPONSE:
67 retval = "RadioSpinelNoResponse";
68 break;
69
70 case OT_EXIT_ERROR_ERRNO:
71 #ifdef errno
72 retval = strerror(errno);
73 #else
74 retval = "ErrorNo";
75 #endif
76 break;
77
78 default:
79 assert(false);
80 retval = "UnknownExitCode";
81 break;
82 }
83
84 return retval;
85 }
86