+2005-08-11 Frank Ch. Eigler <fche@elastic.org>
+
+ * translate.cxx (emit_function): Add an extra { } around the
+ function body visitation.
+ * tapset/timestamp_functions.stp: New file.
+ * tapset/builtin_conversions.stp: Aggregated from [hex]string.
+ * tapset/builtin_logging.stp: Aggregated from log/warn/printk.
+
2005-08-11 Frank Ch. Eigler <fche@elastic.org>
* tapsets.cxx: Tweak hex/decimal printing for consistency.
--- /dev/null
+function _hexstring (num) %{
+ sprintf (THIS->__retvalue, "0x%llx", (long long) THIS->num);
+%}
+
+function hexstring (num) {
+ return "" . _hexstring (num + 0)
+}
+function _string (num) %{
+ sprintf (THIS->__retvalue, "%lld", (long long) THIS->num);
+%}
+
+function string (num) {
+ return "" . _string (num + 0)
+}
+++ /dev/null
-function _hexstring (num) %{
- sprintf (THIS->__retvalue, "%llx", (long long) THIS->num);
-%}
-
-function hexstring (num) {
- return "" . _hexstring (num + 0)
-}
+++ /dev/null
-function _log (msg) %{
- _stp_log (THIS->msg);
-%}
-
-function log (msg) {
- _log (msg . "")
-}
--- /dev/null
+function _log (msg) %{
+ _stp_log (THIS->msg);
+%}
+
+function log (msg) {
+ _log (msg . "")
+}
+function _printk (msg) %{
+ printk (KERN_INFO "%s\n", THIS->msg);
+%}
+
+function printk (msg) {
+ _printk (msg . "")
+}
+function _warn (msg) %{
+ _stp_warn (THIS->msg);
+%}
+
+function warn (msg) {
+ _warn (msg . "")
+}
+++ /dev/null
-function _printk (msg) %{
- printk (KERN_INFO "%s\n", THIS->msg);
-%}
-
-function printk (msg) {
- _printk (msg . "")
-}
+++ /dev/null
-function _string (num) %{
- sprintf (THIS->__retvalue, "%lld", (long long) THIS->num);
-%}
-
-function string (num) {
- return "" . _string (num + 0)
-}
+++ /dev/null
-function _warn (msg) %{
- _stp_warn (THIS->msg);
-%}
-
-function warn (msg) {
- _warn (msg . "")
-}
--- /dev/null
+%{
+#include <linux/time.h>
+%}
+
+// return in milliseconds since epoch
+function gettimeofday_ms () %{
+ struct timeval tm;
+ do_gettimeofday (& tm);
+ THIS->__retvalue = (tm.tv_sec * 1000) + (tm.tv_usec / 1000);
+%}
+
+// return in seconds since epoch
+function gettimeofday_s () %{
+ struct timeval tm;
+ do_gettimeofday (& tm);
+ THIS->__retvalue = tm.tv_sec;
+%}
+
+// likewise jiffies, monotonic_clock ...
o->newline() << retvalue.init();
}
+ o->newline(1) << "{"; // in case body is embeddedcode with decls
v->body->visit (this);
+ o->newline(-1) << "}";
+
this->current_function = 0;
o->newline(-1) << "out:";