selftests/powerpc: Move get_auxv_entry() into utils.c
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 24 Nov 2015 02:05:38 +0000 (13:05 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 14 Dec 2015 09:41:47 +0000 (20:41 +1100)
This doesn't really belong in harness.c, it's a helper function. So move
it into utils.c.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
tools/testing/selftests/powerpc/harness.c
tools/testing/selftests/powerpc/pmu/Makefile
tools/testing/selftests/powerpc/pmu/ebb/Makefile
tools/testing/selftests/powerpc/tm/Makefile
tools/testing/selftests/powerpc/utils.c [new file with mode: 0644]

index f7997affd14364e349503ffb443b7ddb8d26284b..52f9be7f61f028fd930d793f88146cbf911f8e9e 100644 (file)
@@ -116,46 +116,3 @@ int test_harness(int (test_function)(void), char *name)
 
        return rc;
 }
-
-static char auxv[4096];
-
-void *get_auxv_entry(int type)
-{
-       ElfW(auxv_t) *p;
-       void *result;
-       ssize_t num;
-       int fd;
-
-       fd = open("/proc/self/auxv", O_RDONLY);
-       if (fd == -1) {
-               perror("open");
-               return NULL;
-       }
-
-       result = NULL;
-
-       num = read(fd, auxv, sizeof(auxv));
-       if (num < 0) {
-               perror("read");
-               goto out;
-       }
-
-       if (num > sizeof(auxv)) {
-               printf("Overflowed auxv buffer\n");
-               goto out;
-       }
-
-       p = (ElfW(auxv_t) *)auxv;
-
-       while (p->a_type != AT_NULL) {
-               if (p->a_type == type) {
-                       result = (void *)p->a_un.a_val;
-                       break;
-               }
-
-               p++;
-       }
-out:
-       close(fd);
-       return result;
-}
index a9099d9f8f39ea8a38a6345b15e2d24ab2e00eb7..50326cbb372d6a47303966363b3374cdd8f77bb9 100644 (file)
@@ -12,6 +12,8 @@ $(TEST_PROGS): $(EXTRA_SOURCES)
 count_instructions: loop.S count_instructions.c $(EXTRA_SOURCES)
        $(CC) $(CFLAGS) -m64 -o $@ $^
 
+per_event_excludes: ../utils.c
+
 include ../../lib.mk
 
 DEFAULT_RUN_TESTS := $(RUN_TESTS)
index 5cdc9dbf2b279c95cd3f9603759b63bc5c0cfee5..8d2279c4bb4b6a81cb5713f6ba3bf92b72f2e3e7 100644 (file)
@@ -18,7 +18,8 @@ TEST_PROGS := reg_access_test event_attributes_test cycles_test       \
 
 all: $(TEST_PROGS)
 
-$(TEST_PROGS): ../../harness.c ../event.c ../lib.c ebb.c ebb_handler.S trace.c busy_loop.S
+$(TEST_PROGS): ../../harness.c ../../utils.c ../event.c ../lib.c \
+              ebb.c ebb_handler.S trace.c busy_loop.S
 
 instruction_count_test: ../loop.S
 
index 4bea62a319dcaf96ee85f58aaa3cf6160d0428d5..e7b9be7947c882f8ace5510bcf68d93f059684fe 100644 (file)
@@ -4,7 +4,7 @@ all: $(TEST_PROGS)
 
 $(TEST_PROGS): ../harness.c
 
-tm-syscall: tm-syscall-asm.S
+tm-syscall: tm-syscall-asm.S ../utils.c
 tm-syscall: CFLAGS += -mhtm -I../../../../../usr/include
 
 include ../../lib.mk
diff --git a/tools/testing/selftests/powerpc/utils.c b/tools/testing/selftests/powerpc/utils.c
new file mode 100644 (file)
index 0000000..536113a
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2013-2015, Michael Ellerman, IBM Corp.
+ * Licensed under GPLv2.
+ */
+
+#include <elf.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <link.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+static char auxv[4096];
+
+void *get_auxv_entry(int type)
+{
+       ElfW(auxv_t) *p;
+       void *result;
+       ssize_t num;
+       int fd;
+
+       fd = open("/proc/self/auxv", O_RDONLY);
+       if (fd == -1) {
+               perror("open");
+               return NULL;
+       }
+
+       result = NULL;
+
+       num = read(fd, auxv, sizeof(auxv));
+       if (num < 0) {
+               perror("read");
+               goto out;
+       }
+
+       if (num > sizeof(auxv)) {
+               printf("Overflowed auxv buffer\n");
+               goto out;
+       }
+
+       p = (ElfW(auxv_t) *)auxv;
+
+       while (p->a_type != AT_NULL) {
+               if (p->a_type == type) {
+                       result = (void *)p->a_un.a_val;
+                       break;
+               }
+
+               p++;
+       }
+out:
+       close(fd);
+       return result;
+}