BSD 4_4_Lite2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Fri, 24 Jul 1992 08:06:07 +0000 (00:06 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Fri, 24 Jul 1992 08:06:07 +0000 (00:06 -0800)
Work on file usr/src/contrib/news/inn/lib/resource.c

Synthesized-from: CSRG/cd3/4.4BSD-Lite2

usr/src/contrib/news/inn/lib/resource.c [new file with mode: 0644]

diff --git a/usr/src/contrib/news/inn/lib/resource.c b/usr/src/contrib/news/inn/lib/resource.c
new file mode 100644 (file)
index 0000000..63802f7
--- /dev/null
@@ -0,0 +1,57 @@
+/*  $Revision: 1.3 $
+**
+*/
+#include <stdio.h>
+#include <sys/types.h>
+#include "configdata.h"
+#include "clibrary.h"
+#include "macros.h"
+
+
+#if    defined(RES_RUSAGE)
+#include <sys/time.h>
+#include <sys/resource.h>
+
+#define TIMEVALasDOUBLE(t)     \
+    ((double)(t).tv_sec + ((double)(t).tv_usec) / 1000000.0)
+
+int
+GetResourceUsage(usertime, systime)
+    double     *usertime;
+    double     *systime;
+{
+    struct rusage      R;
+
+    if (getrusage(RUSAGE_SELF, &R) < 0)
+       return -1;
+    *usertime = TIMEVALasDOUBLE(R.ru_utime);
+    *systime = TIMEVALasDOUBLE(R.ru_stime);
+    return 0;
+}
+#endif /* defined(RES_RUSAGE) */
+
+
+#if    defined(RES_TIMES)
+#include <sys/param.h>
+#include <sys/times.h>
+
+#if    !defined(HZ)
+#define HZ     60
+#endif /* !defined(HZ) */
+
+#define CPUTIMEasDOUBLE(t1, t2)                ((double)(t1 + t2) / (double)HZ)
+
+int
+GetResourceUsage(usertime, systime)
+    double     *usertime;
+    double     *systime;
+{
+    struct tms T;
+
+    if (times(&T) == -1)
+       return -1;
+    *usertime = CPUTIMEasDOUBLE(T.tms_utime, T.tms_cutime);
+    *systime = CPUTIMEasDOUBLE(T.tms_stime, T.tms_cstime);
+    return 0;
+}
+#endif /* defined(RES_TIMES) */