72 |
|
|
73 |
|
#ifdef SOLARIS |
74 |
|
if ((kc = kstat_open()) == NULL) { |
75 |
+ |
sg_set_error(SG_ERROR_KSTAT_OPEN, NULL); |
76 |
|
return NULL; |
77 |
|
} |
78 |
|
for (ksp = kc->kc_chain; ksp!=NULL; ksp = ksp->ks_next) { |
106 |
|
fclose(f); |
107 |
|
} else if ((f = fopen("/proc/stat", "r")) != NULL) { |
108 |
|
if ((line_ptr = sg_f_read_line(f, "page")) == NULL) { |
109 |
+ |
sg_set_error(SG_ERROR_PARSE, "page"); |
110 |
|
fclose(f); |
111 |
|
return NULL; |
112 |
|
} |
113 |
|
|
114 |
|
if (sscanf(line_ptr, "page %lld %lld", &page_stats.pages_pagein, &page_stats.pages_pageout) != 2) { |
115 |
+ |
sg_set_error(SG_ERROR_PARSE, "page"); |
116 |
|
fclose(f); |
117 |
|
return NULL; |
118 |
|
} |
119 |
|
|
120 |
|
fclose(f); |
121 |
|
} else { |
122 |
+ |
sg_set_error(SG_ERROR_OPEN, "/proc/stat"); |
123 |
|
return NULL; |
124 |
|
} |
125 |
|
#endif |
126 |
|
#if defined(FREEBSD) || defined(DFBSD) |
127 |
|
size = sizeof page_stats.pages_pagein; |
128 |
|
if (sysctlbyname("vm.stats.vm.v_swappgsin", &page_stats.pages_pagein, &size, NULL, 0) < 0){ |
129 |
+ |
sg_set_error(SG_ERROR_SYSCTLBYNAME, "vm.stats.vm.v_swappgsin"); |
130 |
|
return NULL; |
131 |
|
} |
132 |
|
size = sizeof page_stats.pages_pageout; |
133 |
|
if (sysctlbyname("vm.stats.vm.v_swappgsout", &page_stats.pages_pageout, &size, NULL, 0) < 0){ |
134 |
+ |
sg_set_error(SG_ERROR_SYSCTLBYNAME, "vm.stats.vm.v_swappgsout"); |
135 |
|
return NULL; |
136 |
|
} |
137 |
|
#endif |