FreeRDP
errbase.c
1 
21 #include <freerdp/config.h>
22 
23 #include <stdio.h>
24 
25 #include <freerdp/log.h>
26 
27 #include "errinfo.h"
28 
29 #define ERRBASE_DEFINE(_code) \
30  { \
31  ERRBASE_##_code, "ERRBASE_" #_code, ERRBASE_##_code##_STRING, "" \
32  }
33 
34 /* Protocol-independent codes */
35 
36 /* Special codes */
37 #define ERRBASE_SUCCESS_STRING "Success."
38 #define ERRBASE_NONE_STRING ""
39 
40 static const ERRINFO ERRBASE_CODES[] = { ERRBASE_DEFINE(SUCCESS),
41 
42  ERRBASE_DEFINE(NONE) };
43 
44 const char* freerdp_get_error_base_string(UINT32 code)
45 {
46  const ERRINFO* errInfo = NULL;
47 
48  errInfo = &ERRBASE_CODES[0];
49 
50  while (errInfo->code != ERRBASE_NONE)
51  {
52  if (code == errInfo->code)
53  {
54  return errInfo->info;
55  }
56 
57  errInfo++;
58  }
59 
60  return "ERRBASE_UNKNOWN";
61 }
62 
63 const char* freerdp_get_error_base_category(UINT32 code)
64 {
65  const ERRINFO* errInfo = NULL;
66 
67  errInfo = &ERRBASE_CODES[0];
68 
69  while (errInfo->code != ERRBASE_NONE)
70  {
71  if (code == errInfo->code)
72  {
73  return errInfo->category;
74  }
75 
76  errInfo++;
77  }
78 
79  return "ERRBASE_UNKNOWN";
80 }
81 
82 const char* freerdp_get_error_base_name(UINT32 code)
83 {
84  const ERRINFO* errInfo = NULL;
85 
86  errInfo = &ERRBASE_CODES[0];
87 
88  while (errInfo->code != ERRBASE_NONE)
89  {
90  if (code == errInfo->code)
91  {
92  return errInfo->name;
93  }
94 
95  errInfo++;
96  }
97 
98  return "ERRBASE_UNKNOWN";
99 }