summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
Diffstat (limited to 'tapset')
-rw-r--r--tapset/ChangeLog18
-rw-r--r--tapset/logging.stp9
-rw-r--r--tapset/signal.stp16
-rw-r--r--tapset/syscalls2.stp2
4 files changed, 35 insertions, 10 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index ecab4aea..d5b32bf1 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,21 @@
+2007-11-14 Zhaolei <zhaolei@cn.fujitsu.com>
+
+ From Lai Jiangshan <laijs@cn.fujitsu.com>
+ * signal.stp (signal.do_action): Call __get_action_mask to get mask
+ to fix semantic error of accessing a struct.
+ * signal.stp (__get_action_mask): Add.
+
+2007-11-12 Martin Hunt <hunt@redhat.com>
+
+ * logging.stp (print_char): Remove. Now implemented by
+ stap.
+ (log): Add a comment that it is deprecated.
+
+2007-11-12 Martin Hunt <hunt@redhat.com>
+
+ * syscalls2.stp (sys_remap_file_pages: : Change kernel
+ version check to >= 2.6.24.
+
2007-11-8 Zhaolei <zhaolei@cn.fujitsu.com>
From Lai Jiangshan <laijs@cn.fujitsu.com>
diff --git a/tapset/logging.stp b/tapset/logging.stp
index 968435e2..d2cca612 100644
--- a/tapset/logging.stp
+++ b/tapset/logging.stp
@@ -1,5 +1,5 @@
// logging tapset
-// Copyright (C) 2005, 2006 Red Hat Inc.
+// Copyright (C) 2005, 2006, 2007 Red Hat Inc.
//
// 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
@@ -7,6 +7,7 @@
// later version.
// send a string out with a newline
+// Deprecated. print* functions are much more efficient.
function log (msg:string) %{
_stp_printf ("%s\n", THIS->msg);
%}
@@ -35,9 +36,3 @@ function error (msg:string) %{
function stp_print_binary(n:long, arg1:long, arg2:long, arg3:long, arg4:long) %{
_stp_print_binary (THIS->n, THIS->arg1, THIS->arg2, THIS->arg3, THIS->arg4);
%}
-
-function print_char(c:long) %{
-{
- _stp_print_char((char)THIS->c);
-}
-%}
diff --git a/tapset/signal.stp b/tapset/signal.stp
index 1c8152b6..d969ffc8 100644
--- a/tapset/signal.stp
+++ b/tapset/signal.stp
@@ -427,8 +427,8 @@ probe signal.do_action = kernel.function("do_sigaction")
oldsigact_addr = $oact
if(sigact_addr != 0)
{
- sa_handler = $act->sa->sa_handler
- sa_mask = $act->sa->sa_mask
+ sa_handler = $act->sa->sa_handler
+ sa_mask = __get_action_mask($act)
}
}
@@ -437,6 +437,18 @@ probe signal.do_action.return = kernel.function("do_sigaction").return
retstr = returnstr(1)
}
+function __get_action_mask:long(act:long) %{ /* pure */
+ int i;
+ struct k_sigaction *act = (struct k_sigaction *)((long)THIS->act);
+ sigset_t *sigset = &act->sa.sa_mask;
+ THIS->__retvalue = kread(&(sigset->sig[0]));
+ for (i=1; i<_NSIG_WORDS; ++i) {
+ uint64_t part = kread(&(sigset->sig[i]));
+ THIS->__retvalue |= part << (_NSIG_BPW*i);
+ }
+ CATCH_DEREF_FAULT();
+%}
+
/* probe signal.procmask
*
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index aa22377c..9c84f23d 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -784,7 +784,7 @@ probe syscall.remap_file_pages = kernel.function("sys_remap_file_pages") ? {
name = "remap_file_pages"
start = $start
size = $size
-%( kernel_vr > "2.6.23" %?
+%( kernel_vr >= "2.6.24" %?
prot = $prot
%:
prot = $__prot