Skip to content

Commit

Permalink
selftests/powerpc: Add have_hwcap2() helper
Browse files Browse the repository at this point in the history
We already do this twice and want to add another so add a helper.

Signed-off-by: Michael Ellerman <[email protected]>
  • Loading branch information
mpe committed Dec 14, 2015
1 parent fcb45ec commit ede8ef3
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
3 changes: 1 addition & 2 deletions tools/testing/selftests/powerpc/pmu/ebb/ebb.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <linux/auxvec.h>

#include "trace.h"
#include "reg.h"
Expand Down Expand Up @@ -324,7 +323,7 @@ bool ebb_is_supported(void)
{
#ifdef PPC_FEATURE2_EBB
/* EBB requires at least POWER8 */
return ((long)get_auxv_entry(AT_HWCAP2) & PPC_FEATURE2_EBB);
return have_hwcap2(PPC_FEATURE2_EBB);
#else
return false;
#endif
Expand Down
3 changes: 1 addition & 2 deletions tools/testing/selftests/powerpc/tm/tm-syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#include <sys/syscall.h>
#include <asm/tm.h>
#include <asm/cputable.h>
#include <linux/auxvec.h>
#include <sys/time.h>
#include <stdlib.h>

Expand Down Expand Up @@ -80,7 +79,7 @@ pid_t getppid_tm(bool suspend)
static inline bool have_htm_nosc(void)
{
#ifdef PPC_FEATURE2_HTM_NOSC
return ((long)get_auxv_entry(AT_HWCAP2) & PPC_FEATURE2_HTM_NOSC);
return have_hwcap2(PPC_FEATURE2_HTM_NOSC);
#else
printf("PPC_FEATURE2_HTM_NOSC not defined, can't check AT_HWCAP2\n");
return false;
Expand Down
6 changes: 6 additions & 0 deletions tools/testing/selftests/powerpc/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include <stdint.h>
#include <stdbool.h>
#include <linux/auxvec.h>

/* Avoid headaches with PRI?64 - just use %ll? always */
typedef unsigned long long u64;
Expand All @@ -22,6 +23,11 @@ typedef uint8_t u8;
int test_harness(int (test_function)(void), char *name);
extern void *get_auxv_entry(int type);

static inline bool have_hwcap2(unsigned long ftr2)
{
return ((unsigned long)get_auxv_entry(AT_HWCAP2) & ftr2) == ftr2;
}

/* Yes, this is evil */
#define FAIL_IF(x) \
do { \
Expand Down

0 comments on commit ede8ef3

Please sign in to comment.