// timestamp tapset // Copyright (C) 2005-2006 Red Hat Inc. // Copyright (C) 2006 Intel Corporation. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General // Public License (GPL); either version 2, or (at your option) any // later version. /// /// Timestamp Functions /// /// Each timestamp function returns a value to indicate when /// the function is executed. /// Thus, these returned values can be used to indicate /// when an event occurs, provide an ordering for events, or compute /// the amount of time elapsed between to time stamps. /// %{ #include %} /// /// get_cycles:long() /// get_cycles /// /// Return the processor cycle counter value, or 0 if unavailable. /// /// function get_cycles:long () %{ /* pure */ cycles_t c = get_cycles(); THIS->__retvalue = (int64_t) c; %} /// /// gettimeofday_ns:long () /// gettimeofday_ns /// /// Return the number of nanoseconds since the UNIX epoch. /// /// function gettimeofday_ns:long () %{ /* pure */ /* NOTE: we can't use do_gettimeofday because we could be called from a * context where xtime_lock is already held. See bug #2525. */ THIS->__retvalue = _stp_gettimeofday_ns(); %} /// /// gettimeofday_us:long () /// gettimeofday_us /// /// Return the number of microseconds since the UNIX epoch. /// /// function gettimeofday_us:long () { return gettimeofday_ns() / 1000; } /// /// gettimeofday_ms:long () /// gettimeofday_ms /// /// Return the number of milliseconds since the UNIX epoch. /// /// function gettimeofday_ms:long () { return gettimeofday_ns() / 1000000; } /// /// gettimeofday_s:long () /// gettimeofday_s /// /// Return the number of seconds since the UNIX epoch. /// /// function gettimeofday_s:long () { return gettimeofday_ns() / 1000000000; } // likewise jiffies, monotonic_clock ... ///