#!/bin/sh

# Check if the passed in (CAPABILITY_WORD) matches a value found in the
# current hwcap aux vector.

# return '0' to indicate the capability was found.
# return '1' for not found, or any other error condition.

CAPABILITY_WORD=$1

# SANITY CHECK Begin:
# These are potential hwcap values as found in the glibc dl-procinfo.c
# sources as of July 2015.
P_HWCAP_1=" vsx arch_2_06 power6x dfp pa6t arch_2_05 ic_snoop smt booke"
P_HWCAP_2=" cellbe power5+ power5 power4 notb efpdouble efpsingle spe"
P_HWCAP_3=" ucache 4xxmac mmu fpu altivec ppc601 ppc64 ppc32 "
P_HWCAP2_1=" tar isel ebb dscr htm arch_2_07 "
CAPABILITY_FOUND="no"
for POTENTIAL_CAP in $P_HWCAP_1 $P_HWCAP_2 $P_HWCAP_3 $P_HWCAP2_1 ; do
	if [ "x$CAPABILITY_WORD" = "x$POTENTIAL_CAP" ]; then
		CAPABILITY_FOUND="yes"
		break
	fi
done
if [ x$CAPABILITY_FOUND = "xno" ]; then
	echo "Warning: did not find $CAPABILITY_WORD in the potential capabilities list."
	echo "         LD_SHOW_AUXV=1 /bin/true | grep ^AT_HWCAP "
	echo "         Double-check that the input value [$CAPABILITY_WORD] is valid."
fi
# SANITY CHECK End

# Capability Check Begin:
LD_SHOW_AUXV=1 /bin/true | grep ^AT_HWCAP | grep -w $CAPABILITY_WORD 2>&1 > /dev/null
if [ "$?" -eq "0" ]; then
	#echo "found the capability"
	exit 0
elif [ "$?" -eq "2" ]; then
	# echo "grep failure"
	exit 1
else
	#echo "did not find the capability"
	exit 1
fi

