#!/bin/sh
# DF-5505 extraction: pull the production code VERBATIM out of the
# guest's own /usr/src tree (md5-gated).
set -e
UC=/usr/src/sys/bus/u4b/serial/ucycom.c
UH=/usr/src/sys/bus/u4b/usb_hid.c

UC_MD5=c7b432ce2b994b1e580f3b00a7bb13e0
UH_MD5=3329879bc9c2af96f71dd0888154d4f2

[ "`md5 -q $UC`" = "$UC_MD5" ] || { echo "MD5 MISMATCH: $UC"; exit 1; }
[ "`md5 -q $UH`" = "$UH_MD5" ] || { echo "MD5 MISMATCH: $UH"; exit 1; }

OUT=${1:-.}

{
	echo "/* VERBATIM ucycom.c:62-101 + 181-182 (md5 $UC_MD5) */"
	sed -n '62,101p;181,182p' $UC
} > $OUT/ua5505_ucycom_defs.inc

{
	echo "/* VERBATIM usb_hid.c:801-843 usbd_req_get_hid_desc (md5 $UH_MD5) */"
	sed -n '801,843p' $UH
} > $OUT/ua5505_gethiddesc.inc

{
	echo "/* VERBATIM ucycom.c:229-254: attach-time report-descriptor"
	echo " * fetch + error path + report-size validation */"
	sed -n '229,254p' $UC
} > $OUT/ua5505_attach.inc

md5 $OUT/*.inc
echo "extraction OK"
