#! /bin/sh
#############################################################
# Copyright (C) 2005 Parallels Inc.  All Rights Reserved.
# Unload all drivers
#############################################################

. /usr/lib/parallels/gettext.sh

export TEXTDOMAIN="parallels"

mainname="Parallels"
submname="Workstation"
mainver="2.1"

force=0

function modunload() {
    modname=`cat /proc/modules | grep -oe ^$1`
    moddesc=$2
    moddev=$3
        
    eval_gettext "Unload \$mainname \$submname \$mainver \$moddesc ... "; echo
        
    if test -z "$modname"; then
        eval_gettext " \$mainname \$submname \$mainver \$moddesc not loaded"; echo
    else
        /sbin/rmmod $modname
        err=$?
        if test $err -ne 0; then
            eval_gettext " Error when unloading \$mainname \$submname \$mainver \$moddesc"; echo
            if test $force -eq 0; then
                exit 0
            fi
        fi
    fi
        
    if test $moddev; then
        if test ! -c $moddev; then
            rm -f $moddev
        fi
    fi
}

if test `id -u` -ne 0; then
    eval_gettext "You must be root to run this script.
Now \"su -c \$0\" command will be issued and you will be
prompted for root password."; echo
    su -c $0
    exit 0
fi

if test "$1" = "force"; then
    force=1
fi

case `uname -s` in
    Linux)
        # unload vm-main
        modunload "vm[_|-]main" "vm-main" "/dev/vm-main"

        # unload vm-bridge
        killall -9 prl_dhcpd
        sleep 1
        modunload "vm[_|-]bridge" "vm-bridge" "/dev/vm-bridge"

        # unload vmvirtualnic
        vdevs=`/sbin/ifconfig | grep vnic | awk '{ print $1 }'`
        for i in $vdevs; do
            /sbin/ifconfig $i down
        done
        modunload "vmvirtualnic" "vmvirtualnic"
    
        # unload hypervisor
        modunload "hypervisor" "hypervisor" "/dev/hypervisor"
    ;;
    *)
        gettext "Error: Unknown operating system type."; echo
    ;;
esac
exit 0
