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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use std::os::raw;
#[repr(C)]
pub struct byztime_ctx {
_unused: [u8; 0],
}
#[derive(Debug, Copy, Clone)]
#[repr(C)]
pub struct byztime_stamp {
pub seconds: i64,
pub nanoseconds: i64,
}
extern "C" {
pub fn byztime_stamp_normalize(stamp: *mut byztime_stamp) -> raw::c_int;
pub fn byztime_stamp_add(
sum: *mut byztime_stamp,
stamp1: *const byztime_stamp,
stamp2: *const byztime_stamp,
) -> raw::c_int;
pub fn byztime_stamp_sub(
diff: *mut byztime_stamp,
stamp1: *const byztime_stamp,
stamp2: *const byztime_stamp,
) -> raw::c_int;
pub fn byztime_stamp_scale(
prod: *mut byztime_stamp,
stamp: *const byztime_stamp,
ppb: i64,
) -> raw::c_int;
pub fn byztime_stamp_halve(prod: *mut byztime_stamp, stamp: *const byztime_stamp);
pub fn byztime_stamp_cmp(
stamp1: *const byztime_stamp,
stamp2: *const byztime_stamp,
) -> raw::c_int;
pub fn byztime_open_ro(pathname: *const raw::c_char) -> *mut byztime_ctx;
pub fn byztime_get_offset(
ctx: *mut byztime_ctx,
min: *mut byztime_stamp,
est: *mut byztime_stamp,
max: *mut byztime_stamp,
) -> raw::c_int;
pub fn byztime_get_global_time(
ctx: *mut byztime_ctx,
min: *mut byztime_stamp,
est: *mut byztime_stamp,
max: *mut byztime_stamp,
) -> raw::c_int;
pub fn byztime_set_drift(ctx: *mut byztime_ctx, drift_ppb: i64);
pub fn byztime_get_drift(ctx: *const byztime_ctx) -> i64;
pub fn byztime_slew(
ctx: *mut byztime_ctx,
min_rate_ppb: i64,
max_rate_ppb: i64,
maxerror: *const byztime_stamp,
) -> raw::c_int;
pub fn byztime_step(ctx: *mut byztime_ctx) -> raw::c_int;
pub fn byztime_open_rw(pathname: *const raw::c_char) -> *mut byztime_ctx;
pub fn byztime_set_offset(
ctx: *mut byztime_ctx,
offset: *const byztime_stamp,
error: *const byztime_stamp,
as_of: *const byztime_stamp,
) -> raw::c_int;
pub fn byztime_get_offset_quick(ctx: *const byztime_ctx, offset: *mut byztime_stamp);
pub fn byztime_get_offset_raw(
ctx: *const byztime_ctx,
offset: *mut byztime_stamp,
error: *mut byztime_stamp,
as_of: *mut byztime_stamp,
);
pub fn byztime_update_real_offset(ctx: *mut byztime_ctx) -> raw::c_int;
pub fn byztime_get_clock_era(era: *mut raw::c_uchar) -> raw::c_int;
pub fn byztime_get_local_time(local_time: *mut byztime_stamp) -> raw::c_int;
pub fn byztime_get_real_time(real_time: *mut byztime_stamp) -> raw::c_int;
pub fn byztime_close(ctx: *mut byztime_ctx) -> raw::c_int;
pub fn byztime_install_sigbus_handler(oact: *mut libc::sigaction) -> raw::c_int;
pub fn byztime_handle_sigbus(
signo: raw::c_int,
info: *mut libc::siginfo_t,
context: *mut raw::c_void,
);
}