summaryrefslogtreecommitdiffstats
path: root/tapset/aux_syscalls.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/aux_syscalls.stp')
-rw-r--r--tapset/aux_syscalls.stp46
1 files changed, 16 insertions, 30 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 4d578fd5..b9ff9776 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -34,15 +34,13 @@ function _struct_compat_timeval_u:string(uaddr:long)
function _struct_timeval:string(addr:long)
%{ /* pure */
- struct timeval *tv;
- char *ptr = (char *)(unsigned long)THIS->addr;
+ struct timeval *tv = (struct timeval *)(unsigned long)THIS->addr;
- if (ptr == NULL)
+ if (tv == NULL)
strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
- else {
- tv=(struct timeval *) ptr;
- snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%ld.%06ld]", tv->tv_sec, tv->tv_usec);
- }
+ else
+ snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%ld.%06ld]",
+ kread(&(tv->tv_sec)), kread(&(tv->tv_usec)));
%}
function _struct_timezone_u:string(uaddr:long)
@@ -166,15 +164,14 @@ function _struct_compat_timespec_u:string(uaddr:long)
function _struct_timespec:string(addr:long)
%{ /* pure */
- struct timespec *ts;
- char *ptr = (char *)(unsigned long)THIS->addr;
+ struct timespec *ts = (struct timespec *)(unsigned long)THIS->addr;
- if (ptr == NULL)
+ if (ts == NULL)
strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
else {
- ts = (struct timespec *) ptr;
snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%ld.%09ld]",
- (unsigned long)ts->tv_sec, (unsigned long)ts->tv_nsec);
+ (unsigned long)kread(&(ts->tv_sec)),
+ (unsigned long)kread(&(ts->tv_nsec)));
}
%}
@@ -231,16 +228,16 @@ function _struct_compat_itimerval_u:string(uaddr:long)
function _struct_itimerval:string(addr:long)
%{ /* pure */
- struct itimerval *itv;
- char *ptr = (char *)(unsigned long)THIS->addr;
+ struct itimerval *itv = (char *)(unsigned long)THIS->addr;
- if (ptr == NULL)
+ if (itv == NULL)
strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN);
else {
- itv = (struct itimerval *) ptr;
snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d,%d.%06d]",
- (int)itv->it_interval.tv_sec, (int)itv->it_interval.tv_usec,
- (int)itv->it_value.tv_sec, (int)itv->it_value.tv_usec);
+ (int)kread(&(itv->it_interval.tv_sec)),
+ (int)kread(&(itv->it_interval.tv_usec)),
+ (int)kread(&(itv->it_value.tv_sec)),
+ (int)kread(&(itv->it_value.tv_usec)));
}
%}
@@ -637,16 +634,6 @@ function __get_argv:string(a:long)
%}
/*
-* This function is used when a long is really a pointer and we need
-* 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);
-%}
-
-/*
* Return a integer member value of struct
* timezone user space pointer parameter
* CALLERS:
@@ -683,8 +670,7 @@ function __uget_timex_m:long(u_addr:long,member:long)
if(copy_from_user(&tx,ptr,sz)) {
THIS->__retvalue = -EFAULT;
- return;
- }
+ } else
switch(THIS->member) {
case 0: THIS->__retvalue = tx.modes;
break;