1pub type __time64_t = ::core::ffi::c_longlong;
4pub type time_t = __time64_t;
5pub type mode_t = ::core::ffi::c_int;
6#[repr(C)]
7#[derive(Debug, Copy, Clone)]
8pub struct tm {
9 pub tm_sec: ::core::ffi::c_int,
10 pub tm_min: ::core::ffi::c_int,
11 pub tm_hour: ::core::ffi::c_int,
12 pub tm_mday: ::core::ffi::c_int,
13 pub tm_mon: ::core::ffi::c_int,
14 pub tm_year: ::core::ffi::c_int,
15 pub tm_wday: ::core::ffi::c_int,
16 pub tm_yday: ::core::ffi::c_int,
17 pub tm_isdst: ::core::ffi::c_int,
18}
19#[test]
20fn bindgen_test_layout_tm() {
21 const UNINIT: ::core::mem::MaybeUninit<tm> = ::core::mem::MaybeUninit::uninit();
22 let ptr = UNINIT.as_ptr();
23 assert_eq!(
24 ::core::mem::size_of::<tm>(),
25 36usize,
26 concat!("Size of: ", stringify!(tm))
27 );
28 assert_eq!(
29 ::core::mem::align_of::<tm>(),
30 4usize,
31 concat!("Alignment of ", stringify!(tm))
32 );
33 assert_eq!(
34 unsafe { ::core::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize },
35 0usize,
36 concat!(
37 "Offset of field: ",
38 stringify!(tm),
39 "::",
40 stringify!(tm_sec)
41 )
42 );
43 assert_eq!(
44 unsafe { ::core::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize },
45 4usize,
46 concat!(
47 "Offset of field: ",
48 stringify!(tm),
49 "::",
50 stringify!(tm_min)
51 )
52 );
53 assert_eq!(
54 unsafe { ::core::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize },
55 8usize,
56 concat!(
57 "Offset of field: ",
58 stringify!(tm),
59 "::",
60 stringify!(tm_hour)
61 )
62 );
63 assert_eq!(
64 unsafe { ::core::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize },
65 12usize,
66 concat!(
67 "Offset of field: ",
68 stringify!(tm),
69 "::",
70 stringify!(tm_mday)
71 )
72 );
73 assert_eq!(
74 unsafe { ::core::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize },
75 16usize,
76 concat!(
77 "Offset of field: ",
78 stringify!(tm),
79 "::",
80 stringify!(tm_mon)
81 )
82 );
83 assert_eq!(
84 unsafe { ::core::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize },
85 20usize,
86 concat!(
87 "Offset of field: ",
88 stringify!(tm),
89 "::",
90 stringify!(tm_year)
91 )
92 );
93 assert_eq!(
94 unsafe { ::core::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize },
95 24usize,
96 concat!(
97 "Offset of field: ",
98 stringify!(tm),
99 "::",
100 stringify!(tm_wday)
101 )
102 );
103 assert_eq!(
104 unsafe { ::core::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize },
105 28usize,
106 concat!(
107 "Offset of field: ",
108 stringify!(tm),
109 "::",
110 stringify!(tm_yday)
111 )
112 );
113 assert_eq!(
114 unsafe { ::core::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize },
115 32usize,
116 concat!(
117 "Offset of field: ",
118 stringify!(tm),
119 "::",
120 stringify!(tm_isdst)
121 )
122 );
123}
124#[repr(C)]
125#[derive(Debug, Copy, Clone)]
126pub struct _iobuf {
127 pub _Placeholder: *mut ::core::ffi::c_void,
128}
129#[test]
130fn bindgen_test_layout__iobuf() {
131 const UNINIT: ::core::mem::MaybeUninit<_iobuf> = ::core::mem::MaybeUninit::uninit();
132 let ptr = UNINIT.as_ptr();
133 assert_eq!(
134 ::core::mem::size_of::<_iobuf>(),
135 8usize,
136 concat!("Size of: ", stringify!(_iobuf))
137 );
138 assert_eq!(
139 ::core::mem::align_of::<_iobuf>(),
140 8usize,
141 concat!("Alignment of ", stringify!(_iobuf))
142 );
143 assert_eq!(
144 unsafe { ::core::ptr::addr_of!((*ptr)._Placeholder) as usize - ptr as usize },
145 0usize,
146 concat!(
147 "Offset of field: ",
148 stringify!(_iobuf),
149 "::",
150 stringify!(_Placeholder)
151 )
152 );
153}
154pub type FILE = _iobuf;
155#[repr(C)]
156#[derive(Debug, Copy, Clone)]
157pub struct rrd_t {
158 _unused: [u8; 0],
159}
160extern "C" {
161 pub fn rrd_set_to_DNAN() -> f64;
162}
163extern "C" {
164 pub fn rrd_set_to_DINF() -> f64;
165}
166pub type rrd_value_t = f64;
167#[repr(C)]
168#[derive(Debug, Copy, Clone)]
169pub struct rrd_file_t {
170 pub header_len: usize,
171 pub file_len: usize,
172 pub pos: usize,
173 pub pvt: *mut ::core::ffi::c_void,
174 pub rrd: *mut rrd_t,
175}
176#[test]
177fn bindgen_test_layout_rrd_file_t() {
178 const UNINIT: ::core::mem::MaybeUninit<rrd_file_t> = ::core::mem::MaybeUninit::uninit();
179 let ptr = UNINIT.as_ptr();
180 assert_eq!(
181 ::core::mem::size_of::<rrd_file_t>(),
182 40usize,
183 concat!("Size of: ", stringify!(rrd_file_t))
184 );
185 assert_eq!(
186 ::core::mem::align_of::<rrd_file_t>(),
187 8usize,
188 concat!("Alignment of ", stringify!(rrd_file_t))
189 );
190 assert_eq!(
191 unsafe { ::core::ptr::addr_of!((*ptr).header_len) as usize - ptr as usize },
192 0usize,
193 concat!(
194 "Offset of field: ",
195 stringify!(rrd_file_t),
196 "::",
197 stringify!(header_len)
198 )
199 );
200 assert_eq!(
201 unsafe { ::core::ptr::addr_of!((*ptr).file_len) as usize - ptr as usize },
202 8usize,
203 concat!(
204 "Offset of field: ",
205 stringify!(rrd_file_t),
206 "::",
207 stringify!(file_len)
208 )
209 );
210 assert_eq!(
211 unsafe { ::core::ptr::addr_of!((*ptr).pos) as usize - ptr as usize },
212 16usize,
213 concat!(
214 "Offset of field: ",
215 stringify!(rrd_file_t),
216 "::",
217 stringify!(pos)
218 )
219 );
220 assert_eq!(
221 unsafe { ::core::ptr::addr_of!((*ptr).pvt) as usize - ptr as usize },
222 24usize,
223 concat!(
224 "Offset of field: ",
225 stringify!(rrd_file_t),
226 "::",
227 stringify!(pvt)
228 )
229 );
230 assert_eq!(
231 unsafe { ::core::ptr::addr_of!((*ptr).rrd) as usize - ptr as usize },
232 32usize,
233 concat!(
234 "Offset of field: ",
235 stringify!(rrd_file_t),
236 "::",
237 stringify!(rrd)
238 )
239 );
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct rrd_simple_file_t {
244 pub fd: ::core::ffi::c_int,
245}
246#[test]
247fn bindgen_test_layout_rrd_simple_file_t() {
248 const UNINIT: ::core::mem::MaybeUninit<rrd_simple_file_t> = ::core::mem::MaybeUninit::uninit();
249 let ptr = UNINIT.as_ptr();
250 assert_eq!(
251 ::core::mem::size_of::<rrd_simple_file_t>(),
252 4usize,
253 concat!("Size of: ", stringify!(rrd_simple_file_t))
254 );
255 assert_eq!(
256 ::core::mem::align_of::<rrd_simple_file_t>(),
257 4usize,
258 concat!("Alignment of ", stringify!(rrd_simple_file_t))
259 );
260 assert_eq!(
261 unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize },
262 0usize,
263 concat!(
264 "Offset of field: ",
265 stringify!(rrd_simple_file_t),
266 "::",
267 stringify!(fd)
268 )
269 );
270}
271#[repr(C)]
272#[derive(Debug, Copy, Clone)]
273pub struct rrd_blob_t {
274 pub size: ::core::ffi::c_ulong,
275 pub ptr: *mut ::core::ffi::c_uchar,
276}
277#[test]
278fn bindgen_test_layout_rrd_blob_t() {
279 const UNINIT: ::core::mem::MaybeUninit<rrd_blob_t> = ::core::mem::MaybeUninit::uninit();
280 let ptr = UNINIT.as_ptr();
281 assert_eq!(
282 ::core::mem::size_of::<rrd_blob_t>(),
283 16usize,
284 concat!("Size of: ", stringify!(rrd_blob_t))
285 );
286 assert_eq!(
287 ::core::mem::align_of::<rrd_blob_t>(),
288 8usize,
289 concat!("Alignment of ", stringify!(rrd_blob_t))
290 );
291 assert_eq!(
292 unsafe { ::core::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
293 0usize,
294 concat!(
295 "Offset of field: ",
296 stringify!(rrd_blob_t),
297 "::",
298 stringify!(size)
299 )
300 );
301 assert_eq!(
302 unsafe { ::core::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
303 8usize,
304 concat!(
305 "Offset of field: ",
306 stringify!(rrd_blob_t),
307 "::",
308 stringify!(ptr)
309 )
310 );
311}
312pub const rrd_info_type_RD_I_VAL: rrd_info_type = 0;
313pub const rrd_info_type_RD_I_CNT: rrd_info_type = 1;
314pub const rrd_info_type_RD_I_STR: rrd_info_type = 2;
315pub const rrd_info_type_RD_I_INT: rrd_info_type = 3;
316pub const rrd_info_type_RD_I_BLO: rrd_info_type = 4;
317pub type rrd_info_type = ::core::ffi::c_int;
318pub use self::rrd_info_type as rrd_info_type_t;
319#[repr(C)]
320#[derive(Copy, Clone)]
321pub union rrd_infoval {
322 pub u_cnt: ::core::ffi::c_ulong,
323 pub u_val: rrd_value_t,
324 pub u_str: *mut ::core::ffi::c_char,
325 pub u_int: ::core::ffi::c_int,
326 pub u_blo: rrd_blob_t,
327}
328#[test]
329fn bindgen_test_layout_rrd_infoval() {
330 const UNINIT: ::core::mem::MaybeUninit<rrd_infoval> = ::core::mem::MaybeUninit::uninit();
331 let ptr = UNINIT.as_ptr();
332 assert_eq!(
333 ::core::mem::size_of::<rrd_infoval>(),
334 16usize,
335 concat!("Size of: ", stringify!(rrd_infoval))
336 );
337 assert_eq!(
338 ::core::mem::align_of::<rrd_infoval>(),
339 8usize,
340 concat!("Alignment of ", stringify!(rrd_infoval))
341 );
342 assert_eq!(
343 unsafe { ::core::ptr::addr_of!((*ptr).u_cnt) as usize - ptr as usize },
344 0usize,
345 concat!(
346 "Offset of field: ",
347 stringify!(rrd_infoval),
348 "::",
349 stringify!(u_cnt)
350 )
351 );
352 assert_eq!(
353 unsafe { ::core::ptr::addr_of!((*ptr).u_val) as usize - ptr as usize },
354 0usize,
355 concat!(
356 "Offset of field: ",
357 stringify!(rrd_infoval),
358 "::",
359 stringify!(u_val)
360 )
361 );
362 assert_eq!(
363 unsafe { ::core::ptr::addr_of!((*ptr).u_str) as usize - ptr as usize },
364 0usize,
365 concat!(
366 "Offset of field: ",
367 stringify!(rrd_infoval),
368 "::",
369 stringify!(u_str)
370 )
371 );
372 assert_eq!(
373 unsafe { ::core::ptr::addr_of!((*ptr).u_int) as usize - ptr as usize },
374 0usize,
375 concat!(
376 "Offset of field: ",
377 stringify!(rrd_infoval),
378 "::",
379 stringify!(u_int)
380 )
381 );
382 assert_eq!(
383 unsafe { ::core::ptr::addr_of!((*ptr).u_blo) as usize - ptr as usize },
384 0usize,
385 concat!(
386 "Offset of field: ",
387 stringify!(rrd_infoval),
388 "::",
389 stringify!(u_blo)
390 )
391 );
392}
393pub type rrd_infoval_t = rrd_infoval;
394#[repr(C)]
395#[derive(Copy, Clone)]
396pub struct rrd_info_t {
397 pub key: *mut ::core::ffi::c_char,
398 pub type_: rrd_info_type_t,
399 pub value: rrd_infoval_t,
400 pub next: *mut rrd_info_t,
401}
402#[test]
403fn bindgen_test_layout_rrd_info_t() {
404 const UNINIT: ::core::mem::MaybeUninit<rrd_info_t> = ::core::mem::MaybeUninit::uninit();
405 let ptr = UNINIT.as_ptr();
406 assert_eq!(
407 ::core::mem::size_of::<rrd_info_t>(),
408 40usize,
409 concat!("Size of: ", stringify!(rrd_info_t))
410 );
411 assert_eq!(
412 ::core::mem::align_of::<rrd_info_t>(),
413 8usize,
414 concat!("Alignment of ", stringify!(rrd_info_t))
415 );
416 assert_eq!(
417 unsafe { ::core::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
418 0usize,
419 concat!(
420 "Offset of field: ",
421 stringify!(rrd_info_t),
422 "::",
423 stringify!(key)
424 )
425 );
426 assert_eq!(
427 unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
428 8usize,
429 concat!(
430 "Offset of field: ",
431 stringify!(rrd_info_t),
432 "::",
433 stringify!(type_)
434 )
435 );
436 assert_eq!(
437 unsafe { ::core::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
438 16usize,
439 concat!(
440 "Offset of field: ",
441 stringify!(rrd_info_t),
442 "::",
443 stringify!(value)
444 )
445 );
446 assert_eq!(
447 unsafe { ::core::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
448 32usize,
449 concat!(
450 "Offset of field: ",
451 stringify!(rrd_info_t),
452 "::",
453 stringify!(next)
454 )
455 );
456}
457pub type rrd_output_callback_t = ::core::option::Option<
458 unsafe extern "C" fn(
459 arg1: *const ::core::ffi::c_void,
460 arg2: usize,
461 arg3: *mut ::core::ffi::c_void,
462 ) -> usize,
463>;
464extern "C" {
465 pub fn rrd_create(
466 arg1: ::core::ffi::c_int,
467 arg2: *mut *mut ::core::ffi::c_char,
468 ) -> ::core::ffi::c_int;
469}
470extern "C" {
471 pub fn rrd_info(
472 arg1: ::core::ffi::c_int,
473 arg2: *mut *mut ::core::ffi::c_char,
474 ) -> *mut rrd_info_t;
475}
476extern "C" {
477 pub fn rrd_info_push(
478 arg1: *mut rrd_info_t,
479 arg2: *mut ::core::ffi::c_char,
480 arg3: rrd_info_type_t,
481 arg4: rrd_infoval_t,
482 ) -> *mut rrd_info_t;
483}
484extern "C" {
485 pub fn rrd_info_print(data: *mut rrd_info_t);
486}
487extern "C" {
488 pub fn rrd_info_free(arg1: *mut rrd_info_t);
489}
490extern "C" {
491 pub fn rrd_list(
492 arg1: ::core::ffi::c_int,
493 arg2: *mut *mut ::core::ffi::c_char,
494 ) -> *mut ::core::ffi::c_char;
495}
496extern "C" {
497 pub fn rrd_list_r(
498 arg1: ::core::ffi::c_int,
499 dirname: *mut ::core::ffi::c_char,
500 ) -> *mut ::core::ffi::c_char;
501}
502extern "C" {
503 pub fn rrd_update(
504 arg1: ::core::ffi::c_int,
505 arg2: *mut *mut ::core::ffi::c_char,
506 ) -> ::core::ffi::c_int;
507}
508extern "C" {
509 pub fn rrd_update_v(
510 arg1: ::core::ffi::c_int,
511 arg2: *mut *mut ::core::ffi::c_char,
512 ) -> *mut rrd_info_t;
513}
514extern "C" {
515 pub fn rrd_graph(
516 argc: ::core::ffi::c_int,
517 argv: *mut *mut ::core::ffi::c_char,
518 prdata: *mut *mut *mut ::core::ffi::c_char,
519 xsize: *mut ::core::ffi::c_int,
520 ysize: *mut ::core::ffi::c_int,
521 stream: *mut FILE,
522 ymin: *mut f64,
523 ymax: *mut f64
524 ) -> ::core::ffi::c_int;
525}
526extern "C" {
527 pub fn rrd_graph_v(
528 arg1: ::core::ffi::c_int,
529 arg2: *mut *mut ::core::ffi::c_char,
530 ) -> *mut rrd_info_t;
531}
532extern "C" {
533 pub fn rrd_fetch(
534 arg1: ::core::ffi::c_int,
535 arg2: *mut *mut ::core::ffi::c_char,
536 arg3: *mut time_t,
537 arg4: *mut time_t,
538 arg5: *mut ::core::ffi::c_ulong,
539 arg6: *mut ::core::ffi::c_ulong,
540 arg7: *mut *mut *mut ::core::ffi::c_char,
541 arg8: *mut *mut rrd_value_t,
542 ) -> ::core::ffi::c_int;
543}
544extern "C" {
545 pub fn rrd_restore(
546 arg1: ::core::ffi::c_int,
547 arg2: *mut *mut ::core::ffi::c_char,
548 ) -> ::core::ffi::c_int;
549}
550extern "C" {
551 pub fn rrd_dump(
552 arg1: ::core::ffi::c_int,
553 arg2: *mut *mut ::core::ffi::c_char,
554 ) -> ::core::ffi::c_int;
555}
556extern "C" {
557 pub fn rrd_tune(
558 arg1: ::core::ffi::c_int,
559 arg2: *mut *mut ::core::ffi::c_char,
560 ) -> ::core::ffi::c_int;
561}
562extern "C" {
563 pub fn rrd_last(arg1: ::core::ffi::c_int, arg2: *mut *mut ::core::ffi::c_char) -> time_t;
564}
565extern "C" {
566 pub fn rrd_lastupdate(
567 argc: ::core::ffi::c_int,
568 argv: *mut *mut ::core::ffi::c_char,
569 ) -> ::core::ffi::c_int;
570}
571extern "C" {
572 pub fn rrd_first(arg1: ::core::ffi::c_int, arg2: *mut *mut ::core::ffi::c_char) -> time_t;
573}
574extern "C" {
575 pub fn rrd_resize(
576 arg1: ::core::ffi::c_int,
577 arg2: *mut *mut ::core::ffi::c_char,
578 ) -> ::core::ffi::c_int;
579}
580extern "C" {
581 pub fn rrd_strversion() -> *mut ::core::ffi::c_char;
582}
583extern "C" {
584 pub fn rrd_version() -> f64;
585}
586extern "C" {
587 pub fn rrd_xport(
588 arg1: ::core::ffi::c_int,
589 arg2: *mut *mut ::core::ffi::c_char,
590 arg3: *mut ::core::ffi::c_int,
591 arg4: *mut time_t,
592 arg5: *mut time_t,
593 arg6: *mut ::core::ffi::c_ulong,
594 arg7: *mut ::core::ffi::c_ulong,
595 arg8: *mut *mut *mut ::core::ffi::c_char,
596 arg9: *mut *mut rrd_value_t,
597 ) -> ::core::ffi::c_int;
598}
599extern "C" {
600 pub fn rrd_flushcached(
601 argc: ::core::ffi::c_int,
602 argv: *mut *mut ::core::ffi::c_char,
603 ) -> ::core::ffi::c_int;
604}
605extern "C" {
606 pub fn rrd_freemem(mem: *mut ::core::ffi::c_void);
607}
608extern "C" {
609 pub fn rrd_create_r(
610 filename: *const ::core::ffi::c_char,
611 pdp_step: ::core::ffi::c_ulong,
612 last_up: time_t,
613 argc: ::core::ffi::c_int,
614 argv: *mut *const ::core::ffi::c_char,
615 ) -> ::core::ffi::c_int;
616}
617extern "C" {
618 pub fn rrd_create_r2(
619 filename: *const ::core::ffi::c_char,
620 pdp_step: ::core::ffi::c_ulong,
621 last_up: time_t,
622 no_overwrite: ::core::ffi::c_int,
623 sources: *mut *const ::core::ffi::c_char,
624 _template: *const ::core::ffi::c_char,
625 argc: ::core::ffi::c_int,
626 argv: *mut *const ::core::ffi::c_char,
627 ) -> ::core::ffi::c_int;
628}
629extern "C" {
630 pub fn rrd_info_r(filename: *const ::core::ffi::c_char) -> *mut rrd_info_t;
631}
632extern "C" {
633 pub fn rrd_update_r(
634 filename: *const ::core::ffi::c_char,
635 _template: *const ::core::ffi::c_char,
636 argc: ::core::ffi::c_int,
637 argv: *mut *const ::core::ffi::c_char,
638 ) -> ::core::ffi::c_int;
639}
640extern "C" {
641 pub fn rrd_update_v_r(
642 filename: *const ::core::ffi::c_char,
643 _template: *const ::core::ffi::c_char,
644 argc: ::core::ffi::c_int,
645 argv: *mut *const ::core::ffi::c_char,
646 pcdp_summary: *mut rrd_info_t,
647 ) -> ::core::ffi::c_int;
648}
649extern "C" {
650 pub fn rrd_updatex_r(
651 filename: *const ::core::ffi::c_char,
652 _template: *const ::core::ffi::c_char,
653 extra_flags: ::core::ffi::c_int,
654 argc: ::core::ffi::c_int,
655 argv: *mut *const ::core::ffi::c_char,
656 ) -> ::core::ffi::c_int;
657}
658extern "C" {
659 pub fn rrd_updatex_v_r(
660 filename: *const ::core::ffi::c_char,
661 _template: *const ::core::ffi::c_char,
662 extra_flags: ::core::ffi::c_int,
663 argc: ::core::ffi::c_int,
664 argv: *mut *const ::core::ffi::c_char,
665 pcdp_summary: *mut rrd_info_t,
666 ) -> ::core::ffi::c_int;
667}
668extern "C" {
669 pub fn rrd_fetch_r(
670 filename: *const ::core::ffi::c_char,
671 cf: *const ::core::ffi::c_char,
672 start: *mut time_t,
673 end: *mut time_t,
674 step: *mut ::core::ffi::c_ulong,
675 ds_cnt: *mut ::core::ffi::c_ulong,
676 ds_namv: *mut *mut *mut ::core::ffi::c_char,
677 data: *mut *mut rrd_value_t,
678 ) -> ::core::ffi::c_int;
679}
680extern "C" {
681 pub fn rrd_tune_r(
682 filename: *const ::core::ffi::c_char,
683 argc: ::core::ffi::c_int,
684 argv: *mut *const ::core::ffi::c_char,
685 ) -> ::core::ffi::c_int;
686}
687extern "C" {
688 pub fn rrd_dump_opt_r(
689 filename: *const ::core::ffi::c_char,
690 outname: *mut ::core::ffi::c_char,
691 opt_noheader: ::core::ffi::c_int,
692 ) -> ::core::ffi::c_int;
693}
694extern "C" {
695 pub fn rrd_dump_r(
696 filename: *const ::core::ffi::c_char,
697 outname: *mut ::core::ffi::c_char,
698 ) -> ::core::ffi::c_int;
699}
700extern "C" {
701 pub fn rrd_last_r(filename: *const ::core::ffi::c_char) -> time_t;
702}
703extern "C" {
704 pub fn rrd_lastupdate_r(
705 filename: *const ::core::ffi::c_char,
706 ret_last_update: *mut time_t,
707 ret_ds_count: *mut ::core::ffi::c_ulong,
708 ret_ds_names: *mut *mut *mut ::core::ffi::c_char,
709 ret_last_ds: *mut *mut *mut ::core::ffi::c_char,
710 ) -> ::core::ffi::c_int;
711}
712extern "C" {
713 pub fn rrd_first_r(
714 filename: *const ::core::ffi::c_char,
715 rraindex: ::core::ffi::c_int,
716 ) -> time_t;
717}
718extern "C" {
719 pub fn rrd_dump_cb_r(
720 filename: *const ::core::ffi::c_char,
721 opt_header: ::core::ffi::c_int,
722 cb: rrd_output_callback_t,
723 user: *mut ::core::ffi::c_void,
724 ) -> ::core::ffi::c_int;
725}
726pub const rrd_timetype_t_ABSOLUTE_TIME: rrd_timetype_t = 0;
727pub const rrd_timetype_t_RELATIVE_TO_START_TIME: rrd_timetype_t = 1;
728pub const rrd_timetype_t_RELATIVE_TO_END_TIME: rrd_timetype_t = 2;
729pub const rrd_timetype_t_RELATIVE_TO_EPOCH: rrd_timetype_t = 3;
730pub type rrd_timetype_t = ::core::ffi::c_int;
731#[repr(C)]
732#[derive(Debug, Copy, Clone)]
733pub struct rrd_time_value {
734 pub type_: rrd_timetype_t,
735 pub offset: ::core::ffi::c_long,
736 pub tm: tm,
737}
738#[test]
739fn bindgen_test_layout_rrd_time_value() {
740 const UNINIT: ::core::mem::MaybeUninit<rrd_time_value> = ::core::mem::MaybeUninit::uninit();
741 let ptr = UNINIT.as_ptr();
742 assert_eq!(
743 ::core::mem::size_of::<rrd_time_value>(),
744 44usize,
745 concat!("Size of: ", stringify!(rrd_time_value))
746 );
747 assert_eq!(
748 ::core::mem::align_of::<rrd_time_value>(),
749 4usize,
750 concat!("Alignment of ", stringify!(rrd_time_value))
751 );
752 assert_eq!(
753 unsafe { ::core::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
754 0usize,
755 concat!(
756 "Offset of field: ",
757 stringify!(rrd_time_value),
758 "::",
759 stringify!(type_)
760 )
761 );
762 assert_eq!(
763 unsafe { ::core::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
764 4usize,
765 concat!(
766 "Offset of field: ",
767 stringify!(rrd_time_value),
768 "::",
769 stringify!(offset)
770 )
771 );
772 assert_eq!(
773 unsafe { ::core::ptr::addr_of!((*ptr).tm) as usize - ptr as usize },
774 8usize,
775 concat!(
776 "Offset of field: ",
777 stringify!(rrd_time_value),
778 "::",
779 stringify!(tm)
780 )
781 );
782}
783pub type rrd_time_value_t = rrd_time_value;
784extern "C" {
785 pub fn rrd_parsetime(
786 spec: *const ::core::ffi::c_char,
787 ptv: *mut rrd_time_value_t,
788 ) -> *mut ::core::ffi::c_char;
789}
790#[repr(C)]
791#[derive(Debug, Copy, Clone)]
792pub struct rrd_context {
793 pub lib_errstr: [::core::ffi::c_char; 256usize],
794 pub rrd_error: [::core::ffi::c_char; 4096usize],
795}
796#[test]
797fn bindgen_test_layout_rrd_context() {
798 const UNINIT: ::core::mem::MaybeUninit<rrd_context> = ::core::mem::MaybeUninit::uninit();
799 let ptr = UNINIT.as_ptr();
800 assert_eq!(
801 ::core::mem::size_of::<rrd_context>(),
802 4352usize,
803 concat!("Size of: ", stringify!(rrd_context))
804 );
805 assert_eq!(
806 ::core::mem::align_of::<rrd_context>(),
807 1usize,
808 concat!("Alignment of ", stringify!(rrd_context))
809 );
810 assert_eq!(
811 unsafe { ::core::ptr::addr_of!((*ptr).lib_errstr) as usize - ptr as usize },
812 0usize,
813 concat!(
814 "Offset of field: ",
815 stringify!(rrd_context),
816 "::",
817 stringify!(lib_errstr)
818 )
819 );
820 assert_eq!(
821 unsafe { ::core::ptr::addr_of!((*ptr).rrd_error) as usize - ptr as usize },
822 256usize,
823 concat!(
824 "Offset of field: ",
825 stringify!(rrd_context),
826 "::",
827 stringify!(rrd_error)
828 )
829 );
830}
831pub type rrd_context_t = rrd_context;
832extern "C" {
833 pub fn rrd_get_context() -> *mut rrd_context_t;
834}
835extern "C" {
836 pub fn rrd_force_new_context() -> *mut rrd_context_t;
837}
838extern "C" {
839 pub fn rrd_proc_start_end(
840 arg1: *mut rrd_time_value_t,
841 arg2: *mut rrd_time_value_t,
842 arg3: *mut time_t,
843 arg4: *mut time_t,
844 ) -> ::core::ffi::c_int;
845}
846extern "C" {
847 pub fn rrd_set_error(arg1: *mut ::core::ffi::c_char, ...);
848}
849extern "C" {
850 pub fn rrd_clear_error();
851}
852extern "C" {
853 pub fn rrd_test_error() -> ::core::ffi::c_int;
854}
855extern "C" {
856 pub fn rrd_get_error() -> *mut ::core::ffi::c_char;
857}
858extern "C" {
859 pub fn rrd_strerror(err: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
860}
861extern "C" {
862 #[doc = " MULTITHREADED HELPER FUNCTIONS"]
863 pub fn rrd_new_context() -> *mut rrd_context_t;
864}
865extern "C" {
866 pub fn rrd_free_context(buf: *mut rrd_context_t);
867}
868extern "C" {
869 #[doc = " UTILITY FUNCTIONS"]
870 pub fn rrd_random() -> ::core::ffi::c_long;
871}
872extern "C" {
873 pub fn rrd_add_ptr_chunk(
874 dest: *mut *mut *mut ::core::ffi::c_void,
875 dest_size: *mut usize,
876 src: *mut ::core::ffi::c_void,
877 alloc: *mut usize,
878 chunk: usize,
879 ) -> ::core::ffi::c_int;
880}
881extern "C" {
882 pub fn rrd_add_ptr(
883 dest: *mut *mut *mut ::core::ffi::c_void,
884 dest_size: *mut usize,
885 src: *mut ::core::ffi::c_void,
886 ) -> ::core::ffi::c_int;
887}
888extern "C" {
889 pub fn rrd_add_strdup(
890 dest: *mut *mut *mut ::core::ffi::c_char,
891 dest_size: *mut usize,
892 src: *mut ::core::ffi::c_char,
893 ) -> ::core::ffi::c_int;
894}
895extern "C" {
896 pub fn rrd_add_strdup_chunk(
897 dest: *mut *mut *mut ::core::ffi::c_char,
898 dest_size: *mut usize,
899 src: *mut ::core::ffi::c_char,
900 alloc: *mut usize,
901 chunk: usize,
902 ) -> ::core::ffi::c_int;
903}
904extern "C" {
905 pub fn rrd_free_ptrs(src: *mut *mut *mut ::core::ffi::c_void, cnt: *mut usize);
906}
907extern "C" {
908 pub fn rrd_mkdir_p(pathname: *const ::core::ffi::c_char, mode: mode_t) -> ::core::ffi::c_int;
909}
910extern "C" {
911 pub fn rrd_scaled_duration(
912 token: *const ::core::ffi::c_char,
913 divisor: ::core::ffi::c_ulong,
914 valuep: *mut ::core::ffi::c_ulong,
915 ) -> *const ::core::ffi::c_char;
916}
917extern "C" {
918 pub fn rrd_thread_init();
919}