OSDN Git Service

powerpc/xmon: use match_string() helper
authorYisheng Xie <xieyisheng1@huawei.com>
Thu, 31 May 2018 11:11:25 +0000 (19:11 +0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 3 Jun 2018 10:40:24 +0000 (20:40 +1000)
match_string() returns the index of an array for a matching string,
which can be used instead of open coded variant.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/xmon/xmon.c

index c2e9270..d94a412 100644 (file)
@@ -3173,7 +3173,7 @@ skipbl(void)
 }
 
 #define N_PTREGS       44
-static char *regnames[N_PTREGS] = {
+static const char *regnames[N_PTREGS] = {
        "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
        "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
        "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
@@ -3208,18 +3208,17 @@ scanhex(unsigned long *vp)
                        regname[i] = c;
                }
                regname[i] = 0;
-               for (i = 0; i < N_PTREGS; ++i) {
-                       if (strcmp(regnames[i], regname) == 0) {
-                               if (xmon_regs == NULL) {
-                                       printf("regs not available\n");
-                                       return 0;
-                               }
-                               *vp = ((unsigned long *)xmon_regs)[i];
-                               return 1;
-                       }
+               i = match_string(regnames, N_PTREGS, regname);
+               if (i < 0) {
+                       printf("invalid register name '%%%s'\n", regname);
+                       return 0;
                }
-               printf("invalid register name '%%%s'\n", regname);
-               return 0;
+               if (xmon_regs == NULL) {
+                       printf("regs not available\n");
+                       return 0;
+               }
+               *vp = ((unsigned long *)xmon_regs)[i];
+               return 1;
        }
 
        /* skip leading "0x" if any */