diff options
author | fche <fche> | 2006-04-25 17:40:53 +0000 |
---|---|---|
committer | fche <fche> | 2006-04-25 17:40:53 +0000 |
commit | 1b07c728305a32a8d1fa1bb5da9d428e34dddf4e (patch) | |
tree | f86471e86673dbd7ce49f755f7d980aec43a5a58 /tapset/aux_syscalls.stp | |
parent | fe7e582fac54df14452fa017529bf642f2047e5f (diff) | |
download | systemtap-steved-1b07c728305a32a8d1fa1bb5da9d428e34dddf4e.tar.gz systemtap-steved-1b07c728305a32a8d1fa1bb5da9d428e34dddf4e.tar.xz systemtap-steved-1b07c728305a32a8d1fa1bb5da9d428e34dddf4e.zip |
2006-04-25 Frank Ch. Eigler <fche@elastic.org>
PR 2427.
* staptree.cxx (varuse_collecting_visitor::visit_embeddedcode):
Support /* pure */ declaration. Stop using __tvar_ naming hack.
(v_c_u::visit_print_format): Mark sprint and sprintf as
side-effect-free.
(deep_copy_visitor::visit_print_format): Propagate raw_components.
* stap.1.in: Document declaration.
* elaborate.cxx (semantic_pass_opt2): Verbose message tweak.
(dead_stmtexpr_remover): Extend for more aggressive optimization.
* tapsets.cxx (dwarf,mark_var_expanding_copy_visotor): Add
/* pure */ declaration to rvalue expansions.
* tapset/*.stp: Added /* pure */ declarations to many functions.
* testsuite/parseok/unparsers.stp: Propagate guru mode flag.
* testsuite/buildok/twentyfour.stp: New test.
Diffstat (limited to 'tapset/aux_syscalls.stp')
-rw-r--r-- | tapset/aux_syscalls.stp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index 37e9ddf9..b1e2c446 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -3,7 +3,7 @@ # copy and decode it and return a string. # function _struct_timeval_u:string(uaddr:long) -%{ +%{ /* pure */ struct timeval tv; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -18,7 +18,7 @@ function _struct_timeval_u:string(uaddr:long) %} function _struct_timeval:string(addr:long) -%{ +%{ /* pure */ struct timeval *tv; char *ptr = (char *)(unsigned long)THIS->addr; @@ -31,7 +31,7 @@ function _struct_timeval:string(addr:long) %} function _struct_timezone_u:string(uaddr:long) -%{ +%{ /* pure */ struct timezone tz; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -46,7 +46,7 @@ function _struct_timezone_u:string(uaddr:long) %} function _struct_timespec_u:string(uaddr:long) -%{ +%{ /* pure */ struct timespec ts; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -62,7 +62,7 @@ function _struct_timespec_u:string(uaddr:long) %} function _struct_timespec:string(addr:long) -%{ +%{ /* pure */ struct timespec *ts; char *ptr = (char *)(unsigned long)THIS->addr; @@ -76,7 +76,7 @@ function _struct_timespec:string(addr:long) %} function _struct_itimerspec_u:string(uaddr:long) -%{ +%{ /* pure */ struct itimerspec its; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -93,7 +93,7 @@ function _struct_itimerspec_u:string(uaddr:long) %} function _struct_itimerval_u:string(uaddr:long) -%{ +%{ /* pure */ struct itimerval itv; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -110,7 +110,7 @@ function _struct_itimerval_u:string(uaddr:long) %} function _struct_itimerval:string(addr:long) -%{ +%{ /* pure */ struct itimerval *itv; char *ptr = (char *)(unsigned long)THIS->addr; @@ -196,7 +196,7 @@ void _stp_sockaddr_str(char *str, const int strlen, char *buf, int len) %} function _struct_sockaddr_u:string(uaddr:long, len:long) -%{ +%{ /* pure */ char *ptr = (char *)(unsigned long)THIS->uaddr; if (ptr == NULL) strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN); @@ -211,7 +211,7 @@ function _struct_sockaddr_u:string(uaddr:long, len:long) %} function _signal_name:string(sig:long) -%{ +%{ /* pure */ int sig = THIS->sig; char *res = 0; @@ -308,7 +308,7 @@ function _signal_name:string(sig:long) %} function _struct_rlimit_u:string(uaddr:long) -%{ +%{ /* pure */ struct rlimit rl; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -324,7 +324,7 @@ function _struct_rlimit_u:string(uaddr:long) %} function _fildes_u:string (uaddr:long) -%{ +%{ /* pure */ int fd[2]; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -339,7 +339,7 @@ function _fildes_u:string (uaddr:long) %} function _fd_set_u:string(uaddr:long) -%{ +%{ /* pure */ fd_set fdset; char *ptr = (char *)(unsigned long)THIS->uaddr; @@ -355,7 +355,7 @@ function _fd_set_u:string(uaddr:long) function _semctl_cmd:string(cmd:long) -%{ +%{ /* pure */ int cmd = THIS->cmd; char *res = 0; @@ -407,7 +407,7 @@ function _semctl_cmd:string(cmd:long) %} function __sem_flags:string(semflg:long) -%{ +%{ /* pure */ long semflg = THIS->semflg; char *str = THIS->__retvalue; @@ -420,7 +420,7 @@ function __sem_flags:string(semflg:long) %} function __fork_flags:string(flags:long) -%{ +%{ /* pure */ long flags = THIS->flags; char *str = THIS->__retvalue; if (flags & CLONE_FS) @@ -456,7 +456,7 @@ function __fork_flags:string(flags:long) /* This function copies an argv from userspace. */ function __get_argv:string(a:long) -%{ +%{ /* pure */ char __user *__user *argv = (char __user *__user *)(long)THIS->a; char __user *vstr; int space, rc, len = MAXSTRINGLEN; @@ -518,7 +518,7 @@ function __get_argv:string(a:long) * the string it points to. Should be rarely necessary. */ function __string:string (a:long) -%{ +%{ /* pure */ char *str =(char *)(long)THIS->a; strlcpy(THIS->__retvalue, str, MAXSTRINGLEN); %} |