#!/bin/sh
# DF-5617 — build the harness KLDs inside the guest (run from repo root).
set -e
dfbsd-qemu/vm.sh run_root 'rm -rf /root/df5617work && mkdir -p /root/df5617work/f2 && cd /root/df5617work && ln -sf /usr/src/sys/bus/smbus/ichiic/ig4_reg.h . && ln -sf /usr/src/sys/bus/smbus/ichiic/ig4_var.h .'
scp -F dfbsd-qemu/config findings/poc/DF-5617/df56.c dfbsd:/root/df5617work/
scp -F dfbsd-qemu/config findings/poc/DF-5617/df5617.c dfbsd:/root/df5617work/f2/
cat > /tmp/mk1 <<'EOF'
KMOD=   df56
SRCS=   df56.c bus_if.h device_if.h
KERNBUILDDIR=    /usr/obj/usr/src/sys/X86_64_GENERIC
.include <bsd.kmod.mk>
EOF
cat > /tmp/mk2 <<'EOF'
KMOD=   df5617
SRCS=   df5617.c bus_if.h device_if.h smbus_if.h
KERNBUILDDIR=    /usr/obj/usr/src/sys/X86_64_GENERIC
.include <bsd.kmod.mk>
EOF
scp -F dfbsd-qemu/config /tmp/mk1 dfbsd:/root/df5617work/Makefile
scp -F dfbsd-qemu/config /tmp/mk2 dfbsd:/root/df5617work/f2/Makefile
dfbsd-qemu/vm.sh run_root 'cd /root/df5617work && make > /dev/null 2>&1; cd f2 && make 2>&1 | tail -3; ls -l /root/df5617work/*.ko /root/df5617work/f2/*.ko' 2>&1 | tail -5
