diff --git a/usr.sbin/ifmcstat/ifmcstat.8 b/usr.sbin/ifmcstat/ifmcstat.8 index 93221e15d854..5298e7183e6d 100644 --- a/usr.sbin/ifmcstat/ifmcstat.8 +++ b/usr.sbin/ifmcstat/ifmcstat.8 @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 19, 2007 +.Dd March 20, 2007 .Dt IFMCSTAT 8 .Os .Sh NAME @@ -39,7 +39,8 @@ .Nm .Op Fl i Ar interface .Op Fl f Ar address-family -.Op Fl k Ar kernel +.Op Fl M Ar core +.Op Fl N Ar system .Nm .Op Ar kernel .\" @@ -59,13 +60,17 @@ specifies the address-family to be displayed; currently only and .Ar inet6 are supported. -.It Fl k Ar kernel +.It Fl M Ar core +extracts values associated with the name list from the specified core, +instead of the default +.Pa /dev/kmem . +.It Fl N Ar system extracts the name list from the specified kernel instead of the default, which is the kernel image the system has booted from. -.It Nm Ar kernel +.It Nm Ar system This is the same as specifying .Nm -.Fl k Ar kernel . +.Fl N Ar system . This usage is deprecated; it is supported only for backwards compatibility. .Sh BUGS .Nm diff --git a/usr.sbin/ifmcstat/ifmcstat.c b/usr.sbin/ifmcstat/ifmcstat.c index b2d13689c37c..71f3ede71b93 100644 --- a/usr.sbin/ifmcstat/ifmcstat.c +++ b/usr.sbin/ifmcstat/ifmcstat.c @@ -29,7 +29,6 @@ * SUCH DAMAGE. */ -/* TODO: use -M, -N for kernel/namelist. */ /* TODO: use sysctl. */ #include @@ -151,12 +150,13 @@ int main(argc, argv) int c; struct ifnet *ifp, *nifp, ifnet; const char *kernel = NULL; + const char *core = NULL; /* "ifmcstat [kernel]" format is supported for backward compatiblity */ if (argc == 2) kernel = argv[1]; - while ((c = getopt(argc, argv, "i:f:k:")) != -1) { + while ((c = getopt(argc, argv, "i:f:M:N:")) != -1) { switch (c) { case 'i': if ((ifindex = if_nametoindex(optarg)) == 0) { @@ -176,17 +176,22 @@ int main(argc, argv) fprintf(stderr, "%s: unknown address family\n", optarg); exit(1); /*NOTREACHED*/ - case 'k': + case 'M': + core = strdup(optarg); + break; + case 'N': kernel = strdup(optarg); break; default: - fprintf(stderr, "usage: ifmcstat [-i interface] [-f address family] [-k kernel]\n"); + fprintf(stderr, +"usage: ifmcstat [-i interface] [-f address family] [-M core] [-N system]\n"); exit(1); /*NOTREACHED*/ } } - if ((kvmd = kvm_openfiles(kernel, NULL, NULL, O_RDONLY, buf)) == NULL) { + if ((kvmd = kvm_openfiles(kernel, core, NULL, O_RDONLY, buf)) == + NULL) { perror("kvm_openfiles"); exit(1); }