#!/bin/sh . "${PM_FUNCTIONS}" get_domain_pci_devs() { VM=$1 TMPFILE=$(mktemp -p /var/run/qubes/) xm pci-list $VM > $TMPFILE if grep -i -q vslt $TMPFILE ; then slt=valid_identifier else slt="" fi cat $TMPFILE | grep -v domain | sed 's/0x//g'| \ while read $slt a b c d; do echo $a:$b:$c.$d ; done > /var/run/qubes/$VM.pcidevs rm -f $TMPFILE } detach_pcis() { NETVM=$(qvm-get-default-netvm) if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then exit 0 fi get_domain_pci_devs $NETVM for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do xm pci-detach $NETVM $dev done } attach_pcis() { NETVM=$(qvm-get-default-netvm) if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then exit 0 fi for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do xm pci-attach $NETVM $dev done } case "$1" in resume) attach_pcis ;; suspend) detach_pcis ;; *) exit 0 ;; esac