|
Bernhard M. Wiedemann |
a7c934 |
Subject: acct-hz.patch
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
---
|
|
Bernhard M. Wiedemann |
a7c934 |
lastcomm.c | 14 +++++++++++++-
|
|
Bernhard M. Wiedemann |
a7c934 |
sa.c | 14 +++++++++++++-
|
|
Bernhard M. Wiedemann |
a7c934 |
2 files changed, 26 insertions(+), 2 deletions(-)
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
Index: lastcomm.c
|
|
Bernhard M. Wiedemann |
a7c934 |
===================================================================
|
|
Bernhard M. Wiedemann |
a7c934 |
--- lastcomm.c.orig
|
|
Bernhard M. Wiedemann |
a7c934 |
+++ lastcomm.c
|
|
Bernhard M. Wiedemann |
a7c934 |
@@ -71,7 +71,7 @@ int debugging_enabled = 0; /* Nonzero me
|
|
Bernhard M. Wiedemann |
a7c934 |
int strict_match_flag = 0; /* Nonzero if each record has to match
|
|
Bernhard M. Wiedemann |
a7c934 |
all items on the command line */
|
|
Bernhard M. Wiedemann |
a7c934 |
int print_controls = 0; /* don't print control characters */
|
|
Bernhard M. Wiedemann |
a7c934 |
-int ahz = AHZ; /* for viewing logs from another system */
|
|
Bernhard M. Wiedemann |
a7c934 |
+int ahz = 0; /* for viewing logs from another system */
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
char *program_name; /* name of the program, for usage & errs */
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
@@ -328,6 +328,14 @@ void parse_entries(void)
|
|
Bernhard M. Wiedemann |
a7c934 |
print_pacct_record (rec, stddebug);
|
|
Bernhard M. Wiedemann |
a7c934 |
}
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
+ if (!ahz) // if this is the first cycle run, ahz is not set yet
|
|
Bernhard M. Wiedemann |
a7c934 |
+ {
|
|
Bernhard M. Wiedemann |
a7c934 |
+ if (rec->ac_version == 3)
|
|
Bernhard M. Wiedemann |
a7c934 |
+ ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
|
|
Bernhard M. Wiedemann |
a7c934 |
+ else
|
|
Bernhard M. Wiedemann |
a7c934 |
+ ahz = sysconf(_SC_CLK_TCK);
|
|
Bernhard M. Wiedemann |
a7c934 |
+ }
|
|
Bernhard M. Wiedemann |
a7c934 |
+
|
|
Bernhard M. Wiedemann |
a7c934 |
if (desired_entry (this_uid, this_dev, rec->ac_comm))
|
|
Bernhard M. Wiedemann |
a7c934 |
{
|
|
Bernhard M. Wiedemann |
a7c934 |
double ut = ACUTIME_2_DOUBLE (rec->ac_utime);
|
|
Bernhard M. Wiedemann |
a7c934 |
Index: sa.c
|
|
Bernhard M. Wiedemann |
a7c934 |
===================================================================
|
|
Bernhard M. Wiedemann |
a7c934 |
--- sa.c.orig
|
|
Bernhard M. Wiedemann |
a7c934 |
+++ sa.c
|
|
Bernhard M. Wiedemann |
a7c934 |
@@ -191,7 +191,7 @@ int print_users = 0;
|
|
Bernhard M. Wiedemann |
a7c934 |
int percentages = 0; /* include percentages in printout */
|
|
Bernhard M. Wiedemann |
a7c934 |
int user_summary_flag = 0; /* are we printing a user summary? */
|
|
Bernhard M. Wiedemann |
a7c934 |
int group_summary_flag = 0; /* are we printing a group summary? */
|
|
Bernhard M. Wiedemann |
a7c934 |
-int ahz = AHZ; /* for viewing logs from another system */
|
|
Bernhard M. Wiedemann |
a7c934 |
+int ahz = 0; /* for viewing logs from another system */
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
|
|
Bernhard M. Wiedemann |
a7c934 |
#if defined(HAVE_ACUTIME) && defined(HAVE_ACSTIME)
|
|
Bernhard M. Wiedemann |
a7c934 |
@@ -1180,6 +1180,18 @@ void parse_acct_entries (void)
|
|
Bernhard M. Wiedemann |
a7c934 |
/* loop while there are entries to be had */
|
|
Bernhard M. Wiedemann |
a7c934 |
while ((rec = pacct_get_entry ()) != NULL)
|
|
Bernhard M. Wiedemann |
a7c934 |
{
|
|
Bernhard M. Wiedemann |
a7c934 |
+ if (!ahz) // if this is the first cycle run, ahz is not set yet
|
|
Bernhard M. Wiedemann |
a7c934 |
+ {
|
|
Bernhard M. Wiedemann |
a7c934 |
+ if (rec->ac_version == 3)
|
|
Bernhard M. Wiedemann |
a7c934 |
+ ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
|
|
Bernhard M. Wiedemann |
a7c934 |
+ else
|
|
Bernhard M. Wiedemann |
a7c934 |
+ ahz = sysconf(_SC_CLK_TCK);
|
|
Bernhard M. Wiedemann |
a7c934 |
+
|
|
Bernhard M. Wiedemann |
a7c934 |
+ if (debugging_enabled)
|
|
Bernhard M. Wiedemann |
a7c934 |
+ {
|
|
Bernhard M. Wiedemann |
a7c934 |
+ fprintf (stddebug, "AHZ -> %d\n", ahz);
|
|
Bernhard M. Wiedemann |
a7c934 |
+ }
|
|
Bernhard M. Wiedemann |
a7c934 |
+ }
|
|
Bernhard M. Wiedemann |
a7c934 |
#ifdef HAVE_ACUTIME
|
|
Bernhard M. Wiedemann |
a7c934 |
double ut = comp_t_2_double (rec->ac_utime) / CURR_AHZ;
|
|
Bernhard M. Wiedemann |
a7c934 |
#endif
|