aix_facter_helper 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/aix_facter_helper/aix_facter_helper.c +20 -3
- data/lib/aix_facter_helper/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efcbddb8673ad7ee82e89e58e6d26f830fcb15dcf641c0fa7dcc34241ea71fa0
|
4
|
+
data.tar.gz: 449ef8cb4d3068b3b2cf2f93fa054b41962d1ecb247cf8ac106bd9f8ffe7e466
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc8c74b87428acf04484947a346fb8224da7df42aff189c64b12d35a0528b4d6000ac6c92032609a68e663a043390364b60f31d48151a0af642fd65fe47353ca
|
7
|
+
data.tar.gz: 62ad7647042e0fe436f08ad96842312442be13ae249aa8bd28158cc4ad8e7a4eb48a69f90334db2d6d387ce05b6bd2d6ebf4e016c6483d852328c4c31f49e34a
|
@@ -1,16 +1,33 @@
|
|
1
1
|
#include <ruby.h>
|
2
|
+
#include <sys/kinfo.h>
|
2
3
|
|
3
4
|
VALUE AixFacterHelperModule = Qnil;
|
4
5
|
|
6
|
+
// Converts the given integer average into a load average.
|
7
|
+
static double to_load_avg(double average) {
|
8
|
+
// 65536 is the load average scale on AIX machines.
|
9
|
+
return average / 65536;
|
10
|
+
}
|
11
|
+
|
5
12
|
|
6
|
-
VALUE
|
7
|
-
|
13
|
+
VALUE aixFacterHelper_getLoadAverages(VALUE self) {
|
14
|
+
VALUE result = Qnil;
|
15
|
+
long long averages[3];
|
16
|
+
int buf_size = 3 * sizeof(long long);
|
17
|
+
int rc = getkerninfo(KINFO_GET_AVENRUN, (char*)averages, &buf_size, 0);
|
18
|
+
if (rc < 0) {
|
8
19
|
return result;
|
20
|
+
}
|
21
|
+
result = rb_ary_new();
|
22
|
+
rb_ary_push(result, DBL2NUM(to_load_avg(averages[0])));
|
23
|
+
rb_ary_push(result, DBL2NUM(to_load_avg(averages[1])));
|
24
|
+
rb_ary_push(result, DBL2NUM(to_load_avg(averages[2])));
|
25
|
+
return result;
|
9
26
|
}
|
10
27
|
|
11
28
|
|
12
29
|
void Init_aix_facter_helper() {
|
13
30
|
AixFacterHelperModule = rb_define_module("AixFacterHelper");
|
14
|
-
rb_define_module_function(AixFacterHelperModule, "
|
31
|
+
rb_define_module_function(AixFacterHelperModule, "getLoadAverages", aixFacterHelper_getLoadAverages, 0);
|
15
32
|
}
|
16
33
|
|