Index: umastat.c =================================================================== RCS file: /usr/repo/src/tools/tools/umastat/umastat.c,v retrieving revision 1.4 diff -u -p -r1.4 umastat.c --- umastat.c 6 Mar 2006 22:31:25 -0000 1.4 +++ umastat.c 6 Feb 2007 16:52:24 -0000 @@ -40,6 +40,7 @@ #include #include #include +#include static struct nlist namelist[] = { #define X_UMA_KEGS 0 @@ -57,7 +58,7 @@ static void usage(void) { - fprintf(stderr, "umastat\n"); + fprintf(stderr, "umastat [-M core [-N system]]\n"); exit(-1); } @@ -283,11 +284,31 @@ main(int argc, char *argv[]) kvm_t *kvm; int all_cpus, cpu, mp_maxcpus, mp_maxid, ret, ub_cnt, ub_entries; size_t uzp_userspace_len; + char *memf, *nlistf; + int ch; - if (argc != 1) + memf = nlistf = NULL; + while ((ch = getopt(argc, argv, "M:N:")) != -1) { + switch (ch) { + case 'M': + memf = optarg; + break; + case 'N': + nlistf = optarg; + break; + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc != 0) + usage(); + if (nlistf != NULL && memf == NULL) usage(); - kvm = kvm_open(NULL, NULL, NULL, 0, "umastat"); + kvm = kvm_open(nlistf, memf, NULL, 0, "umastat"); if (kvm == NULL) err(-1, "kvm_open");