#!/usr/bin/env bash
#
# Binds a device to the vfio-pci driver.
#
# This script is called by the QEMU hook script when a VM is started and is 
# autogenerated by qemu-hook-manager.
#
# Author: Philip J. Guinchard <phil.guinchard@slackdaystudio.ca>

IOMMU_GROUP="${IOMMU_GROUP_ID}"

if [ -z "${IOMMU_GROUP}" ]; then
    echo "IOMMU_GROUP is not set. Exiting."

    exit 1
fi

DEVICE_ID="$(cat /sys/bus/pci/devices/${IOMMU_GROUP}/vendor) $(cat /sys/bus/pci/devices/${IOMMU_GROUP}/device)"

echo "${IOMMU_GROUP}" >"/sys/bus/pci/devices/${IOMMU_GROUP}/driver/unbind"

echo "${DEVICE_ID}" >/sys/bus/pci/drivers/vfio-pci/new_id

exit 0
