Constify count_syscall function

* count.c (count_syscall): Add const qualifier to timeval argument and
rename it.  Store the wall clock time spent while in syscall in separate
timeval variable.
* defs.h (count_syscall): Update prototype.
* syscall.c (trace_syscall_exiting): Update count_syscall invocation.
This commit is contained in:
Дмитрий Левин 2014-05-29 18:10:00 +00:00
parent 447db45365
commit ac5133d0cb
3 changed files with 9 additions and 9 deletions

13
count.c
View File

@ -47,10 +47,11 @@ static struct call_counts *countv[SUPPORTED_PERSONALITIES];
static struct timeval shortest = { 1000000, 0 };
/* On entry, tv is syscall exit timestamp */
void
count_syscall(struct tcb *tcp, struct timeval *tv)
count_syscall(struct tcb *tcp, const struct timeval *syscall_exiting_tv)
{
struct timeval wtv;
struct timeval *tv = &wtv;
struct call_counts *cc;
unsigned long scno = tcp->scno;
@ -69,7 +70,7 @@ count_syscall(struct tcb *tcp, struct timeval *tv)
cc->errors++;
/* tv = wall clock time spent while in syscall */
tv_sub(tv, tv, &tcp->etime);
tv_sub(tv, syscall_exiting_tv, &tcp->etime);
/* Spent more wall clock time than spent system time? (usually yes) */
if (tv_cmp(tv, &tcp->dtime) > 0) {
@ -90,13 +91,13 @@ count_syscall(struct tcb *tcp, struct timeval *tv)
if (tv_nz(&tcp->dtime))
/* tv = system time spent, if it isn't 0 */
*tv = tcp->dtime;
tv = &tcp->dtime;
else if (tv_cmp(tv, &one_tick) > 0) {
/* tv = smallest "sane" time interval */
if (tv_cmp(&shortest, &one_tick) < 0)
*tv = shortest;
tv = &shortest;
else
*tv = one_tick;
tv = &one_tick;
}
}
if (tv_cmp(tv, &shortest) < 0)

2
defs.h
View File

@ -587,7 +587,7 @@ extern void set_overhead(int);
extern void qualify(const char *);
extern void print_pc(struct tcb *);
extern int trace_syscall(struct tcb *);
extern void count_syscall(struct tcb *, struct timeval *);
extern void count_syscall(struct tcb *, const struct timeval *);
extern void call_summary(FILE *);
#if defined(AVR32) \

View File

@ -2523,8 +2523,7 @@ trace_syscall_exiting(struct tcb *tcp)
}
if (cflag) {
struct timeval t = tv;
count_syscall(tcp, &t);
count_syscall(tcp, &tv);
if (cflag == CFLAG_ONLY_STATS) {
goto ret;
}