49 lines
		
	
	
		
			956 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			956 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 | 
