Module Name: src
Committed By: knakahara
Date: Wed Aug 3 08:34:21 UTC 2016
Modified Files:
src/usr.sbin/intrctl: intrctl.c
Log Message:
intrctl(8): pretty printing intrctl list.
e.g.
========== before ==========
interrupt id CPU#00 CPU#01 device name(s)
irq 9 0* 0 pq3pcie1
irq 10 0* 0 pq3pcie0
irq 12 30* 0 usb1
irq 13 79* 0 etsec1-tx
irq 14 268* 0 etsec1-rx
irq 15 0* 0 etsec3-tx
irq 16 0* 0 etsec3-rx
irq 17 0* 0 etsec3-err
irq 18 0* 0 etsec1-err
irq 26 1030* 0 duart
irq 27 0* 0 i2c
irq 56 680437* 0 esdhc
msigroup 0 0* 0 msi 0-31
========== before ==========
========== after ==========
interrupt id CPU0 CPU1 device name(s)
irq 9 0* 0 pq3pcie1
irq 10 0* 0 pq3pcie0
irq 12 30* 0 usb1
irq 13 79* 0 etsec1-tx
irq 14 310* 0 etsec1-rx
irq 15 0* 0 etsec3-tx
irq 16 0* 0 etsec3-rx
irq 17 0* 0 etsec3-err
irq 18 0* 0 etsec1-err
irq 26 1629* 0 duart
irq 27 0* 0 i2c
irq 56 730617* 0 esdhc
msigroup 0 0 18* msi 0-31
========== after ==========
This patch is implemented by [email protected]. Thanks.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/usr.sbin/intrctl/intrctl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/intrctl/intrctl.c
diff -u src/usr.sbin/intrctl/intrctl.c:1.1 src/usr.sbin/intrctl/intrctl.c:1.2
--- src/usr.sbin/intrctl/intrctl.c:1.1 Mon Aug 17 06:42:46 2015
+++ src/usr.sbin/intrctl/intrctl.c Wed Aug 3 08:34:21 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: intrctl.c,v 1.1 2015/08/17 06:42:46 knakahara Exp $ */
+/* $NetBSD: intrctl.c,v 1.2 2016/08/03 08:34:21 knakahara Exp $ */
/*
* Copyright (c) 2015 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: intrctl.c,v 1.1 2015/08/17 06:42:46 knakahara Exp $");
+__RCSID("$NetBSD: intrctl.c,v 1.2 2016/08/03 08:34:21 knakahara Exp $");
#include <sys/param.h>
#include <sys/sysctl.h>
@@ -115,29 +115,40 @@ intrctl_list(int argc, char **argv)
struct intrio_list_line *illine;
int i, ncpus;
void *handle;
+ size_t intridlen;
handle = intrctl_io_alloc(intrctl_io_alloc_retry_count);
if (handle == NULL)
err(EXIT_FAILURE, "intrctl_io_alloc");
- /* header */
+ /* calc columns */
ncpus = intrctl_io_ncpus(handle);
- printf("interrupt id\t");
+ intridlen = strlen("interrupt id");
+ illine = intrctl_io_firstline(handle);
+ for (; illine != NULL; illine = intrctl_io_nextline(handle, illine)) {
+ size_t len = strlen(illine->ill_intrid);
+ if (intridlen < len)
+ intridlen = len;
+ }
+
+ /* header */
+ printf("%-*s", (int)intridlen, "interrupt id");
for (i = 0; i < ncpus; i++) {
- printf(" CPU#%02u\t", i);
+ char buf[64];
+ snprintf(buf, sizeof(buf), "CPU%u", i);
+ printf(" %20s ", buf);
}
- printf("device name(s)\n");
+ printf(" device name(s)\n");
/* body */
illine = intrctl_io_firstline(handle);
for (; illine != NULL; illine = intrctl_io_nextline(handle, illine)) {
- printf("%s\t", illine->ill_intrid);
+ printf("%-*s ", (int)intridlen, illine->ill_intrid);
for (i = 0; i < ncpus; i++) {
struct intrio_list_line_cpu *illc = &illine->ill_cpu[i];
- printf("%8" PRIu64 "%c\t", illc->illc_count,
+ printf("%20" PRIu64 "%c ", illc->illc_count,
illc->illc_assigned ? '*' : ' ');
}
-
printf("%s\n", illine->ill_xname);
}