aix_facter_helper 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|