#!/usr/bin/perl use Sys::Virt; my $uri = shift @ARGV; my $c = Sys::Virt->new(uri => $uri); my $d = $c->get_domain_by_name("vm1"); unless ($d->is_active()) { $d->create; } my $mask = $d->get_emulator_pin_info; @bits = split(//, unpack("b*", $mask)); print join(":", @bits), "\n"; if ($bits[0] == '1' && $bits[1] == '1') { @bits[0] = 0; my $newmask = ''; for(my $i = 0 ; $i <= $#bits ; $i++) { vec($newmask, $i, 1) = $bits[$i]; } @bits = split(//, unpack("b*", $newmask)); print join(":", @bits), "\n"; $d->pin_emulator($newmask); $newermask = $d->get_emulator_pin_info; @bits = split(//, unpack("b*", $newermask)); print join(":", @bits), "\n"; $d->pin_emulator($mask); $newermask = $d->get_emulator_pin_info; @bits = split(//, unpack("b*", $newermask)); print join(":", @bits), "\n"; }