1use std::os::raw;
5
6#[repr(C)]
7pub struct byztime_ctx {
8 _unused: [u8; 0],
9}
10
11#[derive(Debug, Copy, Clone)]
12#[repr(C)]
13pub struct byztime_stamp {
14 pub seconds: i64,
15 pub nanoseconds: i64,
16}
17
18extern "C" {
19 pub fn byztime_stamp_normalize(stamp: *mut byztime_stamp) -> raw::c_int;
20 pub fn byztime_stamp_add(
21 sum: *mut byztime_stamp,
22 stamp1: *const byztime_stamp,
23 stamp2: *const byztime_stamp,
24 ) -> raw::c_int;
25 pub fn byztime_stamp_sub(
26 diff: *mut byztime_stamp,
27 stamp1: *const byztime_stamp,
28 stamp2: *const byztime_stamp,
29 ) -> raw::c_int;
30 pub fn byztime_stamp_scale(
31 prod: *mut byztime_stamp,
32 stamp: *const byztime_stamp,
33 ppb: i64,
34 ) -> raw::c_int;
35 pub fn byztime_stamp_halve(prod: *mut byztime_stamp, stamp: *const byztime_stamp);
36 pub fn byztime_stamp_cmp(
37 stamp1: *const byztime_stamp,
38 stamp2: *const byztime_stamp,
39 ) -> raw::c_int;
40 pub fn byztime_open_ro(pathname: *const raw::c_char) -> *mut byztime_ctx;
41 pub fn byztime_get_offset(
42 ctx: *mut byztime_ctx,
43 min: *mut byztime_stamp,
44 est: *mut byztime_stamp,
45 max: *mut byztime_stamp,
46 ) -> raw::c_int;
47 pub fn byztime_get_global_time(
48 ctx: *mut byztime_ctx,
49 min: *mut byztime_stamp,
50 est: *mut byztime_stamp,
51 max: *mut byztime_stamp,
52 ) -> raw::c_int;
53 pub fn byztime_set_drift(ctx: *mut byztime_ctx, drift_ppb: i64);
54 pub fn byztime_get_drift(ctx: *const byztime_ctx) -> i64;
55 pub fn byztime_slew(
56 ctx: *mut byztime_ctx,
57 min_rate_ppb: i64,
58 max_rate_ppb: i64,
59 maxerror: *const byztime_stamp,
60 ) -> raw::c_int;
61 pub fn byztime_step(ctx: *mut byztime_ctx) -> raw::c_int;
62 pub fn byztime_open_rw(pathname: *const raw::c_char) -> *mut byztime_ctx;
63 pub fn byztime_set_offset(
64 ctx: *mut byztime_ctx,
65 offset: *const byztime_stamp,
66 error: *const byztime_stamp,
67 as_of: *const byztime_stamp,
68 ) -> raw::c_int;
69 pub fn byztime_get_offset_quick(ctx: *const byztime_ctx, offset: *mut byztime_stamp);
70 pub fn byztime_get_offset_raw(
71 ctx: *const byztime_ctx,
72 offset: *mut byztime_stamp,
73 error: *mut byztime_stamp,
74 as_of: *mut byztime_stamp,
75 );
76 pub fn byztime_update_real_offset(ctx: *mut byztime_ctx) -> raw::c_int;
77 pub fn byztime_get_clock_era(era: *mut raw::c_uchar) -> raw::c_int;
78 pub fn byztime_get_local_time(local_time: *mut byztime_stamp) -> raw::c_int;
79 pub fn byztime_get_real_time(real_time: *mut byztime_stamp) -> raw::c_int;
80 pub fn byztime_close(ctx: *mut byztime_ctx) -> raw::c_int;
81 pub fn byztime_install_sigbus_handler(oact: *mut libc::sigaction) -> raw::c_int;
82 pub fn byztime_handle_sigbus(
83 signo: raw::c_int,
84 info: *mut libc::siginfo_t,
85 context: *mut raw::c_void,
86 );
87}