ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/error.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/error.c (file contents):
Revision 1.9 by tdb, Wed Apr 7 21:47:50 2004 UTC vs.
Revision 1.17 by tdb, Sat Sep 24 13:29:22 2005 UTC

# Line 26 | Line 26
26   #endif
27  
28   #include <stdlib.h>
29 + #include <string.h>
30 + #include <errno.h>
31  
32   #include "statgrab.h"
33 + #include "tools.h"
34  
35   static sg_error error = SG_ERROR_NONE;
36   #define ERROR_ARG_MAX 256
37   static char error_arg[ERROR_ARG_MAX];
38 + static int errno_value = 0;
39  
40   void sg_set_error(sg_error code, const char *arg) {
41 +        errno_value = 0;
42          error = code;
43          if (arg != NULL) {
44 <                strlcpy(error_arg, arg, sizeof error_arg);
44 >                sg_strlcpy(error_arg, arg, sizeof error_arg);
45          }
46          else {
47                  /* FIXME is this the best idea? */
# Line 44 | Line 49 | void sg_set_error(sg_error code, const char *arg) {
49          }
50   }
51  
52 + void sg_set_error_with_errno(sg_error code, const char *arg) {
53 +        sg_set_error(code, arg);
54 +        errno_value = errno;
55 + }
56 +
57   sg_error sg_get_error() {
58          return error;
59   }
# Line 52 | Line 62 | const char *sg_get_error_arg() {
62          return error_arg;
63   }
64  
65 + int sg_get_error_errno() {
66 +        return errno_value;
67 + }
68 +
69   const char *sg_str_error(sg_error code) {
70          switch (code) {
71          case SG_ERROR_NONE:
# Line 70 | Line 84 | const char *sg_str_error(sg_error code) {
84                  return "getmntinfo failed";
85          case SG_ERROR_GETPAGESIZE:
86                  return "getpagesize failed";
87 +        case SG_ERROR_HOST:
88 +                return "gather host information faile";
89          case SG_ERROR_KSTAT_DATA_LOOKUP:
90                  return "kstat_data_lookup failed";
91          case SG_ERROR_KSTAT_LOOKUP:
# Line 114 | Line 130 | const char *sg_str_error(sg_error code) {
130                  return "unsupported function";
131          case SG_ERROR_XSW_VER_MISMATCH:
132                  return "XSW version mismatch";
133 +        case SG_ERROR_PSTAT:
134 +                return "pstat failed";
135 +        case SG_ERROR_PDHOPEN:
136 +                return "PDH open failed";
137 +        case SG_ERROR_PDHCOLLECT:
138 +                return "PDH snapshot failed";
139 +        case SG_ERROR_PDHADD:
140 +                return "PDH add counter failed";
141 +        case SG_ERROR_PDHREAD:
142 +                return "PDH read counter failed";
143 +        case SG_ERROR_DEVICES:
144 +                return "failed to get device list";
145 +        case SG_ERROR_PERMISSION:
146 +                return "access violation";
147 +        case SG_ERROR_DISKINFO:
148 +                return "disk function failed";
149 +        case SG_ERROR_MEMSTATUS:
150 +                return "memory status failed";
151          }
152          return "unknown error";
153   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines