1199536Smr#!/bin/sh
2199536Smr#
3199536Smr# $FreeBSD$
4199536Smr#
5199536Smr
6199536Smr_run () {
7199536Smr  case "$1" in
8199536Smr  "alix_dsk")
9199536Smr    ARG="-cpu pentium"
10199536Smr    ARG="$ARG -hda /usr/obj/nanobsd.alix_dsk/_.disk.full -boot c"
11199536Smr    ARG="$ARG -hdb /z/scratch/scratch"
12199536Smr    ARG="$ARG -net nic,model=e1000"
13199536Smr    ARG="$ARG -net tap,ifname=tap0,script=no,downscript=no"
14199536Smr    ARG="$ARG -m 1024 -k de -localtime -nographic"
15199536Smr    break
16199536Smr    ;;
17199536Smr  "alix_nfs")
18199536Smr    ARG="-cpu pentium"
19199536Smr    ARG="$ARG -hda /usr/obj/nanobsd.alix_nfs/_.disk.full -boot c"
20199536Smr    ARG="$ARG -hdb /z/scratch/scratch"
21199536Smr    ARG="$ARG -net nic,model=e1000"
22199536Smr    ARG="$ARG -net tap,ifname=tap0,script=no,downscript=no"
23199536Smr    ARG="$ARG -m 1024 -k de -localtime -nographic"
24199536Smr    break
25199536Smr    ;;
26199536Smr
27199536Smr  esac
28199536Smr  qemu-system-x86_64 -kernel-kqemu $ARG
29199536Smr}
30199536Smr
31199536Smr_init () {
32199536Smr  kldstat -n kqemu || kldload kqemu
33199536Smr  kldstat -n aio || kldload aio
34199536Smr  kldstat -n if_tap || kldload if_tap
35199536Smr  kldstat -n if_bridge || kldload if_bridge
36199536Smr  sysctl net.link.tap.up_on_open=1
37199536Smr  ifconfig bridge0 down destroy
38199536Smr  ifconfig tap0 down destroy
39199536Smr  ifconfig tap0 create up
40199536Smr  ifconfig bridge0 create
41199536Smr  ifconfig bridge0 addm nfe0 addm tap0 up
42199536Smr}
43199536Smr
44199536Smr_ifup () {
45199536Smr  sleep 2;
46199536Smr  ifconfig bridge0 -learn nfe0
47199536Smr  ifconfig tap0 up
48199536Smr  ifconfig bridge0 up
49199536Smr}
50199536Smr
51199536Smr_clear () {
52199536Smr  ifconfig bridge0 down destroy
53199536Smr  ifconfig tap0 down destroy
54199536Smr}
55199536Smr
56199536Smr_init
57199536Smr(_ifup) &
58199536Smr_run "$1"
59199536Smr_clear
60