1
0
Fork 0
dotfiles/files/.config/zsh/custom/101-function.zsh

82 lines
2.0 KiB
Bash

# edit alias
vialias() {
$EDITOR $ZSH_CUSTOM/100-alias.zsh
source $ZSH_CUSTOM/100-alias.zsh
}
# edit function
vifunction() {
$EDITOR $ZSH_CUSTOM/101-function.zsh
source $ZSH_CUSTOM/101-function.zsh
}
# scan network
nmap-libvirt() {
__nmap_iface 'virbr[0-9]+' $@
}
nmap-tun() {
__nmap_iface '(tun|tap)[0-9]+' $@
}
nmap-local() {
__nmap_iface '(eth|wlan)[0-9]+' $@
}
__nmap_iface() {
local iface="$1"
shift
local opt=${@:--T5}
for link in $(ip link show up | grep -Eo "$iface"); do
for addr in $(ip addr show $link | grep -oP '(?<=inet )([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}'); do
addr_list="$addr_list $addr"
done
done
printf "Scanning %s\n" "$addr"
nmap $opt $addr_list
}
# calculator
\=() {
bc -l <<<"$*"
}
# start looking-glass
play-vm() {
if ! [ -S /tmp/win10.sock ]; then
echo "Cannot find spice socket! Is the vm started?"
else
echo "Setup cpuset cgroup for host"
sudo cset set -c 0,4 -s system
sudo cset proc -m -f root -t system
sudo cset proc -k -f root -t system --force
echo "Setup cpumask"
for i in /sys/devices/virtual/workqueue/*/cpumask; do
sudo sh -c "echo 001 > $i"
done;
echo "Setup interrupt affinity"
for i in $(sed -n -e 's/ \([0-9]\+\):.*vfio.*/\1/p' /proc/interrupts); do
sudo sh -c "echo 0,4 > /proc/irq/$i/smp_affinity_list"
done
echo "Starting looking-glass"
LD_PRELOAD=/usr/\$LIB/libgamemodeauto.so looking-glass-client -p 0 -c /tmp/win10.sock -K 60 -MFk $@
echo "Restore system"
# irq
for i in $(sed -n -e 's/ \([0-9]\+\):.*vfio.*/\1/p' /proc/interrupts); do
sudo sh -c "echo ff > /proc/irq/$i/smp_affinity"
done
# cpumask
for i in /sys/devices/virtual/workqueue/*/cpumask; do
sudo sh -c "echo ff > $i"
done;
# cpuset
sudo cset set -d system &>/dev/null
fi
}