[][src]Function solana_rbpf::helpers::bpf_time_getns

pub fn bpf_time_getns(
    unused1: u64,
    unused2: u64,
    unused3: u64,
    unused4: u64,
    unused5: u64,
    _context: &mut HelperContext,
    _ro_regions: &[MemoryRegion],
    _rw_regions: &[MemoryRegion]
) -> Result<u64, Error>

Get monotonic time (since boot time) in nanoseconds. All arguments are unused.

Examples

use solana_rbpf::helpers;
use solana_rbpf::memory_region::MemoryRegion;

let regions = [MemoryRegion::default()];
let t = helpers::bpf_time_getns(0, 0, 0, 0, 0, &mut None, &regions, &regions).unwrap();
let d =  t / 10u64.pow(9)  / 60   / 60  / 24;
let h = (t / 10u64.pow(9)  / 60   / 60) % 24;
let m = (t / 10u64.pow(9)  / 60 ) % 60;
let s = (t / 10u64.pow(9)) % 60;
let ns = t % 10u64.pow(9);
println!("Uptime: {:#x} == {} days {}:{}:{}, {} ns", t, d, h, m, s, ns);