-
Notifications
You must be signed in to change notification settings - Fork 32
/
c.go
63 lines (61 loc) · 1.51 KB
/
c.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// +build go1.5,cgo
package plugin // import "collectd.org/plugin"
// #cgo CPPFLAGS: -DHAVE_CONFIG_H
// #cgo LDFLAGS: -ldl
// #include "plugin.h"
// #include <stdlib.h>
// #include <dlfcn.h>
//
// void value_list_add (value_list_t *vl, value_t v) {
// value_t *tmp = realloc (vl->values, sizeof(v) * (vl->values_len + 1));
// if (tmp == NULL) {
// errno = ENOMEM;
// return;
// }
// vl->values = tmp;
// vl->values[vl->values_len] = v;
// vl->values_len++;
// }
//
// data_source_t *ds_dsrc(data_set_t const *ds, size_t i) { return ds->ds + i; }
//
// void value_list_add_counter (value_list_t *vl, counter_t c) {
// value_list_add (vl, (value_t){
// .counter = c,
// });
// }
//
// void value_list_add_gauge (value_list_t *vl, gauge_t g) {
// value_list_add (vl, (value_t){
// .gauge = g,
// });
// }
//
// void value_list_add_derive (value_list_t *vl, derive_t d) {
// value_list_add (vl, (value_t){
// .derive = d,
// });
// }
//
// counter_t value_list_get_counter (value_list_t *vl, size_t i) {
// return vl->values[i].counter;
// }
//
// gauge_t value_list_get_gauge (value_list_t *vl, size_t i) {
// return vl->values[i].gauge;
// }
//
// derive_t value_list_get_derive (value_list_t *vl, size_t i) {
// return vl->values[i].derive;
// }
//
// static int *timeout_ptr;
// int timeout_wrapper(void) {
// if (timeout_ptr == NULL) {
// void *hnd = dlopen(NULL, RTLD_LAZY);
// timeout_ptr = dlsym(hnd, "timeout_g");
// dlclose(hnd);
// }
// return *timeout_ptr;
// }
import "C"