// timestamp tapset -- gettimeofday variants // Copyright (C) 2005-2009 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. function _gettimeofday_init:long() %{ THIS->__retvalue = _stp_init_time(); /* Kick off the Big Bang. */ %} probe begin(-0x8000000000000000) { if (_gettimeofday_init() != 0) error("couldn't initialize gettimeofday") } function _gettimeofday_kill() %{ _stp_kill_time(); /* Go to a beach. Drink a beer. */ %} probe end(0x7FFFFFFFFFFFFFFF), error(0x7FFFFFFFFFFFFFFF) { _gettimeofday_kill() } /** * sfunction gettimeofday_ns - Number of nanoseconds since UNIX epoch. * * 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(); if (THIS->__retvalue < 0) CONTEXT->last_error = "gettimeofday not initialized"; %} /** * sfunction gettimeofday_us - Number of microseconds since UNIX epoch. * * Return the number of microseconds since the UNIX epoch. */ function gettimeofday_us:long () { return gettimeofday_ns() / 1000; } /** * sfunction gettimeofday_ms - Number of milliseconds since UNIX epoch. * * Return the number of milliseconds since the UNIX epoch. */ function gettimeofday_ms:long () { return gettimeofday_ns() / 1000000; } /** * sfunction gettimeofday_s - Number of seconds since UNIX epoch. * * Return the number of seconds since the UNIX epoch. */ function gettimeofday_s:long () { return gettimeofday_ns() / 1000000000; } // likewise jiffies, monotonic_clock ...