Index | Thread | Search

From:
Scott Cheloha <scottcheloha@gmail.com>
Subject:
vmstat/dkstats.c: remove obfuscatory timerset() macro
To:
tech@openbsd.org
Date:
Thu, 18 Apr 2024 13:22:25 -0500

Download raw body.

Thread
Using a macro to perform a plain struct assignment obfuscates the
obvious.  Delete timerset().  While here, remove the superfluous
timerclear(3) calls.

ok?

Index: dkstats.c
===================================================================
RCS file: /cvs/src/usr.bin/vmstat/dkstats.c,v
diff -u -p -r1.41 dkstats.c
--- dkstats.c	28 Jun 2019 13:35:05 -0000	1.41
+++ dkstats.c	18 Apr 2024 18:17:38 -0000
@@ -101,11 +101,6 @@ int		dk_ndrive = 0;
 int		*dk_select;
 char		**dr_name;
 
-/* Missing from <sys/time.h> */
-#define timerset(tvp, uvp) \
-	((uvp)->tv_sec = (tvp)->tv_sec);		\
-	((uvp)->tv_usec = (tvp)->tv_usec)
-
 #define SWAP(fld)	tmp = cur.fld;				\
 			cur.fld -= last.fld;			\
 			last.fld = tmp
@@ -135,11 +130,9 @@ dkswap(void)
 		SWAP(dk_wbytes[i]);
 
 		/* Delta Time. */
-		timerclear(&tmp_timer);
-		timerset(&(cur.dk_time[i]), &tmp_timer);
-		timersub(&tmp_timer, &(last.dk_time[i]), &(cur.dk_time[i]));
-		timerclear(&(last.dk_time[i]));
-		timerset(&tmp_timer, &(last.dk_time[i]));
+		tmp_timer = cur.dk_time[i];
+		timersub(&tmp_timer, &last.dk_time[i], &cur.dk_time[i]);
+		last.dk_time[i] = tmp_timer;
 	}
 	for (i = 0; i < CPUSTATES; i++) {
 		long ltmp;
@@ -370,7 +363,7 @@ dkreadstats(void)
 			cur.dk_seek[i] = q[i].ds_seek;
 			cur.dk_rbytes[i] = q[i].ds_rbytes;
 			cur.dk_wbytes[i] = q[i].ds_wbytes;
-			timerset(&(q[i].ds_time), &(cur.dk_time[i]));
+			cur.dk_time[i] = q[i].ds_time;
 		}
 		free(q);
 
@@ -408,7 +401,7 @@ dkreadstats(void)
 			cur.dk_seek[i] = cur_disk.dk_seek;
 			cur.dk_rbytes[i] = cur_disk.dk_rbytes;
 			cur.dk_wbytes[i] = cur_disk.dk_wbytes;
-			timerset(&(cur_disk.dk_time), &(cur.dk_time[i]));
+			cur.dk_time[i] = cur_disk.dk_time;
 			p = TAILQ_NEXT(&cur_disk, dk_link);
 		}
 		deref_nl(X_CP_TIME, cur.cp_time, sizeof(cur.cp_time));