#!/bin/sh
# Build the FIXED variant: apply fix.diff to a scratch copy of the kernel
# file (sys/ itself is never touched), re-extract, compile, run mode 4.
set -e
cd "$(dirname "$0")"

SCRATCH=$(pwd)/scratch
rm -rf "$SCRATCH"
mkdir -p "$SCRATCH/sys/dev/netif/ath/ath_hal/ar9002"
cp /usr/src/sys/dev/netif/ath/ath_hal/ar9002/ar9285_reset.c \
	"$SCRATCH/sys/dev/netif/ath/ath_hal/ar9002/ar9285_reset.c"
cd "$SCRATCH"
patch -s -p1 < ../../fix.diff
cd ..
sed -n '636,812p' \
	"$SCRATCH/sys/dev/netif/ath/ath_hal/ar9002/ar9285_reset.c" \
	> ar9285_fixed.inc
grep -n "numXpdGains == 0" ar9285_fixed.inc
sed 's|ar9285_extracted.inc|ar9285_fixed.inc|' ar9285_harness.c \
	> ar9285_fixed_harness.c
cc -O2 -o ar9285_harness_fixed ar9285_fixed_harness.c
echo "FIXED BUILD OK"
./ar9285_harness_fixed 4
echo "mode4 rc=$?"
./ar9285_harness_fixed 2
echo "mode2 rc=$?"
