From 6e68c98560ca5d5da765f637bec111945b2af719 Mon Sep 17 00:00:00 2001 From: Adam Wujek <adam.wujek@cern.ch> Date: Fri, 15 Apr 2016 16:32:00 +0200 Subject: [PATCH] userspace/tools: print only specified shmem by wrs_dump_shmem Add -P -R -L to dump only specific shmem. Signed-off-by: Adam Wujek <adam.wujek@cern.ch> --- userspace/tools/wrs_dump_shmem.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/userspace/tools/wrs_dump_shmem.c b/userspace/tools/wrs_dump_shmem.c index 3d6d07ec8..7a9e1f9b0 100644 --- a/userspace/tools/wrs_dump_shmem.c +++ b/userspace/tools/wrs_dump_shmem.c @@ -676,10 +676,16 @@ void print_info(char *prgname) " entries are printed. Note there are 2048 htab\n" " and 4096 vlan entries!\n" " -H <dir> Open shmem dumps from the given directory\n" - " -h Show this message\n"); + " -h Show this message\n" + " Dump shmem for specific program (by default dump for all)\n" + " -P Dump ptp entries\n" + " -R Dump rtu entries\n" + " -L Dump hal entries\n"); } +int dump_print[WRS_SHM_N_NAMES]; + int main(int argc, char **argv) { struct wrs_shm_head *head; @@ -687,8 +693,9 @@ int main(int argc, char **argv) void *m; int i; int c; + int print_all = 1; - while ((c = getopt(argc, argv, "ahH:")) != -1) { + while ((c = getopt(argc, argv, "ahH:PRL")) != -1) { switch (c) { case 'a': dump_all_rtu_entries = 1; @@ -696,6 +703,18 @@ int main(int argc, char **argv) case 'H': wrs_shm_set_path(optarg); break; + case 'P': + dump_print[wrs_shm_ptp] = 1; + print_all = 0; + break; + case 'R': + dump_print[wrs_shm_rtu] = 1; + print_all = 0; + break; + case 'L': + dump_print[wrs_shm_hal] = 1; + print_all = 0; + break; case 'h': default: print_info(argv[0]); @@ -703,6 +722,9 @@ int main(int argc, char **argv) } } for (i = 0; i < WRS_SHM_N_NAMES; i++) { + if (!print_all && !dump_print[i]) + continue; + m = wrs_shm_get(i, "reader", 0); if (!m) { fprintf(stderr, "%s: can't attach memory area %i: %s\n", -- GitLab