summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-04-12 15:53:55 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-04-12 15:53:55 +0000
commit67e93d6a0a4f15192638e131413b9d64c4269c76 (patch)
tree88fd1d17c4be283683a96ced44159e3ce6b6f2f7 /sys
parent7208d528bd42f981f2535403f72e4c0d7d8df643 (diff)
updating cwfs and moving installer in /rc/bin
Diffstat (limited to 'sys')
-rw-r--r--sys/lib/dist/mkfile3
-rw-r--r--sys/lib/dist/pc/emptyfile0
-rw-r--r--sys/lib/dist/pc/glenda/bin/rc/riostart4
-rw-r--r--sys/lib/dist/pc/glenda/lib/first.window11
-rw-r--r--sys/lib/dist/pc/glenda/lib/profile16
-rw-r--r--sys/lib/dist/pc/inst/bootfloppy47
-rw-r--r--sys/lib/dist/pc/inst/bootplan955
-rw-r--r--sys/lib/dist/pc/inst/bootsetup125
-rw-r--r--sys/lib/dist/pc/inst/bootwin9x117
-rw-r--r--sys/lib/dist/pc/inst/bootwinnt47
-rw-r--r--sys/lib/dist/pc/inst/configarch40
-rw-r--r--sys/lib/dist/pc/inst/configdist22
-rw-r--r--sys/lib/dist/pc/inst/configether53
-rw-r--r--sys/lib/dist/pc/inst/configfs23
-rw-r--r--sys/lib/dist/pc/inst/configip64
-rw-r--r--sys/lib/dist/pc/inst/confignet67
-rw-r--r--sys/lib/dist/pc/inst/configppp63
-rw-r--r--sys/lib/dist/pc/inst/copydist31
-rw-r--r--sys/lib/dist/pc/inst/defs162
-rw-r--r--sys/lib/dist/pc/inst/download56
-rw-r--r--sys/lib/dist/pc/inst/finish19
-rw-r--r--sys/lib/dist/pc/inst/fmtfossil91
-rw-r--r--sys/lib/dist/pc/inst/fmtventi190
-rw-r--r--sys/lib/dist/pc/inst/gui7
-rw-r--r--sys/lib/dist/pc/inst/halt18
-rw-r--r--sys/lib/dist/pc/inst/hasmbr12
-rw-r--r--sys/lib/dist/pc/inst/hdrs7
-rw-r--r--sys/lib/dist/pc/inst/is966012
-rw-r--r--sys/lib/dist/pc/inst/isext211
-rw-r--r--sys/lib/dist/pc/inst/isfat22
-rw-r--r--sys/lib/dist/pc/inst/isfossil16
-rw-r--r--sys/lib/dist/pc/inst/isventi13
-rw-r--r--sys/lib/dist/pc/inst/isventiarenas13
-rw-r--r--sys/lib/dist/pc/inst/isventiisect13
-rw-r--r--sys/lib/dist/pc/inst/main115
-rw-r--r--sys/lib/dist/pc/inst/mainloop23
-rw-r--r--sys/lib/dist/pc/inst/mkini.awk59
-rw-r--r--sys/lib/dist/pc/inst/mountdist222
-rw-r--r--sys/lib/dist/pc/inst/mountfossil104
-rw-r--r--sys/lib/dist/pc/inst/mountfs14
-rw-r--r--sys/lib/dist/pc/inst/moveoldfs72
-rw-r--r--sys/lib/dist/pc/inst/partdisk73
-rw-r--r--sys/lib/dist/pc/inst/prepdisk63
-rw-r--r--sys/lib/dist/pc/inst/replcfg18
-rw-r--r--sys/lib/dist/pc/inst/startether30
-rw-r--r--sys/lib/dist/pc/inst/startppp30
-rw-r--r--sys/lib/dist/pc/inst/startwin46
-rw-r--r--sys/lib/dist/pc/inst/stop50
-rw-r--r--sys/lib/dist/pc/inst/stopether20
-rw-r--r--sys/lib/dist/pc/inst/stopppp19
-rw-r--r--sys/lib/dist/pc/inst/textonly15
-rw-r--r--sys/lib/dist/pc/inst/watchfd17
-rw-r--r--sys/lib/dist/pc/inst/xxx9
-rw-r--r--sys/lib/dist/pc/mkfile100
-rw-r--r--sys/lib/dist/pc/plan9.ini19
-rw-r--r--sys/lib/dist/pc/plan9.ini.blank10
-rw-r--r--sys/lib/dist/pc/plan9.ini.vmware20
-rw-r--r--sys/lib/dist/pc/proto175
-rw-r--r--sys/lib/dist/pc/sub/D00375322
-rw-r--r--sys/lib/dist/pc/sub/F00411624
-rw-r--r--sys/lib/dist/pc/sub/bind21
-rw-r--r--sys/lib/dist/pc/sub/bunzip24
-rw-r--r--sys/lib/dist/pc/sub/common123
-rw-r--r--sys/lib/dist/pc/sub/compactdb4
-rw-r--r--sys/lib/dist/pc/sub/local8
-rw-r--r--sys/lib/dist/pc/sub/mkdir3
-rw-r--r--sys/lib/dist/pc/sub/ndist16
-rw-r--r--sys/lib/dist/pc/sub/pci5
-rw-r--r--sys/lib/dist/pc/sub/pwd3
-rw-r--r--sys/lib/dist/pc/sub/ramfs4
-rw-r--r--sys/lib/dist/pc/sub/sleep8
-rw-r--r--sys/lib/dist/pc/sub/termrc121
-rw-r--r--sys/lib/dist/pc/sub/unmount3
-rw-r--r--sys/lib/dist/pc/sub/users7
-rw-r--r--sys/lib/dist/pc/sub/vmware10
-rw-r--r--sys/lib/dist/pc/subst/plan9.ini40
-rw-r--r--sys/src/cmd/cwfs/64xbit.h22
-rw-r--r--sys/src/cmd/cwfs/con.c7
-rw-r--r--sys/src/cmd/cwfs/config.c41
-rw-r--r--sys/src/cmd/cwfs/cwfs64/conf.c31
-rw-r--r--sys/src/cmd/cwfs/cwfs64/dat.h36
-rw-r--r--sys/src/cmd/cwfs/cwfs64/mkfile2
-rw-r--r--sys/src/cmd/cwfs/cwfs64x/conf.c31
-rw-r--r--sys/src/cmd/cwfs/cwfs64x/dat.h36
-rw-r--r--sys/src/cmd/cwfs/cwfs64x/mkfile2
-rw-r--r--sys/src/cmd/cwfs/iobuf.c34
-rw-r--r--sys/src/cmd/cwfs/main.c101
-rw-r--r--sys/src/cmd/cwfs/mkfile7
-rw-r--r--sys/src/cmd/cwfs/net.c358
-rw-r--r--sys/src/cmd/cwfs/pc.c2
-rw-r--r--sys/src/cmd/cwfs/portdat.h1
-rw-r--r--sys/src/cmd/cwfs/portfns.h6
-rw-r--r--sys/src/cmd/cwfs/portmkfile2
-rw-r--r--sys/src/cmd/cwfs/srv.c209
-rw-r--r--sys/src/cmd/cwfs/sub.c4
-rw-r--r--sys/src/cmd/cwfs/wren.c1
96 files changed, 548 insertions, 3584 deletions
diff --git a/sys/lib/dist/mkfile b/sys/lib/dist/mkfile
index 8f520bde3..8d9a130bf 100644
--- a/sys/lib/dist/mkfile
+++ b/sys/lib/dist/mkfile
@@ -5,6 +5,3 @@ cd:V: /tmp/9front.iso
bind pc/plan9.ini.cd /n/src9/cfg/plan9.ini
disk/mk9660 -9cj -B 386/9bootiso -p pc/cdproto -s /n/src9 -v 'Plan 9 Front' $target
unmount /n/src9/cfg/plan9.ini
-
-%.bz2: %
- bzip2 $prereq
diff --git a/sys/lib/dist/pc/emptyfile b/sys/lib/dist/pc/emptyfile
deleted file mode 100644
index e69de29bb..000000000
--- a/sys/lib/dist/pc/emptyfile
+++ /dev/null
diff --git a/sys/lib/dist/pc/glenda/bin/rc/riostart b/sys/lib/dist/pc/glenda/bin/rc/riostart
deleted file mode 100644
index cc5dfa8f2..000000000
--- a/sys/lib/dist/pc/glenda/bin/rc/riostart
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/rc
-
-window '0 0 100 100' games/clock
-window '80 80 610 360' /usr/glenda/lib/first.window
diff --git a/sys/lib/dist/pc/glenda/lib/first.window b/sys/lib/dist/pc/glenda/lib/first.window
deleted file mode 100644
index c4f264ef2..000000000
--- a/sys/lib/dist/pc/glenda/lib/first.window
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/rc
-echo -n readme > /dev/label
-echo 'You have completed the Installation Process.'
-
-cat<<'!'
-
-Welcome to Plan 9.
-This is rc.
-!
-
-exec rc
diff --git a/sys/lib/dist/pc/glenda/lib/profile b/sys/lib/dist/pc/glenda/lib/profile
deleted file mode 100644
index 7767e8a01..000000000
--- a/sys/lib/dist/pc/glenda/lib/profile
+++ /dev/null
@@ -1,16 +0,0 @@
-if(test -f '#m/mousectl') {
- echo -n accelerated > '#m/mousectl'
- echo -n 'res 3' > '#m/mousectl'
-}
-user=`{cat /dev/user}
-home=/usr/$user
-bind -a $home/bin/rc /bin
-bind -a $home/bin/$cputype /bin
-bind -c $home/tmp /tmp
-rio -si inst/gui
-echo
-echo
-echo 'failed to start rio. you can start a text-based installation by running'
-echo
-echo ' inst/textonly'
-echo
diff --git a/sys/lib/dist/pc/inst/bootfloppy b/sys/lib/dist/pc/inst/bootfloppy
deleted file mode 100644
index c9aebbc51..000000000
--- a/sys/lib/dist/pc/inst/bootfloppy
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/rc
-
-rfork e
-
-echo
-echo 'Insert a disk other than your installation boot disk'
-echo 'into your floppy drive; it will be erased to create'
-echo 'the boot floppy.'
-echo
-echo -n 'Press enter when ready.'
-read >/dev/null >[2]/dev/null
-
-if(~ $#adisk 1)
- ; # do nothing
-if not if(~ $#bootfile 0)
- adisk=/dev/fd0disk
-if not {
- switch($bootfile) {
- case sd*
- adisk=`{echo $bootfile | sed 's#(sd..).*#/dev/\1/data#'}
- case fd*
- adisk=`{echo $bootfile | sed 's#(fd.).*#/dev/\1disk#'}
- case *
- echo 'unknown bootfile '^$bootfile^'; mail 9trouble@plan9.bell-labs.com'
- exit oops
- }
-}
-
-if(! ~ `{ls -l $adisk | awk '{print $6}'} 1474560){
- echo 'Will not format non-floppy disk '^$"adisk. >[1=2]
- exit 'bad adisk'
-}
-
-log Formatting boot floppy
-if (test -e /n/newfs/386/9loadnousb)
- bind /n/newfs/386/9loadnousb /n/newfs/386/9load # cater to old bioses
-disk/format -b /386/pbs \
- -fd $adisk /n/newfs/386/9load /n/newfs/386/9pcdisk.gz \
- /tmp/plan9ini.bak
-x=$status
-
-if(~ $x ''){
- echo
- echo 'Done!'
- echo
-}
-exit $x
diff --git a/sys/lib/dist/pc/inst/bootplan9 b/sys/lib/dist/pc/inst/bootplan9
deleted file mode 100644
index 942c043b0..000000000
--- a/sys/lib/dist/pc/inst/bootplan9
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/rc
-
-first=`{ls -p '#S' | sed 1q}
-if(! ~ $first $disk) {
- echo 'warning: The plan 9 partition is not on the boot disk,'
- echo 'so making it the active partition will have no effect.'
-}
-
-p9offset=`{grep '^part 9fat ' /dev/$disk/ctl |awk '{print $3}'}
-if(! ~ $#p9offset 1) {
- echo 'could not find plan 9 partition.'
- echo 'cannot happen'
- exit bad
-}
-
-if(test $p9offset -gt 4128695) { # 65536 * 63 - 10
- echo
- echo 'Your Plan 9 partition is more than 2GB into your disk,'
- echo 'and the master boot records used by Windows 9x/ME'
- echo 'cannot access it (and thus cannot boot it).'
- echo
- echo 'You can install the Plan 9 master boot record, which can load'
- echo 'partitions far into the disk.'
- echo
-}
-
-echo 'If you use the Windows NT/2000/XP master boot record'
-echo 'or a master boot record from a Unix clone (e.g., LILO or'
-echo 'FreeBSD bootmgr), it is probably safe to continue using'
-echo 'that boot record rather than install the Plan 9 boot record.'
-echo
-prompt 'Install the Plan 9 master boot record' y n
-switch($rd) {
-case n
- ;
-case y
- disk/mbr -m /386/mbr /dev/$disk/data
-}
-
-log Setting Plan 9 partition active.
-p9part=`{disk/fdisk /dev/$disk/data >[2]/dev/null </dev/null |
- grep PLAN9 | sed 1q | sed 's/ *(p.) .*/\1/'}
-if(~ $#p9part 0){
- echo 'You have no Plan 9 partitions (How could this happen?)' >[1=2]
- exit 'no plan 9 partition found'
-}
-p9part=$p9part(1)
-{ echo 'A '^$p9part; echo w } | disk/fdisk /dev/$disk/data >[2]/dev/null >/dev/null
-x=$status
-if(~ $x '' '|'){
- echo
- echo 'The Plan 9 partition is now marked as active.'
- exit ''
-}
-exit $x
diff --git a/sys/lib/dist/pc/inst/bootsetup b/sys/lib/dist/pc/inst/bootsetup
deleted file mode 100644
index cc22fe6ee..000000000
--- a/sys/lib/dist/pc/inst/bootsetup
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/bin/rc
-
-# desc: create a boot floppy or configure hard disk to boot plan 9
-# prereq: copydist
-
-switch($1) {
-case go
- echo
- echo 'Initializing Plan 9 FAT configuration partition (9fat)'
- echo
-
- fat=(/dev/sd*/9fat)
- fat=$fat(1)
- disk=`{echo $fat | sed 's:/dev/::;s:/9fat::'}
- bootfs=`{echo $fs | sed 's:/dev/(sd..)/(.*):\1!\2:'}
- bootfat=`{echo $fs | sed 's:/dev/(sd..)/(.*):\1!9fat:'}
- if(! test -f /dev/$disk/9fat) {
- echo 'You have no 9fat partition. Can''t setup booting.'
- exit
- }
-
- if(! test -f /tmp/plan9.ini) {
- {
- sfs=`{echo $fs | sed 's;/dev;#S;'}
- if(~ $fstype fossil fossil+venti){
- echo bootfile'='$bootfat!9pcf
- echo 'bootargs=local!'^$sfs
- echo 'bootdisk=local!'^$sfs
- }
- if not {
- echo bootfile'='$bootfs!/386/9pcdisk
- echo 'bootdisk=local!'^$sfs
- }
- if(~ $fstype fossil+venti){
- venti=`{echo $ventiarena | sed 's;/dev;#S;'}
- echo venti'='^$venti
- }
- # sort -u avoids dups which could otherwise trigger
- # pointless boot menus.
- grep -v '(^\[)|menuitem|adisk|bootfile|bootdisk|bootargs|nobootprompt|mouseport|vgasize|monitor|cdboot' /tmp/plan9.orig |
- sort -u
- echo 'mouseport='^$mouseport
- echo 'monitor='^$monitor
- echo 'vgasize='^$vgasize
- } >/tmp/plan9.ini
- }
- if(! test -f /tmp/plan9ini.bak)
- cp /tmp/plan9.ini /tmp/plan9ini.bak
-
- need9fatformat=no
- if(! isfat /dev/$disk/9fat)
- need9fatformat=yes
- if not if(! mount -c /srv/dos /n/9fat /dev/$disk/9fat >[2]/dev/null)
- need9fatformat=yes
- if not if(! test -f /n/9fat/plan9.ini)
- need9fatformat=yes
-
- if (test -e /n/newfs/386/9loadnousb)
- bind /n/newfs/386/9loadnousb /n/newfs/386/9load # cater to old bioses
- if(~ $need9fatformat yes){
- log Initializing Plan 9 FAT partition.
- disk/format -r 2 -d -b /386/pbs \
- /dev/$disk/9fat /n/newfs/386/9load
- # silently install pbslba if the partition is way into the disk.
- # it''s our only hope. only need this for >8.5GB into the disk.
- # but...
- # there are so few non-LBA bioses out
- # there anymore that we'll do this even if we're only 2GB into
- # the disk. it's just not worth the headaches of dealing with
- # crappy bioses that don't address the whole 8.5GB properly
-
- 9fatoffset=`{grep '^part 9fat ' /dev/$disk/ctl | awk '{print $4}'}
- if(! ~ $#9fatoffset 1) {
- echo 'could not find plan 9 partition.'
- echo 'cannot happen'
- exit bad
- }
- if(test $9fatoffset -gt 2097152) # 2GB
- disk/format -b /386/pbslba /dev/$disk/9fat
-
- mount -c /srv/dos /n/9fat /dev/$disk/9fat
- }
-
- if(! test -f /n/9fat/4e){
- logprog cp /n/newfs/386/9load /n/9fat/9load
- logprog cp /n/newfs/386/9pcf /n/9fat/9pcf
- if(test -f /n/9fat/plan9.ini && ! test -f /n/9fat/plan9-3e.ini)
- logprog mv /n/9fat/plan9.ini /n/9fat/plan9-3e.ini
- if(test -f /n/9fat/9pcdisk && ! test -f /n/9fat/9pc3e)
- logprog mv /n/9fat/9pcdisk /n/9fat/9pc3e
-
- awk -f /bin/inst/mkini.awk >/n/9fat/plan9.ini
- >/n/9fat/4e
- }
-
- echo
- echo 'There are myriad ways to boot a Plan 9 system.'
- echo 'You can use any of the following.'
- echo
- echo ' floppy - create a boot floppy'
- echo ' plan9 - make the plan 9 disk partition the default for booting'
- echo ' win9x - add a plan 9 option to windows 9x boot menu'
- echo ' winnt - add a plan 9 option to windows nt/2000/xp boot manager'
- echo
- echo 'If you are upgrading an extant third edition installation and booting'
- echo 'from something other than a floppy, you needn''t run anything here.'
- echo 'Just type ctl-d.'
-
- oldbootsetup=$didbootsetup
- didbootsetup=1
- export didbootsetup
- prompt 'Enable boot method' floppy plan9 win9x winnt
-
- if(! boot$rd){
- didbootsetup=$oldbootsetup
- export didbootsetup
- }
-
-case checkdone
- xxxfat=(/dev/sd*/9fat)
- if(! isfat $xxxfat(1) || ! ~ $didbootsetup 1){
- bootsetup=ready
- export bootsetup
- }
-}
diff --git a/sys/lib/dist/pc/inst/bootwin9x b/sys/lib/dist/pc/inst/bootwin9x
deleted file mode 100644
index 68c2d1923..000000000
--- a/sys/lib/dist/pc/inst/bootwin9x
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/rc
-
-dosdisk=`{ls /dev/sd??/dos >[2]/dev/null | sed 1q | sed 's!.*/(.*)/dos!\1!'}
-if(~ $#dosdisk 0 || ! c: || ! test -f /n/c:/autoexec.bat || ! test -f /n/c:/config.sys) {
- echo 'Could not find autoexec.bat or config.sys on the first FAT disk.'
- exit bad
-}
-
-for (i in autoexec config msdos)
- if(test -f /n/c:/$i.p9) {
- echo 'A Plan 9 backup already exists; will not edit system files again.'
- exit bad
- }
-
-for (i in autoexec.bat config.sys msdos.sys)
- if(! cp /n/c:/$i /n/c:/^`{echo $i | sed 's/\.(bat|sys)$/.p9/'}) {
- echo 'Could not back up '^$i^'; will not continue.'
- exit bad
- }
-
-if(! test -d /n/c:/plan9 && ! mkdir /n/c:/plan9) {
- echo 'Could not create directory /n/c:/plan9.'
- exit bad
-}
-
-if(! cp /n/newfs/386/^(9load ld.com 9pcdisk) /tmp/plan9ini.bak /n/c:/plan9) {
- echo 'Could not copy Plan 9 boot files into /n/c:/plan9.'
- exit bad
-}
-
-chmod +w /n/c:/autoexec.bat /n/c:/config.sys /n/c:/msdos.sys
-
-if(grep -si 'Plan ?9' /n/c:/config.sys || grep -si 'Plan ?9' /n/c:/autoexec.bat) {
- echo 'Plan 9 entries already in config.sys or autoexec.bat.'
- echo 'Not changing them; refer to Plan 9 install documentation'
- echo 'to configure manually.'
- exit bad
-}
-
-if(! grep -si '\[menu\]' /n/c:/config.sys) {
- {
- echo 1
- echo i
- echo '[menu] '
- echo 'menuitem=windows, Windows '
- echo 'menudefault=windows '
- echo ' '
- echo '[common] '
- echo ' '
- echo '[windows] '
- echo .
- echo w
- echo q
- } | ed /n/c:/config.sys >/dev/null >[2]/dev/null
-}
-
-{
- echo 1
- echo '/\[[Mm][Ee][Nn][Uu]\]'
- echo '?^[Mm][Ee][Nn][Uu][Ii][Tt][Ee][Mm]='
- echo a
- echo 'menuitem=plan9, Plan 9 from Bell Labs '
- echo .
- echo '$'
- echo a
- echo ' '
- echo '[plan9] '
- echo ' '
- echo .
- echo w
- echo q
-} | ed /n/c:/config.sys >/dev/null>[2]/dev/null
-
-{
- echo 1
- echo i
- echo '@echo off '
- echo 'if %config%==plan9 goto plan9 '
- echo 'goto notplan9 '
- echo ':plan9 '
- echo 'plan9\ld '^$dosdisk^'!dos!plan9/9load '
- echo ':notplan9 '
- echo .
- echo w
- echo q
-} | ed /n/c:/autoexec.bat >/dev/null>[2]/dev/null
-
-fn zeroopt {
- if(grep -s '^'^$1^'=1' /n/c:/msdos.sys) {
- {
- echo '/^'^$1^'=1/s/=1/=0/'
- echo w
- echo q
- } | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
- }
- if not if (grep -s '^'^$1^'=0' /n/c:/msdos.sys)
- ;
- if not {
- {
- echo 1
- echo i
- echo '[Options] '
- echo 'Logo=0 '
- echo .
- echo w
- echo q
- } | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
- }
-}
-
-if(grep -si '^\[paths\]' /n/c:/msdos.sys){ # Windows 9x rather than DOS
- zeroopt Logo
-# zeroopt BootGUI
-}
-
-echo 'Plan 9 added to Windows 9X boot menu.'
-exit ''
diff --git a/sys/lib/dist/pc/inst/bootwinnt b/sys/lib/dist/pc/inst/bootwinnt
deleted file mode 100644
index ee92f5d76..000000000
--- a/sys/lib/dist/pc/inst/bootwinnt
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/rc
-
-if(! c: || ! test -f /n/c:/boot.ini) {
- echo 'Could not find NT''s boot.ini on the first FAT disk.'
- exit bad
-}
-
-if(test -f /n/c:/boot.p9) {
- echo 'A Plan 9 backup already exists; will not edit boot.ini again.'
- exit bad
-}
-
-if(! cp /n/c:/boot.ini /n/c:/boot.p9) {
- echo 'Could not back up boot.ini; will not continue.'
- exit bad
-}
-
-chmod +w /n/c:/boot.ini
-
-if(! grep -si '\[operating systems\]' /n/c:/boot.ini) {
- echo 'Could not parse boot.ini.'
- exit bad
-}
-
-if(grep -si 'Plan 9' /n/c:/boot.ini) {
- p9file=`{grep 'Plan 9' /n/c:/boot.ini | sed 1q | sed 's/=.*//'}
- if(! ~ $p9file [Cc]:'\'*) {
- echo 'Unexpected Plan 9 entry in boot.ini already; not continuing.'
- exit bad
- }
-}
-
-if not {
- p9file='c:\bootsect.p9'
- echo 'c:\bootsect.p9 = "Plan 9 from Bell Labs" ' >>/n/c:/boot.ini
-}
-
-p9file=/n/^`{echo $p9file | sed 's!\\!/!g'}
-
-
-if(dd -if /dev/$disk/plan9 -bs 512 -count 1 -of $p9file >/dev/null >[2]/dev/null) {
- echo 'Plan 9 added to Windows NT boot menu.'
- exit ''
-}
-
-echo 'Error copying Plan 9 boot sector to file.'
-exit bad
diff --git a/sys/lib/dist/pc/inst/configarch b/sys/lib/dist/pc/inst/configarch
deleted file mode 100644
index 61912bfdb..000000000
--- a/sys/lib/dist/pc/inst/configarch
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/rc
-
-# desc: set source of distribution archives
-# prereq: mountfs
-
-switch($1) {
-case go
- echo
- echo 'Will you be using a distribution archive on local media or the internet?'
- echo
-
- prompt 'Distribution is from' local internet
- archmedium=$rd
- export archmedium
-
- switch($archmedium) {
- case local
- exec configlocal go
- case internet
- exec configip go
- }
-
-case checkdone
- switch($#archmedium) {
- case 1
- switch($archmedium) {
- case local
- exec configlocal checkdone
- case internet
- exec configip checkdone
- case *
- configarch=notdone
- export configarch
- }
- case *
- configarch=notdone
- export configarch
- }
-}
-
diff --git a/sys/lib/dist/pc/inst/configdist b/sys/lib/dist/pc/inst/configdist
deleted file mode 100644
index 3e99bea0d..000000000
--- a/sys/lib/dist/pc/inst/configdist
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/rc
-
-# prereq: mountfs
-# desc: choose the source of the distribution archive
-
-switch($1){
-case checkdone
- if(! ~ $distisfrom net local){
- configdist=ready
- export configdist
- }
-
-case go
- echo 'Are you going to download the distribution'
- echo 'from the internet or do you have it on local media?'
- echo
- prompt -d local 'Distribution is from' local net
- distisfrom=$rd
- export distisfrom
-}
-
-
diff --git a/sys/lib/dist/pc/inst/configether b/sys/lib/dist/pc/inst/configether
deleted file mode 100644
index 0922ea339..000000000
--- a/sys/lib/dist/pc/inst/configether
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/rc
-
-# desc: configure your internet connection via an ethernet card
-
-switch($1) {
-case go
- echo
- echo 'Please choose a method for configuring your ethernet connection.'
- echo
- echo ' manual - specify IP address, network mask, gateway IP address'
- echo ' dhcp - use DHCP to automatically configure'
- echo
-
- prompt 'Configuration method' manual dhcp
- ethermethod=$rd
- gwaddr=xxx
- ipaddr=xxx
- ipmask=xxx
- switch($ethermethod){
- case dhcp
- echo
- echo 'Some ISPs, notably @HOME, require a host name passed with DHCP'
- echo 'requests. An example for @HOME would be "cc1018221-a". If your'
- echo 'ISP supplied you such a name, enter it.'
- echo
- prompt -d none 'host name'; dhcphost=$rd
- switch($dhcphost){
- case none
- dhcphost=();
- case *
- dhcphost=(-h $dhcphost)
- }
- export dhcphost
- case manual
- prompt 'ip address'; ipaddr=$rd
- prompt 'network mask'; ipmask=$rd
- prompt 'gateway address'; gwaddr=$rd
- export ipaddr ipmask gwaddr
- }
-
- export ethermethod gwaddr ipaddr ipmask dhcphost
- exec startether go
-
-case checkdone
- if(! ~ $ethermethod manual dhcp) {
- configether=notdone
- export configether
- }
- if(~ $ethermethod manual && ~ 0 $#ipaddr $#ipmask $#gwaddr) {
- configether=notdone
- export configether
- }
-}
diff --git a/sys/lib/dist/pc/inst/configfs b/sys/lib/dist/pc/inst/configfs
deleted file mode 100644
index 81f82897c..000000000
--- a/sys/lib/dist/pc/inst/configfs
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/rc
-
-# desc: choose the type of file system to install
-
-switch($1){
-case checkdone
- if(! ~ $fstype fossil fossil+venti){
- configfs=ready
- export configfs
- }
-
-case go
- echo 'You can install the following types of file systems:'
- echo
- echo ' fossil the new Plan9 fileserver'
- echo ' fossil+venti fossil + a archival dump server'
- echo
- prompt -d fossil 'File system' fossil fossil+venti
- fstype=$rd
- export fstype
-}
-
-
diff --git a/sys/lib/dist/pc/inst/configip b/sys/lib/dist/pc/inst/configip
deleted file mode 100644
index a7873c9f1..000000000
--- a/sys/lib/dist/pc/inst/configip
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/rc
-
-switch($1) {
-case go
-
- devs=''
- if(test -d '#l/ether0' >[2]/dev/null)
- devs=$devs^ether
- if(test -f '#t'/eia? >[2]/dev/null)
- devs=$devs^ppp
-
- switch($devs){
- case ''
- echo
- echo 'Could not find ethernet card nor serial port nor modem.'
- echo 'Please use a local copy of the distribution archive.'
- echo
- ifc=none
-
- case ppp
- echo
- echo 'No ethernet card was detected, but there is a serial port or modem.'
- echo 'We will configure PPP.'
- echo
- ifc=ppp
-
- case ether
- echo
- echo 'No serial port or modem detected, but there is an ethernet card.'
- echo 'We will configure the ethernet.'
- echo
- ifc=ether
-
- case etherppp
- echo
- echo 'You can connect to the internet via'
- echo 'a local ethernet or a dial-up PPP connection.'
- echo
- prompt 'Interface to use' ether ppp
- ifc=$rd
- }
-
- ipinterface=$ifc
- export ipinterface
-
- switch($ifc) {
- case ether
- exec configether go
- case ppp
- exec configppp go
- }
-
-case checkdone
- if(~ $#ipinterface 1)
- switch($ipinterface) {
- case ether
- exec configether checkdone
- case ppp
- exec configppp checkdone
- }
- configarch=notdone
- export configarch
-
-}
diff --git a/sys/lib/dist/pc/inst/confignet b/sys/lib/dist/pc/inst/confignet
deleted file mode 100644
index 182ed40cb..000000000
--- a/sys/lib/dist/pc/inst/confignet
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/rc
-
-# prereq: configdist
-# desc: configure the network to download the distribution
-
-switch($1){
-case checkready checkdone
- if(! ~ $distisfrom net){
- confignet=notdone
- export confignet
- exit
- }
- if(~ $distisfrom net && ~ $netisfrom ppp ether){
- x=config$netisfrom
- $x=done
- config$netisfrom checkdone
- confignet=$$x
- export confignet
- exit
- }
- confignet=ready
- export confignet
- exit
-
-case go
- devs=''
- if(test -d '#l/ether0' >[2]/dev/null)
- devs=$devs^ether
- if(test -f '#t'/eia? >[2]/dev/null)
- devs=$devs^ppp
-
- switch($devs){
- case ''
- echo
- echo 'Could not find ethernet card nor serial port nor modem.'
- echo 'Please use a local copy of the distribution archive.'
- echo
- netisfrom=none
-
- case ppp
- echo
- echo 'No ethernet card was detected, but there is a serial port or modem.'
- echo 'We will configure PPP.'
- echo
- netisfrom=ppp
-
- case ether
- echo
- echo 'No serial port or modem detected, but there is an ethernet card.'
- echo 'We will configure the ethernet.'
- echo
- netisfrom=ether
-
- case etherppp
- echo
- echo 'You can connect to the internet via'
- echo 'a local ethernet or a dial-up PPP connection.'
- echo
- prompt 'Interface to use' ether ppp
- netisfrom=$rd
- }
-
- export netisfrom
- if(~ $netisfrom ether ppp)
- exec config$netisfrom go
-}
-
diff --git a/sys/lib/dist/pc/inst/configppp b/sys/lib/dist/pc/inst/configppp
deleted file mode 100644
index 6bbffc4f0..000000000
--- a/sys/lib/dist/pc/inst/configppp
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/rc
-
-# desc: configure your internet connection via ppp over a modem
-
-switch($1) {
-case go
- devs=`{ls -p '#t/'eia? >[2]/dev/null}
- if(~ $#devs 0) {
- echo 'No serial port found; this can''t happen.' # because configip checks
- exit
- }
-
- # not going to use the mouse for PPP
- if(~ eia^$mouseport $devs)
- devs=`{echo $devs | sed 's/eia'^$mouseport^'//'}
-
- if(~ $#devs 0) {
- echo 'The only serial port you have is your mouse.'
- echo 'Cannot configure PPP.'
- exit
- }
-
- echo
- echo 'Please choose the serial port or modem to use to connect to your ISP.'
- echo
- for(i in $devs) {
- n=`{echo $i | sed 's/eia//'}
- n=`{hoc -e 1+$n}
- echo ' '^$i^'(Windows'' COM'^$n^')'
- }
- echo
- prompt 'Serial device' $devs
- pppdev=$rd
-
- echo
- echo 'Pick a baud rate for the PPP connection.'
- echo
- prompt -d 115200 'Baud rate'
- pppbaud=$rd
-
- echo
- echo 'You can specify your dialup phone number, username, and password,'
- echo 'or you can log in manually by typing the modem commands yourself.'
- echo
- prompt 'Dialing method' auto manual
- pppmethod=$rd
-
- switch($pppmethod){
- case auto
- prompt 'PPP phone number'; pppphone=$rd
- prompt 'PPP phone username'; pppuser=$rd
- prompt 'PPP phone password'; ppppasswd=$rd
- }
-
- export pppdev pppmethod pppphone ppppasswd pppuser pppbaud
- exec startppp go
-
-case checkdone
- if(! ~ $#pppmethod 1 || ! test -f /dev/$pppdev){
- configppp=notdone
- export configppp
- }
-}
diff --git a/sys/lib/dist/pc/inst/copydist b/sys/lib/dist/pc/inst/copydist
deleted file mode 100644
index 507d5602b..000000000
--- a/sys/lib/dist/pc/inst/copydist
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/rc
-
-# prereq: mountdist
-# desc: copy the distribution into the file system
-
-switch($1){
-case checkready
- if(! test -d /n/dist/dist/replica){
- copydist=notdone
- export copydist
- exit
- }
- if(test -f /n/newfs/dist/replica/didplan9){
- copydist=done
- export copydist
- exit
- }
-case go
- inst/watchfd applylog 0 `{ls -l /n/dist/dist/replica/plan9.log | awk '{print $6}'} 'Installing file system' &
- replica/pull -c / /rc/bin/inst/replcfg
- if(~ $status '' *conflicts || test -f /n/newfs/dist/replica/didplan9witherrors)
- >/n/newfs/dist/replica/didplan9
- if not
- >/n/newfs/dist/replica/didplan9witherrors
-
-case checkdone
- if(! test -f /n/newfs/dist/replica/didplan9){
- copydist=notdone
- export copydist
- }
-}
diff --git a/sys/lib/dist/pc/inst/defs b/sys/lib/dist/pc/inst/defs
deleted file mode 100644
index f9c9454c0..000000000
--- a/sys/lib/dist/pc/inst/defs
+++ /dev/null
@@ -1,162 +0,0 @@
-nl='
-'
-tab=' '
-if(~ $#distname 0)
- distname=plan9
-
-wctl=/dev/null
-if(test -w /dev/wctl)
- wctl=/dev/wctl
-
-fn log {
- echo $* >>/srv/log
-}
-
-fn logprog {
- echo '% '^$"* >>/srv/log
- $* >[2=1] >>/srv/log
-}
-
-fn sigint {
- # nothing happens
-}
-
-fn prompt {
- def=()
- what=()
- if(~ $1 -d && ! ~ $#* 1){
- def=$2
- shift
- shift
- }
-
- optstr=()
- if(~ $1 -w && ! ~ $#* 1){
- optstr=$2
- shift
- shift
- }
-
- pr=$1
- shift
-
- opts=($*)
- if(~ $#opts 0) {
- suf=' '
- }
- if not if(! ~ $#optstr 0) {
- if(~ $optstr '')
- suf=' '
- if not {
- pr=$pr^' ('^$"optstr^')'
- suf=''
- }
- }
- if not {
- pr=$pr^' ('^$1
- shift
- for(i)
- pr=$pr^', '^$i
- pr=$pr^')'
- suf=''
- }
-
- if(~ $#def 1)
- pr=$pr^$suf^'['^$def^']'
- if not
- pr=$pr^$suf^'[no default]'
-
- pr=$pr^': '
-
-
- okay=no
- while(~ $okay no) {
- echo -n current >$wctl
- echo -n top >$wctl
- echo -n $pr >[1=2]
- ifs='' {rd=`{read}}
- if(~ $#rd 0)
- exit notdone
- if(~ $rd !*){
- ifs='' {rd=`{echo $rd | sed 's/!//'}}
- echo $rd
- rc -c $rd
- echo !$status
- }
- if not{
- rd=`{echo $rd}
- if(~ $#rd 0 || ~ $rd '')
- rd=$def
-
- switch($#opts){
- case 0
- if(! ~ $rd '')
- okay=yes
- case *
- if(~ $rd $opts)
- okay=yes
- }
- }
- }
- echo -n $rd >/env/rd # just in case
-}
-
-fn desc {
- echo -n ' '^$1^' - '
- grep '^# desc: ' $1 | sed 's/# desc: //'
-}
-
-fn prereq {
- grep '^# prereq:' $1 | sed 's/# prereq://'
-}
-
-fn mustdo {
- echo You must `{grep '^# mustdo:' $1 | sed 's/# mustdo://'}
-}
-
-# there's no easy way to pass shell variables
-# up from children to parents; the parents have
-# to be coerced into noticing that the environment
-# changed, even when in the same environment group.
-#
-# instead, we explicitly export the variables we want
-# to percolate, and the parent calls coherence to reread
-# the variables.
-#
-# we just append to the vars file, so that later exports
-# override earlier ones; when we call coherence,
-# the duplicates are thrown out.
-
-fn export {
- null=()
- nonnull=()
- for(i in $*){
- if(~ $#$i 0)
- null=($null $i)
- if not
- nonnull=($nonnull $i)
- }
- if(! ~ $#nonnull 0)
- whatis $nonnull |grep -v '^\./' >>/tmp/vars >[2]/dev/null
- for(i in $null)
- echo $i^'=()' >>/tmp/vars
-}
-
-fn coherence {
- if(test -f /tmp/vars) {
- grep '^[a-z]*=' /tmp/vars >/tmp/vars2
- v=`{sed 's/^([a-z]*)=.*/\1/' /tmp/vars2 | sort -u}
- . /tmp/vars2
- rm /tmp/vars2
- rm /tmp/vars
- export $v
- }
-}
-
-# ip device stats
-
-fn isipdevup {
- grep -s $1 /net/ipifc/*/status >[2]/dev/null
-}
-
-
diff --git a/sys/lib/dist/pc/inst/download b/sys/lib/dist/pc/inst/download
deleted file mode 100644
index 70d7f5ba7..000000000
--- a/sys/lib/dist/pc/inst/download
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/rc
-
-# prereq: mountfs
-# desc: download or continue to download the distribution archives
-
-switch($1) {
-case checkready
- devs=(`{cat /net/ipifc/*/status >[2]/dev/null |
- grep -v '127\.0\.0\.1' |
- sed 's/ .*//'})
- if(~ $#devs 0) {
- download=notdone
- export download
- }
- if(~ $mountdist done){
- download=notdone
- export download
- }
-
-case go
- if(! test -f /srv/cs) {
- log starting cs, dns
- logprog ndb/cs >>/srv/log >[2=1]
- logprog ndb/dns -r >>/srv/log >[2=1]
- }
- if(! test -f /net/cs) {
- logprog mount -a /srv/cs /net
- logprog mount -a /srv/dns /net
- }
-
- # BUG make restartable
- echo 'Downloading distribution package...'
- baropt='-w 145,129,445,168'
- if(~ $textinst 1)
- baropt=-t
- if(! hget -vo /n/newfs/dist/_plan9.iso.bz2 $installurl/plan9.iso.bz2 |[2] bargraph $baropt 'downloading '^plan9.iso.bz2)
- exit
- mv /n/newfs/dist/_plan9.iso.bz2 /n/newfs/dist/plan9.iso.bz2
- if(~ $fstype fossil){
- echo fsys main sync >>/srv/fscons
- }
-
- echo 'The distribution is downloaded.'
-
- srvmedia=()
- mountmedia=(mount /srv/fossil /n/distmedia)
- distmediadir=/dist
- export distmediadir mountmedia distmedia
-
-case checkdone
- if(! test -f /n/newfs/dist/plan9.iso.bz2) {
- download=notdone
- export download
- }
-}
-
diff --git a/sys/lib/dist/pc/inst/finish b/sys/lib/dist/pc/inst/finish
deleted file mode 100644
index e616e64e1..000000000
--- a/sys/lib/dist/pc/inst/finish
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/rc
-
-# desc: finish the installation and reboot
-# prereq: bootsetup
-# mustdo:
-
-switch($1) {
-case checkdone
- finish=ready
- export finish
-
-case go
- if(~ $cdboot yes){
- echo 'Congratulations; you''ve completed the install.'
- echo
- halt
- }
- stop go finished
-}
diff --git a/sys/lib/dist/pc/inst/fmtfossil b/sys/lib/dist/pc/inst/fmtfossil
deleted file mode 100644
index 98bf33fc1..000000000
--- a/sys/lib/dist/pc/inst/fmtfossil
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/rc
-
-# desc: initialize disks for a fossil server
-# prereq: configfs
-
-switch($1){
-case checkready checkdone
- if(! ~ $fstype fossil+venti fossil){
- fmtfossil=notdone
- export fmtfossil
- exit
- }
- ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null}
- if(~ $#ff 0){
- fmtfossil=notdone
- export fmtfossil
- exit
- }
- gg=()
- for(f in $ff)
- if(isfossil $f)
- gg=($gg $f)
- if(~ $#gg 0){
- fmtfossil=ready
- export fmtfossil
- exit
- }
- fmtfossil=done
- export fmtfossil
- exit
-
-case go
- ff=`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null}
- if(~ $#ff 0){
- echo 'You need to create a partition or partitions to hold the Fossil write cache.'
- echo 'The partition name must begin with "fossil".'
- echo
- fmtfossil=notdone
- export fmtfossil
- exit
- }
- default=()
- if(~ $#ff 1){
- default=(-d $ff)
- }
- echo You have the following fossil partitions.
- echo
- prompt $default 'Fossil partition to format' $ff
- f=$rd
-
- do=yes
- if(isfossil $f){
- echo $f appears to already be formatted as Fossil file system.
- echo Do you really want to reformat it?
- echo
- prompt -d no 'Reformat '$f yes no
- do=$rd
- }
- if(~ $do yes){
- fossil/flfmt -y $f
- n=`{cat /dev/swap | grep ' user' | sed 's/^[0-9]+\/([0-9]+) .*/\1/'}
- if(test $n -gt 32768)
- m=3000 # if have at least 128 user MB, use 24MB for fossil
- if not if(test $n -gt 16384)
- m=1500 # 64 user MB => 12MB for fossil
- if not if(test $n -gt 8192)
- m=750 # 32 user MB => 6MB for fossil
- if not
- m=256 # 2MB for fossil (this will be slow)
-
- # if we're using a venti in the back, take hourly snapshots
- # that retire after three days, in addition to the daily dumps at 5am
- if(~ $fstype fossil+venti){
- v=''
- snap='fsys main snaptime -s 60 -a 0500 -t 2880'
- }
- # otherwise, take the daily dumps but nothing else --
- # we can't retire snapshots unless dumps are being archived
- if not{
- v='-V'
- snap=''
- }
- echo \
-'fsys main config '^$f^'
-fsys main open '^$v^' -c '^$m^'
-'^$snap^'
-' | fossil/conf -w $f
- }
-
- echo Done.
-}
diff --git a/sys/lib/dist/pc/inst/fmtventi b/sys/lib/dist/pc/inst/fmtventi
deleted file mode 100644
index db79440ac..000000000
--- a/sys/lib/dist/pc/inst/fmtventi
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/rc
-
-# desc: initialize disks for a venti server
-# prereq: mountdist
-
-switch($1){
-case checkready checkdone
- if(! ~ $fstype fossil+venti){
- fmtventi=notdone
- export fmtventi
- exit
- }
- if(! test -e /bin/venti/fmtarenas || ! test -e /bin/venti/fmtisect || ! test -e /bin/venti/fmtindex){
- bind -a /n/dist/386/bin/venti /bin/venti
- if(! test -e /bin/venti/fmtarenas || ! test -e /bin/venti/fmtisect || ! test -e /bin/venti/fmtindex){
- fmtventi=notdone
- export fmtventi
- exit
- }
- }
- ff=`{ls /dev/sd*/arenas* /dev/fs/arenas* >[2]/dev/null}
- if(~ $#ff 0){
- fmtventi=notdone
- export fmtventi
- exit
- }
- gg=()
- for(f in $ff)
- if(isventi $f)
- gg=($gg $f)
- if(~ $#gg 0){
- fmtventi=ready
- export fmtventi
- exit
- }
-
- ventiarena=$gg(1)
- export ventiarena
-
- fmtventi=done
- export fmtventi
- exit
-
-case go
- ff=`{ls /dev/sd*/arenas* /dev/fs/arenas* >[2]/dev/null}
- if(~ $#ff 0){
- echo 'You need to create a partition or partitions to hold the Venti arenas.'
- echo 'The arena partition names must begin with "arenas".'
- echo
- fmtventi=notdone
- export fmtventi
- exit
- }
- default=(-d $"ff)
- if(! ~ $#ventiarena 0){
- default=(-d $"ventiarena)
- }
- echo You have the following Venti arena partitions.
- ls -l $ff
- echo
-
- prompt $default 'Venti arena partitions to use'
- aa=`{echo $rd}
- bad=no
- for(a in $aa){
- if(! ~ $a $ff){
- echo 'Bad venti arena partition' $a
- fmtventi=notdone
- export fmtventi
- exit
- }
- }
- ventiarena=$aa
- export ventiarena
-
- gg=`{ls /dev/sd*/isect* /dev/fs/isect* >[2]/dev/null}
- if(~ $#gg 0){
- echo 'You need to create a partition or partitions to hold the Venti indices.'
- echo 'The index partition names must begin with "isect".'
- echo
- fmtventi=notdone
- export fmtventi
- exit
- }
- default=(-d $"gg)
- if(! ~ $#ventiindex 0){
- default=(-d $"ventiindex)
- }
-
- echo You have the following Venti index partitions.
- ls -l $gg
- echo
-
- prompt $default 'Venti index partitions to use'
- aa=`{echo $rd}
- bad=no
- for(a in $aa){
- if(! ~ $a $gg){
- echo 'Bad venti index partition' $a
- fmtventi=notdone
- export fmtventi
- exit
- }
- }
- ventiindex=$aa
- export ventiindex
-
- n=-1
- fmta=()
- for(a in $ventiarena){
- do=yes
- n=`{hoc -e 1+$n}
- if(isventiarenas $a){
- echo File $a is already formatted as a Venti arenas partition.
- prompt -d no 'Reformat '$a yes no
- do=$rd
- }
- if(~ $do yes)
- fmta=($fmta arenas$n:$a)
- }
-
- n=-1
- fmti=()
- for(a in $ventiindex){
- do=yes
- n=`{hoc -e 1+$n}
- if(isventiisect $a){
- echo File $a is already formatted as a Venti index section.
- prompt -d no 'Reformat '$a yes no
- do=$rd
- }
- if(~ $do yes)
- fmti=($fmti isect$n:$a)
- }
-
- echo Formatting Venti arenas and indices (this takes a while).
- # do each disk in parallel
- echo good >/tmp/fmt
- dd=()
- for(a in $fmta $fmti){
- d=`{echo $a | sed 's!.*:(/.*/).*!\1!'}
- if(! ~ $d $dd)
- dd=($dd $d)
- }
- for(d in $dd){
- {
- for(a in $fmta){
- i=`{echo $a | sed 's!(.*):(/.*/)(.*)!\1 \2 \2\3!'}
- if(~ $i(2) $d){
- echo $i(3) ...
- venti/fmtarenas $i(1) $i(3) || echo bad >/tmp/fmt
- echo done with $i(3)
- }
- }
- for(a in $fmti){
- i=`{echo $a | sed 's!(.*):(/.*/)(.*)!\1 \2 \2\3!'}
- if(~ $i(2) $d){
- echo $i(3) ...
- venti/fmtisect $i(1) $i(3) || echo bad >/tmp/fmt
- echo done with $i(3)
- }
- }
- } &
- }
- wait
- if(~ bad `{cat /tmp/fmt}){
- echo There were errors formatting the indices and arenas.
- fmtventi=ready
- export fmtventi
- exit errors
- }
-
- echo Done formatting Venti arenas and indices.
-
- v=$ventiarena(1)
- echo Storing Venti config on $v...
- {
- echo index main
- for(i in $ventiindex)
- echo isect $i
- for(a in $ventiarena)
- echo arenas $a
- } | venti/conf -w $v
-
- echo Initializing index...
- venti/fmtindex $v
-
- echo Done with Venti!
-}
-
diff --git a/sys/lib/dist/pc/inst/gui b/sys/lib/dist/pc/inst/gui
deleted file mode 100644
index afb0981d0..000000000
--- a/sys/lib/dist/pc/inst/gui
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/rc
-
-cd /bin/inst
-echo blanktime 0 >/dev/vgactl
-. defs
-
-startwin 640 480
diff --git a/sys/lib/dist/pc/inst/halt b/sys/lib/dist/pc/inst/halt
deleted file mode 100644
index 4554359f0..000000000
--- a/sys/lib/dist/pc/inst/halt
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/rc
-
-echo -n 'Halting file systems...'
-
-if(ps | grep -s ' venti$')
- venti/sync -h tcp!127.0.0.1!17034
-if(ps | grep -s ' fossil$'){
- echo fsys all halt >>/srv/fscons
- slay fossil|rc
-}
-
-echo done
-echo
-echo Remember to take the install disk out of the drive.
-echo Feel free to turn off your computer.
-while()
- sleep 3600
-
diff --git a/sys/lib/dist/pc/inst/hasmbr b/sys/lib/dist/pc/inst/hasmbr
deleted file mode 100644
index 1adaa0a5b..000000000
--- a/sys/lib/dist/pc/inst/hasmbr
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1) {
- echo 'usage: hasmbr /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-x=`{xd -b $1 | sed -n '32p;32q'}
-if(~ $x(16) 55 && ~ $x(17) aa)
- exit ''
-exit nope
-
diff --git a/sys/lib/dist/pc/inst/hdrs b/sys/lib/dist/pc/inst/hdrs
deleted file mode 100644
index 0b934999f..000000000
--- a/sys/lib/dist/pc/inst/hdrs
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1) {
- echo 'usage: hdrs file.9gz' >[1=2]
- exit usage
-}
-gunzip < $1 | disk/mkext -h
diff --git a/sys/lib/dist/pc/inst/is9660 b/sys/lib/dist/pc/inst/is9660
deleted file mode 100644
index 1d138e55e..000000000
--- a/sys/lib/dist/pc/inst/is9660
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/rc
-
-# 0000000 01 C D 0 0 1 01 00 P L A N 9
-
-if(! ~ $#* 1) {
- echo 'usage: is9660 /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-ifs=$nl {id=`{dd -if $1 -bs 2048 -skip 16>[2]/dev/null | xd -c | sed 1q | sed 's/.........(....................).*/\1/'}}
-~ $id '01 C D 0 0 1 01'
-exit $status
diff --git a/sys/lib/dist/pc/inst/isext2 b/sys/lib/dist/pc/inst/isext2
deleted file mode 100644
index b79265f6a..000000000
--- a/sys/lib/dist/pc/inst/isext2
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1) {
- echo 'usage: isext2 /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-cmp -s <{dd -if $1 -bs 1 -count 2 -skip 1080 >[2]/dev/null | xd -b |sed 1q} \
- <{echo '0000000 53 ef'}
-
-exit $status
diff --git a/sys/lib/dist/pc/inst/isfat b/sys/lib/dist/pc/inst/isfat
deleted file mode 100644
index 860278571..000000000
--- a/sys/lib/dist/pc/inst/isfat
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/rc
-
-rfork e
-
-# 0000000 eb 3c 90 P l a n 9 . 0 0 00 02 04 02 00
-# 0000010 02 00 02 02 P f8 14 00 ? 00 ff 00 ~ 04 } 00
-# 0000020 02 P 00 00 80 00 ) a8 04 } 00 C Y L I N
-# 0000030 D R I C A L F A T 1 6 fa 8c
-
-if(! ~ $#* 1) {
- echo 'usage: isfat /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-arg=$1
-fn fat {
- cmp -s <{dd -if $arg -bs 1 -count 3 -skip $1 >[2]/dev/null} <{echo -n FAT}
-}
-
-fat 54 || fat 82
-exit $status
-
diff --git a/sys/lib/dist/pc/inst/isfossil b/sys/lib/dist/pc/inst/isfossil
deleted file mode 100644
index 21c7d3e29..000000000
--- a/sys/lib/dist/pc/inst/isfossil
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1){
- echo 'usage: isfossil /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-arg=$1
-if(! cmp -s <{dd -quiet 1 -if $arg -bs 1024 -iseek 127 |
- dd -quiet 1 -bs 14 -count 1} <{echo 'fossil config'})
- exit noconfig
-if(! cmp -s <{dd -quiet 1 -if $arg -bs 1024 -iseek 128 |
- dd -quiet 1 -bs 4 -count 1 | xd -b | sed 1q} <{echo '0000000 37 76 ae 89'})
- exit notwritebuffer
-exit 0
-
diff --git a/sys/lib/dist/pc/inst/isventi b/sys/lib/dist/pc/inst/isventi
deleted file mode 100644
index 555c27a7f..000000000
--- a/sys/lib/dist/pc/inst/isventi
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1){
- echo 'usage: isventi /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-arg=$1
-if(! cmp -s <{dd -quiet 1 -if $arg -bs 1024 -iseek 248 |
- dd -quiet 1 -bs 13 -count 1} <{echo 'venti config'})
- exit noconfig
-exit 0
-
diff --git a/sys/lib/dist/pc/inst/isventiarenas b/sys/lib/dist/pc/inst/isventiarenas
deleted file mode 100644
index dfce274de..000000000
--- a/sys/lib/dist/pc/inst/isventiarenas
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1){
- echo 'usage: isventiarenas /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-arg=$1
-if(! cmp -s <{dd -quiet 1 -if $arg -bs 1024 -iseek 256 |
- dd -quiet 1 -bs 4 -count 1 | xd -b | sed 1q} <{echo '0000000 a9 e4 a5 e7'})
- exit notarenas
-exit 0
-
diff --git a/sys/lib/dist/pc/inst/isventiisect b/sys/lib/dist/pc/inst/isventiisect
deleted file mode 100644
index 0b11c9c4e..000000000
--- a/sys/lib/dist/pc/inst/isventiisect
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1){
- echo 'usage: isventiisect /dev/sdC0/part' >[1=2]
- exit usage
-}
-
-arg=$1
-if(! cmp -s <{dd -quiet 1 -if $arg -bs 1024 -iseek 256 |
- dd -quiet 1 -bs 4 -count 1 | xd -b | sed 1q} <{echo '0000000 d1 5c 5e c7'})
- exit notisect
-exit 0
-
diff --git a/sys/lib/dist/pc/inst/main b/sys/lib/dist/pc/inst/main
deleted file mode 100644
index 25ac0d168..000000000
--- a/sys/lib/dist/pc/inst/main
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/rc
-
-. defs
-
-while()
-{
-div=--------------------------------------
-echo
-echo $div
-echo
-echo -n 'Preparing menu...'
-
-# must be topologically sorted (by prereq)
-tasks=(\
- configfs\
- partdisk prepdisk\
- fmtfossil\
- mountfs\
- configdist\
- confignet\
- mountdist\
- fmtventi\
- download\
- copydist\
- bootsetup finish stop\
- stopether stopppp\
-)
-# startether startppp stopether stopppp download\
-
-# these don't show up in the menu but still matter
-pseudotasks=(configip havefiles etherup etherdown pppup pppdown)
-
-for(i in $tasks $pseudotasks)
- $i=notdone
-
-coherence
-
-for(i in $tasks $pseudotasks)
- if(~ $#$i 0)
- $i=notdone
-
-#
-# we believe the environment about what is done
-# only if we've confirmed it. since the tasks list is sorted so that
-# prereqs of xxx come before xxx, it's okay to assume xxx
-# is done until proven otherwise -- either a prereq or checkdone
-# will say so.
-#
-
-done=()
-ready=()
-rm /env/done
-rm /env/ready
-for(i in $tasks) {
- $i=done
- for(j in `{prereq $i})
- if(! ~ $$j done)
- $i=notdone
- if(~ $$i done) {
- export $i
- $i checkdone
- $i=`{grep '^'$i^'=' /tmp/vars | sed -n '$p' | sed 's/.*=//'}
- }
-
- if(~ $$i notdone ready) {
- okay=yes
- for(j in `{prereq $i})
- if(! ~ $$j done)
- okay=no
- switch($okay){
- case yes
- $i=ready
- export $i
- $i checkready
- $i=`{grep '^'$i^'=' /tmp/vars | sed -n '$p' | sed 's/.*=//'}
- case no
- $i=notdone
- }
- }
-
- if(~ $$i done ready)
- $$i=($$$i $i) # rc can be just as complicated as perl!
-}
-
-export $tasks $pseudotasks done ready
-coherence
-echo
-
-if(! ~ $#done 0) {
- echo 'The following tasks are done: '
- for(i in $done)
- desc $i
- echo
-}
-
-echo 'The following unfinished tasks are ready to be done:'
-for(i in $ready)
- desc $i
-echo
-
-if(~ $#ready 0) {
- echo hey you finished everything! not supposed to happen.
- sleep 100
- exit
-}
-
-prompt -d $ready(1) -w '' 'Task to do' $done $ready
-
-echo
-echo $div
-
-$rd go
-$rd=done # if it's not, the check will figure that out
-export $rd
-}
diff --git a/sys/lib/dist/pc/inst/mainloop b/sys/lib/dist/pc/inst/mainloop
deleted file mode 100644
index 94d58efc4..000000000
--- a/sys/lib/dist/pc/inst/mainloop
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/rc
-
-sleep 86400 &
-cd /bin/inst
-. defs
-fn sigint { }
-
-coherence
-
-disks=`{ls /dev/sd*/data >[2]/dev/null | sed 's!/dev/(sd..)/data!\1!'}
-for (i in /dev/sd*/data)
- if(test -f $i)
- disk/fdisk -p $i>`{basename -d $i}^/ctl >[2]/dev/null
-for(i in /dev/sd*/plan9*)
- if(test -f $i)
- disk/prep -p $i >`{basename -d $i}^/ctl >[2]/dev/null
-
-# we run this while() here so that ctl-d won''t exit from us -- it''ll only exit main!
-# main contains a while() loop too, to avoid the hit of
-# continually reexecing from here.
-
-while()
- main
diff --git a/sys/lib/dist/pc/inst/mkini.awk b/sys/lib/dist/pc/inst/mkini.awk
deleted file mode 100644
index 7ddf6a80f..000000000
--- a/sys/lib/dist/pc/inst/mkini.awk
+++ /dev/null
@@ -1,59 +0,0 @@
-BEGIN{
- m = "common"
- haveold = 0;
- while(getline <"/n/9fat/plan9-3e.ini" > 0){
- haveold = 1
- if($0 ~ /\[.*\]/){
- m = substr($0, 2, length($0)-2)
- continue
- }
- if(m=="menu" && $0 ~ /^menuitem=4e,/)
- continue
- a[m] = a[m] $0 "\n"
- }
-
- a["4e"] = ""
- while(getline <"/tmp/plan9.ini" > 0)
- a["4e"] = a["4e"] $0 "\n"
-
- if(a["menu"] == "" && haveold){
- a["menu"] = "menuitem=3e, Plan 9 Third Edition\n"
- a["3e"] = ""
- }
-
- if(a["common"] != ""){
- for(i in a)
- if(i != "4e" && i != "common" && i != "menu")
- a[i] = a["common"] a[i]
- delete a["common"]
- }
-
- bootdisk4e=ENVIRON["fs"]
- gsub("/dev/", "boot(args|disk|file)=local!#S/", bootdisk4e)
-
- if(!haveold)
- print a["4e"]
- else{
- print "[menu]"
- print "menuitem=4e, Plan 9 Fourth Edition"
- print a["menu"]
- print ""
- delete a["menu"]
-
- print "[4e]"
- print a["4e"]
- print ""
- delete a["4e"]
-
- for(i in a){
- # BUG: if rootdir is already there we should rewrite it
- # sometimes into /3e/whatwasthere
- if(a[i] ~ bootdisk4e && !(a[i] ~ /rootdir=/))
- a[i] = "rootdir=/root/3e\n" a[i]
- print "[" i "]"
- gsub(/9fat!9pcdisk/, "9fat!9pc3e", a[i])
- print a[i]
- print ""
- }
- }
-}
diff --git a/sys/lib/dist/pc/inst/mountdist b/sys/lib/dist/pc/inst/mountdist
deleted file mode 100644
index 8d171a1cc..000000000
--- a/sys/lib/dist/pc/inst/mountdist
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/bin/rc
-
-# prereq: mountfs configdist
-# desc: locate and mount the distribution
-
-fn domount{
- if(! test -e $mountmedia(2))
- logprog $srvmedia
- unmount /n/distmedia >[2]/dev/null
- logprog $mountmedia
-}
-
-fn exitifdone{
- if(test -f /n/dist/dist/replica/plan9.db)
- exit
-}
-
-fn trycdimage{
- if(test -f $1){
- rm -f /srv/9660.dist
- unmount /n/dist
- 9660srv 9660.dist >[2]/dev/null
- logprog mount /srv/9660.dist /n/dist $1
- exitifdone
- mountdist=notdone
- export mountdist
- exit notdone
- }
-}
-
-fn trycdimagebz2 {
- if(test -f $1){
- echo -n 'bunzip2 < '^$1^' >/n/newfs/dist/plan9.iso'
- bunzip2 < $1 >/n/newfs/dist/_plan9.iso &&
- mv /n/newfs/dist/_plan9.iso /n/newfs/dist/plan9.iso
- echo
- trycdimage /n/newfs/dist/plan9.iso
- mountdist=notdone
- export mountdist
- exit notdone
- }
-}
-
-fn havedist {
- test -f $1/dist/replica/plan9.db ||
- test -f $1/plan9.iso ||
- test -f $1/plan9.iso.bz2
-}
-
-switch($1){
-case checkready
- if(! ~ $distisfrom local && ! ~ $download done){
- mountdist=notdone
- export mountdist
- }
- if(! ~ $#mountmedia 0 1){
- if(domount){
- mountdist=done
- export mountdist
- if(mountdist checkdone)
- exit
- }
- srvmedia=()
- mountmedia=()
- mountdist=ready
- export srvmedia mountmedia mountdist
- }
-
-case go
- fat=()
- ext2=()
- x9660=()
- fossil=()
-
- echo Please wait... Scanning storage devices...
-
- parts=`{ls /dev/sd??/* >[2]/dev/null | grep -v '/(plan9.*|ctl|log|raw)$'}
- for (i in $parts) {
- echo -n ' '^$i
- n=`{echo $i | sed 's;/;_;g'}
- if(! test -f /tmp/localpart.$n)
- dd -if $i -bs 2048 -count 32 -of /tmp/localpart.$n >[2]/dev/null
- if(isfat /tmp/localpart.$n)
- fat=($fat $i)
- if(isext2 /tmp/localpart.$n)
- ext2=($ext2 $i)
- if(is9660 /tmp/localpart.$n)
- x9660=($x9660 $i)
- if(isfossil $i)
- fossil=($fossil $i)
- echo
- }
- echo
- echo The following storage media were detected.
- echo Choose the one containing the distribution.
- echo
- for(i in $parts){
- switch($i){
- case $fat
- echo ' '^$i^' (microsoft fat)'
- case $ext2
- echo ' '^$i^' (linux ext2)'
- case $x9660
- echo ' '^$i^' (iso9660 cdrom)'
- case $fossil
- echo ' '^$i^' (plan9 fossil)'
- }
- }
- echo
-
- mountstatus=x
- while(! ~ $mountstatus ''){
- prompt -w '' 'Distribution disk' $fat $x9660 $fossil
- disk=$rd
-
- srvmedia=()
- mountmedia=()
- switch($disk){
- case $fs
- mountmedia=(bind /n/newfs /n/distmedia)
- case $fat
- srvmedia=(dossrv)
- mountmedia=(mount /srv/dos /n/distmedia $disk)
- case $ext2
- srvmedia=(ext2srv -r)
- mountmedia=(mount /srv/ext2 /n/distmedia $disk)
- case $x9660
- srvmedia=(9660srv)
- mountmedia=(mount /srv/9660 /n/distmedia $disk)
- case $fossil
- echo 'srv fossil.mountdist' > /tmp/fossi.conf
- echo 'fsys main config '^$disk >> /tmp/fossil.conf
- echo 'fsys main open -AWVP' >> /tmp/fossil.conf
- echo 'fsys main' >> /tmp/fossil.conf
- srvmedia=(fossil/fossil -c '. /tmp/fossil.conf')
- mountmedia=(mount /srv/fossil.mountdist /n/distmedia)
- case *
- echo Unknown disk type '(cannot happen)'
- exit oops
- }
- export srvmedia mountmedia
- domount
- mountstatus=$status
- }
-
- first=yes
- dir=/
- while(~ $first yes || ! havedist /n/distmedia/$dir){
- if(~ $first yes){
- echo
- echo Which directory contains the distribution?
- echo 'Any of the following will suffice (in order of preference):'
- echo ' - the root directory of the cd image'
- echo ' - the directory containing plan9.iso'
- echo ' - the directory containing plan9.iso.bz2'
- echo 'Typing `browse'' will put you in a shell that you can use to'
- echo 'look for the directory.'
- echo
- first=no
- }
-
- prompt -d browse 'Location of archives'
- dir=$rd
- if(~ $dir browse){
- echo This is a simple shell. Commands are:
- echo ' cd directory - change to directory'
- echo ' lc - list contents of current directory'
- echo ' exit - exit shell'
- echo
- echo 'Move to the directory containing the distribution'
- echo 'and then exit.'
- echo
- oifs=$ifs
- ifs=$nl
- dir=`{cdsh -r /n/distmedia}
- ifs=$oifs
- }
- if(~ $#dir 0)
- dir=safdsfdsfdsf
- if(! ~ $#dir 1)
- dir=$"dir
- if(! havedist /n/distmedia/$dir)
- echo 'No distribution found in '^`{cleanname /$dir}
- }
-
- distmediadir=$dir
- export distmediadir
-
-case checkdone
- if(! ~ $#distmediadir 1){
- mountdist=notdone
- export mountdist
- exit notdone
- }
- if(! havedist /n/distmedia/$distmediadir && ! havedist /n/newfs/dist){
- mountdist=notdone
- export mountdist
- exit notdone
- }
-
- exitifdone
-
- if(test -f /n/distmedia/$distmediadir/dist/replica/plan9.db){
- bind /n/distmedia/$distmediadir /n/dist
- bind -a /n/dist/386/bin /bin
- bind -a /n/dist/rc/bin /bin
- exitifdone
- mountdist=notdone
- export mountdist
- exit notdone
- }
-
- trycdimage /n/distmedia/$distmediadir/plan9.iso
- trycdimage /n/newfs/dist/plan9.iso
-
- trycdimagebz2 /n/distmedia/$distmediadir/plan9.iso.bz2
- trycdimagebz2 /n/newfs/dist/plan9.iso.bz2
-
- mountdist=notdone
- export mountdist
- exit notdone
-}
diff --git a/sys/lib/dist/pc/inst/mountfossil b/sys/lib/dist/pc/inst/mountfossil
deleted file mode 100644
index e98a3f48c..000000000
--- a/sys/lib/dist/pc/inst/mountfossil
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/rc
-
-switch($1){
-case checkready checkdone
- if(! ~ $fmtfossil done){
- mountfs=notdone
- export mountfs
- exit
- }
- if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*){
- mountfs=notdone
- export mountfs
- exit
- }
- if(! ~ $#fossil 1 || ! test -f $fossil){
- mountfs=ready
- export mountfs
- exit
- }
- if(! ps | grep -s ' fossil$'){
- echo 'srv -p fscons' > /env/fossilconf
- echo 'srv -AP fossil' >> /env/fossilconf
- fossil/conf $fossil | sed 's/^fsys main open .*/& -AWVP/' |
- sed 's/^fsys main snaptime .*//' >> /env/fossilconf
- if(! logprog fossil/fossil -c .' /env/fossilconf'>>[2]/srv/log){
- echo 'fossil: '^$status
- mountfs=ready
- export mountfs
- exit oops
- }
- if(! test -f /srv/fossil){
- echo 'fossil did not create /srv/fossil'
- mountfs=ready
- exit oops
- }
- cat /srv/fscons >>/srv/log &
- if(! logprog mount -c /srv/fossil /n/newfs){
- echo 'mount: '^$status
- mountfs=ready
- export mountfs
- exit oops
- }
- fs=$fossil
- export fs
- }
- if(! test -s /n/newfs/adm/users){
- echo fsys main create /active/adm adm sys d775 >>/srv/fscons
- echo fsys main create /active/adm/users adm sys 664 >>/srv/fscons
- echo uname upas :upas >>/srv/fscons
- echo users -w >>/srv/fscons
- sleep 2
- }
- if(! test -s /n/newfs/adm/users){
- echo 'could not create /adm/users'
- mountfs=ready
- export mountfs
- exit oops
- }
- for(i in dist dist/replica dist/replica/client){
- if(! test -d /n/newfs/$i)
- echo fsys main create /active/$i sys sys d775 >>/srv/fscons
- sleep 2
- }
- if(! test -d /n/newfs/dist/replica/client){
- echo 'could not create /dist/replica/client'
- mountfs=ready
- export mountfs
- exit oops
- }
- if(! test -e /n/newfs/dist/replica/client/plan9.db){
- echo fsys main create /active/dist/replica/client/plan9.db sys sys 664 >>/srv/fscons
- echo fsys main create /active/dist/replica/client/plan9.log sys sys a664 >>/srv/fscons
- }
- if(test -d /n/newfs/dist/replica/client && test -f /n/newfs/adm/users){
- mountfs=done
- export mountfs
- exit
- }
- mountfs=ready
- export mountfs
- exit
-
-case go
- echo 'The following partitions named fossil* were found.'
- echo
- echo 'Please choose one to use as the installation file system'
- echo 'for your Plan 9 installation.'
- echo
- files=(`{ls /dev/sd*/fossil* /dev/fs/fossil* >[2]/dev/null})
- ls -l $files
- echo
- if(~ $#fossil 1 && ~ $fossil $files)
- default=(-d $fossil)
- if not if(~ $#files 1)
- default=(-d $files)
- if not
- default=()
- prompt $default 'Fossil partition' $files
- slay fossil|rc
- fossil=$rd
- export fossil
-}
-
-
diff --git a/sys/lib/dist/pc/inst/mountfs b/sys/lib/dist/pc/inst/mountfs
deleted file mode 100644
index 8aa9b16ff..000000000
--- a/sys/lib/dist/pc/inst/mountfs
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/rc
-
-# desc: choose and mount file system partition
-# prereq: configfs
-
-switch($fstype){
-case fossil fossil+venti
- exec mountfossil $*
-case *
- mountfs=notdone
- export mountfs
- exit
-}
-
diff --git a/sys/lib/dist/pc/inst/moveoldfs b/sys/lib/dist/pc/inst/moveoldfs
deleted file mode 100644
index 819beeb39..000000000
--- a/sys/lib/dist/pc/inst/moveoldfs
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/rc
-
-# desc: move an old third edition plan 9 file system out of the way
-# prereq: mountfs
-
-rootfiles=(\
- 386\
- 68000\
- 68020\
- LICENSE\
- NOTICE\
- acme\
- adm\
- alpha\
- arm\
- cron\
- dist\
- fd\
- lib\
- lp\
- mail\
- mips\
- mnt\
- n\
- power\
- rc\
- sparc\
- sys\
- tmp\
- usr/glenda\
- wrap\
-)
-
-switch($1){
-case checkready
- if(! test -d /n/kfs/wrap){
- moveoldfs=done
- export moveoldfs
- }
-
-case go
- if(test -d /n/kfs/wrap){
- echo 'You have a Third Edition Plan 9 installation on '^$fs^'.'
- echo 'We need to move the old file system out of the way (into /3e)'
- echo 'in order to continue.'
- echo
- prompt 'Move old file system' y n
- switch($rd){
- case y
- kname=`{kfsname $fs}
- log Moving old Plan 9 installation into /3e on kfs
- logprog disk/kfscmd -n$kname 'create /3e sys sys 555 d' >>[2]/srv/log
- logprog disk/kfscmd -n$kname 'create /3e/usr sys sys 555 d' >>[2]/srv/log
- for(i in $rootfiles)
- if(test -e /n/kfs/$i)
- logprog disk/kfscmd -n$kname 'rename /'^$i^' /3e/'^$i
- # copy extant /adm/users in case there have been modifications
- logprog disk/kfscmd -n$kname 'create /adm adm adm 555 d' >>[2]/srv/log
- logprog cp /n/kfs/3e/adm/users /n/kfs/adm/users >>[2]/srv/log
-
- case n
- echo 'Okay, but we can''t continue.'
- echo
- }
- }
-
-case checkdone
- if(test -d /n/kfs/wrap){
- moveoldfs=notdone
- export moveoldfs
- }
-}
diff --git a/sys/lib/dist/pc/inst/partdisk b/sys/lib/dist/pc/inst/partdisk
deleted file mode 100644
index 430d45f3f..000000000
--- a/sys/lib/dist/pc/inst/partdisk
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/rc
-
-# desc: edit partition tables (e.g., to create a plan 9 partition)
-# prereq: configfs
-
-switch($1){
-case go
- disks=`{ls /dev/sd*/data >[2]/dev/null | sed 's!/dev/(sd..)/data!\1!'}
- if(~ $#disks 0) {
- echo 'No disk devices were found on your system.'
- echo 'The installation process cannot continue.'
- exit giveup
- }
-
- echo 'The following disk devices were found.'
- echo
- for(i in $disks) {
- desc=`{cat /dev/$i/ctl | sed 1q | sed 's/inquiry //'}
- echo $i '-' $desc
- echo e | disk/fdisk -r /dev/$i/data >[2]/dev/null | grep -v '^ mbr'
- echo
- }
-
- okay=no
- defdisk=$disks(1)
-
- if(~ $#disks 1)
- default=(-d $disks)
- if not
- default=()
- prompt $default 'Disk to partition' $disks
- disk=$rd
-
- if(! hasmbr /dev/$disk/data) {
- echo 'The disk you selected HAS NO master boot record on its first sector.'
- echo '(Perhaps it is a completely blank disk.)'
- echo 'You need a master boot record to use the disk.'
- echo 'Should we install a default master boot record?'
- echo
- prompt 'Install mbr' y n
- switch($rd) {
- case y
- disk/mbr -m /386/mbr /dev/$disk/data
- pickdisk=done
- }
- }
- echo
- echo 'This is disk/fdisk; use it to create a Plan 9 partition.'
- echo 'If there is enough room, a Plan 9 partition will be'
- echo 'suggested; you can probably just type ''w'' and then ''q''.'
- echo
- disk/fdisk -a /dev/$disk/data
- disk/fdisk -p /dev/$disk/data >/dev/$disk/ctl >[2]/dev/null
- for(i in /dev/sd*/plan9*){
- if(test -f $i){
- d=`{basename -d $i}
- disk/prep -p $i >$d/ctl >[2]/dev/null
- }
- }
-
-case checkdone
- # we want at least one disk with both an mbr and a plan9 partition
- mbrandplan9=0
- disks=`{ls /dev/sd*/plan9 >[2]/dev/null | sed 's!/dev/(sd..)/plan9!\1!'}
- for(disk in $disks) {
- if(hasmbr /dev/$disk/data)
- mbrandplan9=1
- }
- if(~ $mbrandplan9 0){
- partdisk=notdone
- export partdisk
- }
-}
diff --git a/sys/lib/dist/pc/inst/prepdisk b/sys/lib/dist/pc/inst/prepdisk
deleted file mode 100644
index 6ef4a92f8..000000000
--- a/sys/lib/dist/pc/inst/prepdisk
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/rc
-
-# desc: subdivide plan 9 disk partition
-# prereq: partdisk
-
-fn autotype {
- if(~ $fstype fossil)
- echo -a 9fat -a nvram -a fossil -a swap
- if(~ $fstype fossil+venti)
- echo -a 9fat -a nvram -a arenas -a isect -a fossil -a swap # -a other
-}
-
-switch($1) {
-case checkready
- if(! test -f /dev/sd*/plan9*){
- prepdisk=notdone
- export prepdisk
- }
-
-case go
- echo 'The following Plan 9 disk partitions were found.'
- echo
- disks=(/dev/sd*/plan9*)
- for (i in $disks){
- echo $i
- echo q | disk/prep -r $i >[2]/dev/null
- echo
- }
- if(~ $#disks 1)
- default=(-d $disks)
- if not
- default=()
- prompt $default 'Plan 9 partition to subdivide' $disks
- disk=$rd
-
- echo 'This is disk/prep; use it to subdivide the Plan 9 partition.'
- echo 'If it is not yet subdivided, a sensible layout will be suggested;'
- echo 'you can probably just type ''w'' and then ''q''.'
- echo
- disk/prep `{autotype} $disk
- disk/prep -p $disk >`{basename -d $disk}^/ctl >[2]/dev/null
-
-case checkdone
- if(! test -f /dev/sd*/9fat)
- prepdisk=ready
-
- if(! ~ $prepdisk ready){
- prepdisk=done
- switch($fstype){
- case fossil
- if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
- prepdisk=ready
- case fossil+venti
- if(! test -f /dev/sd*/fossil* && ! test -f /dev/fs/fossil*)
- prepdisk=ready
- if(! test -f /dev/sd*/arenas && ! test -f /dev/fs/arenas*)
- prepdisk=ready
- if(! test -f /dev/sd*/isect && ! test -f /dev/fs/isect*)
- prepdisk=ready
- }
- }
- export prepdisk
-}
diff --git a/sys/lib/dist/pc/inst/replcfg b/sys/lib/dist/pc/inst/replcfg
deleted file mode 100644
index 30aed8607..000000000
--- a/sys/lib/dist/pc/inst/replcfg
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/rc
-
-s=/n/dist/dist/replica
-serverroot=/n/dist
-serverlog=$s/plan9.log
-serverproto=$s/plan9.proto
-fn servermount { status='' }
-fn serverupdate { status='' }
-
-fn clientmount { status='' }
-c=/n/newfs/dist/replica
-clientroot=/n/newfs
-clientproto=$c/plan9.proto
-clientdb=$c/client/plan9.db
-clientexclude=(dist/replica/client)
-clientlog=$c/client/plan9.log
-
-applyopt=(-t -u -T$c/client/plan9.time)
diff --git a/sys/lib/dist/pc/inst/startether b/sys/lib/dist/pc/inst/startether
deleted file mode 100644
index 077504c1a..000000000
--- a/sys/lib/dist/pc/inst/startether
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/rc
-
-# desc: activate ethernet card
-# prereq: configether
-
-switch($1) {
-case checkready
- if(isipdevup /net/ether0) {
- startether=done
- export startether
- }
-
-case go
- if(isipdevup /net/ether0)
- exit
-
- log starting ethernet $ethermethod config
- switch($ethermethod) {
- case manual
- ip/ipconfig -g $gwaddr ether /net/ether0 $ipaddr $ipmask >>[2]/srv/log
- case dhcp
- ip/ipconfig $dhcphost -D >>/srv/log >[2=1]
- }
-
-case checkdone
- if(! isipdevup /net/ether0) {
- startether=notdone
- export startether
- }
-}
diff --git a/sys/lib/dist/pc/inst/startppp b/sys/lib/dist/pc/inst/startppp
deleted file mode 100644
index 02bc090ef..000000000
--- a/sys/lib/dist/pc/inst/startppp
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/rc
-
-# desc: activate ppp connection
-# prereq: configppp
-
-switch($1) {
-case checkready checkdone
- if (isipdevup '^pkt[0-9]')
- startppp=done
- export startppp
-
-case go
- if(isipdevup '^pkt[0-9]')
- exit
-
- ctl=$pppdev^ctl
- echo b115200 >$ctl
-
- switch($pppmethod) {
- case manual
- echo
- echo 'Please dial the modem, and type ctl-d when PPP has started.'
- echo 'You may need to type ctl-m to send modem commands.'
- echo
- ip/ppp -f -u -b b^$pppbaud -p /dev/^$pppdev
-
- case auto
- ip/ppp -f -b b^$pppbaud -p /dev/^$pppdev -s $"pppuser:$"ppppasswd -t 'atdt'^$"pppphone
- }
-}
diff --git a/sys/lib/dist/pc/inst/startwin b/sys/lib/dist/pc/inst/startwin
deleted file mode 100644
index bcd542890..000000000
--- a/sys/lib/dist/pc/inst/startwin
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/rc
-
-fn time { date | sed 's/.........$//'}
-
-rm -f /srv/log
-
-if(~ $#* 2) {
- wid=$1
- ht=$2
-}
-if not {
- scr=(`{cat /dev/draw/new >[2]/dev/null || status=''})
- wid=$scr(7)
- ht=$scr(8)
-}
-
-if(test $ht -gt 800)
- ht=800
-
-if(test $wid -gt 800)
- wid=800
-
-statwid=`{hoc -e $wid^'*.2'}
-if(test $statwid -lt 180)
- statwid=180
-if(test $statwid -gt 300)
- statwid=300
-
-logwid=`{hoc -e $wid^-$statwid}
-if(test $logwid -gt 1000)
- logwid=1000
-
-loght=`{hoc -e $ht^'*.25'}
-if(test $loght -lt 130)
- loght=130
-
-textht=`{hoc -e $ht^-$loght}
-
-window 0,$textht,$statwid,$ht stats -lmisce
-window $statwid,$textht,^`{hoc -e $logwid+$statwid}^,$ht tailfsrv
-window 0,0,^`{hoc -e $logwid+$statwid}^,$textht inst/mainloop
-
-while(! test -f /srv/log)
- sleep 1
-
-log `{time} Installation process started
diff --git a/sys/lib/dist/pc/inst/stop b/sys/lib/dist/pc/inst/stop
deleted file mode 100644
index a1d48694f..000000000
--- a/sys/lib/dist/pc/inst/stop
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/rc
-
-# desc: save the current installation state, to be resumed later
-# prereq:
-# mustdo:
-
-switch($1) {
-case checkdone
- stop=notdone
- export stop
-
-case checkready
- if(~ $cdboot yes){
- stop=notdone
- export stop
- }
-
-case go
- coherence
- switch($2){
- case finished
- echo 'We need to write the state of the current installation to the install floppy,'
- echo 'so that you can pick up from here if, for example, you want to set up'
- echo 'more boot methods.'
- echo
- case *
- echo 'We need to write the state of the current installation to the install floppy.'
- echo 'so that you can pick up from here when you wish to continue.'
- echo
- }
- echo -n 'Please make sure the install floppy is in the floppy drive and press enter.'
- read >/dev/null >[2]/dev/null
-
- if(! a:) {
- echo 'Couldn''t mount the floppy disk; sorry.'
- exit
- }
-
- if(cp /tmp/vars /n/a:/9inst.cnf || cp /tmp/vars /n/a:/9inst.cnf) {
- echo 'Your install state has been saved to the install floppy.'
- if(~ $2 finished){
- echo
- echo 'Congratulations; you''ve completed the install.'
- }
- echo
- halt
- }
-
- echo 'Couldn''t save the state to your install floppy. Sorry.'
-}
diff --git a/sys/lib/dist/pc/inst/stopether b/sys/lib/dist/pc/inst/stopether
deleted file mode 100644
index 59063f0e0..000000000
--- a/sys/lib/dist/pc/inst/stopether
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/rc
-
-# desc: shut down the ethernet connection
-# prereq:
-
-
-switch($1) {
-case checkready
- if(! isipdevup /net/ether0) {
- stopether=notdone
- export stopether
- }
-
-case go
- ip/ipconfig ether /net/ether0 unbind
-
-case checkdone
- stopether=notdone
- export stopether
-}
diff --git a/sys/lib/dist/pc/inst/stopppp b/sys/lib/dist/pc/inst/stopppp
deleted file mode 100644
index 70b9ce1fe..000000000
--- a/sys/lib/dist/pc/inst/stopppp
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/rc
-
-# desc: shut down the ppp connection
-# prereq:
-
-switch($1) {
-case checkready
- if(! ~ $#pppdev 1 || ! isipdevup '^pkt[0-9]') {
- stopppp=notdone
- export stopppp
- }
-
-case go
- kill ppp | rc
-
-case checkdone
- stopppp=notdone
- export stopppp
-}
diff --git a/sys/lib/dist/pc/inst/textonly b/sys/lib/dist/pc/inst/textonly
deleted file mode 100644
index 1c3922ce4..000000000
--- a/sys/lib/dist/pc/inst/textonly
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/rc
-
-# text-only install
-cd /bin/inst
-. defs
-
-textinst=1
-export textinst
-
-tailfsrv &
-while(! test -f /srv/log)
- sleep 1
-log `{date} Installation process started
-inst/mainloop
-
diff --git a/sys/lib/dist/pc/inst/watchfd b/sys/lib/dist/pc/inst/watchfd
deleted file mode 100644
index ca37294e3..000000000
--- a/sys/lib/dist/pc/inst/watchfd
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/rc
-
-p=`{ps | grep $1 | sed 's/[^ ]* +([^ ]+) .*/\1/' }
-while(! ~ $#p 1) {
- sleep 1
- p=`{ps | grep $1 | sed 's/[^ ]* +([^ ]+) .*/\1/'}
-}
-p=$p(1)
-
-baropt='-w 145,129,445,168'
-if(~ $textinst 1)
- baropt=-t
-
-{
- while(test -f /proc/$p/fd)
- grep '^ *'^$2^' ' /proc/$p/fd >[2]/dev/null
-} | awk '{print $9 " '^$3^'"; fflush("/dev/stdout")}' | bargraph $baropt $4
diff --git a/sys/lib/dist/pc/inst/xxx b/sys/lib/dist/pc/inst/xxx
deleted file mode 100644
index 56b4eb23a..000000000
--- a/sys/lib/dist/pc/inst/xxx
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/rc
-
-ip/ipconfig
-echo ' auth=204.178.31.3
- authdom=cs.bell-labs.com' >>/net/ndb
-ndb/cs
-auth/factotum
-bind -a /bin/auth /
-cpu -e clear -h tcp!204.178.31.2
diff --git a/sys/lib/dist/pc/mkfile b/sys/lib/dist/pc/mkfile
deleted file mode 100644
index 43ee0b751..000000000
--- a/sys/lib/dist/pc/mkfile
+++ /dev/null
@@ -1,100 +0,0 @@
-out=outside # outside web server
-s=/sys/lib/dist/pc
-x=`{bind -b /sys/lib/dist/bin/$cputype /bin}
-default:V: ndisk
- ls -l ndisk
-
-SUB=`{ls sub inst}
-boot.raw:Q: proto $SUB
- rm -rf boot
- mkdir boot
- bind /dev/null /sys/log/timesync
- # make files writable for now.
- cat proto | sed 's!d000!d775!;s!000!664!;s!555!775!;s!444!664!' >proto.cp
- disk/mkfs -a proto.cp | disk/mkext -d boot
- @{
- cd boot/386
- strip init
- cd bin
- strip * */* >[2]/dev/null || status=''
- }
- cat proto | sed 's!/.*!!' >proto.cp
- disk/mkfs -a -s boot proto.cp | tee >{wc -c >[1=2]} |
- touchfs 1000000000 >boot.raw
-
-boot.bz2:Q: boot.raw
- ls -l boot.raw
- bflz -n 32 < boot.raw >boot.bflz
- ls -l boot.bflz
- bzip2 -9 < boot.bflz >$target
- ls -l $target
-
-root.bz2:Q: boot.bz2
- {
- echo bzfilesystem
- cat boot.bz2
- dd -if /dev/zero -bs 1024 -count 1 >[2]/dev/null
- } >$target
- ls -l $target
-
-/sys/src/9/pc/9pcflop.gz: root.bz2
- @{
- rfork n
- cd /sys/src/9/pc
- mk 'CONF=pcflop' 9pcflop.gz
- }
-
-/sys/src/9/pc/9pccd.gz:
- @{
- cd /sys/src/9/pc
- mk 'CONF=pccd' 9pccd.gz
- }
-
-# disk/format apparently uses stat to obtain a file's real name, so
-# binding 9loadusb onto 9load will store the name 9loadusb in the
-# generated fat filesystem. the same is true for plan9.ini.cd and plan9.ini.
-
-9load: /386/9loadlite
-# cp $prereq $target
- if (test -e /386/9loadnousb)
- cp /386/9loadnousb $target # cater to old bioses
- cp /386/9loadlitedebug 9loaddebug
-
-ndisk: 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb
- dd -if /dev/zero -of ndisk -bs 1024 -count 1440 >[2]/dev/null
- disk/format -f -b /386/pbs -d ndisk \
- 9load /sys/src/9/pc/9pcflop.gz plan9.ini /lib/vgadb
- ls -l ndisk
-
-# cannot list both 9pcflop.gz and 9pccd.gz because they cannot be built
-# in parallel. stupid mk
-cddisk:DV: 9load /sys/src/9/pc/9pcflop.gz plan9.ini.cd /lib/vgadb
- mk -a /sys/src/9/pc/9pccd.gz
- mk -a /sys/src/9/pc/9pcflop.gz
- rfork n
- cp -x plan9.ini.cd subst/plan9.ini
- dd -if /dev/zero -of cddisk -bs 1024 -count 2880 >[2]/dev/null
- disk/format -t 3½QD -f -b /386/pbs -d cddisk \
- 9load /sys/src/9/pc/^(9pcflop.gz 9pccd.gz) \
- subst/plan9.ini /lib/vgadb
- ls -l cddisk
-
-clean:V:
- if (! unmount 9load >[2]/dev/null)
- ;
- rm -rf boot boot.bz2 boot.bflz boot.raw root.bz2 9pcflop ndisk 9load cddisk proto.cp 9loaddebug
-
-install:V: ndisk 9loaddebug
- 9fs $out
- dst=/n/$out/sys/lib/dist/web.protect
- cp 9loaddebug $dst
- gzip -9 < ndisk > $dst/plan9.flp.gz
- # mk clean
-
-test:V: ndisk 9loaddebug
- cp 9loaddebug ../web.protect2/n9loaddebug
- cp ndisk ../web.protect2/ndisk
-
-cd0:D: cddisk
- rm -f cd0
- disk/mk9660 -9cj -v 'Plan 9 4th Edition' -s . -p cd0.proto -b cddisk cd0
diff --git a/sys/lib/dist/pc/plan9.ini b/sys/lib/dist/pc/plan9.ini
deleted file mode 100644
index c28f1ce43..000000000
--- a/sys/lib/dist/pc/plan9.ini
+++ /dev/null
@@ -1,19 +0,0 @@
-# very cautious settings to get started.
-# will defeat booting from usb devices.
-*nomp=1
-# *noahciload=1
-# *debugload=1
-*nodumpstack=1
-# this would disable ether and usb probing.
-# *nousbprobe=1
-# *noetherprobe=1
-distname=plan9
-partition=new
-mouseport=ask
-monitor=ask
-vgasize=ask
-dmamode=ask
-# serial console on COM1
-#console=0
-bootargs=local!#S/sdD0/data
-bootfile=/386/9pccd
diff --git a/sys/lib/dist/pc/plan9.ini.blank b/sys/lib/dist/pc/plan9.ini.blank
deleted file mode 100644
index be51a5dd4..000000000
--- a/sys/lib/dist/pc/plan9.ini.blank
+++ /dev/null
@@ -1,10 +0,0 @@
-THIS IS A 512 byte BLANK PLAN9.INI
-
-
-
-
-
-
-
-
-
diff --git a/sys/lib/dist/pc/plan9.ini.vmware b/sys/lib/dist/pc/plan9.ini.vmware
deleted file mode 100644
index dfee230ad..000000000
--- a/sys/lib/dist/pc/plan9.ini.vmware
+++ /dev/null
@@ -1,20 +0,0 @@
-# config for initial vmware booting
-
-# very cautious settings to get started.
-# will defeat booting from usb devices.
-*nomp=1
-*nobiosload=1
-# *noahciload=1
-# *debugload=1
-# *nodumpstack=1
-
-partition=new
-nobootprompt=local!/boot/bzroot
-bootfile=fd0!9pcflop.gz
-
-mouseport=ps2
-monitor=xga
-vgasize=1024x768x16
-#adisk=/dev/sdD0/cdboot
-console=0
-baud=9600
diff --git a/sys/lib/dist/pc/proto b/sys/lib/dist/pc/proto
deleted file mode 100644
index a12695d44..000000000
--- a/sys/lib/dist/pc/proto
+++ /dev/null
@@ -1,175 +0,0 @@
-386 d775 sys sys
-# 9load 555 sys sys
- init 555 sys sys
-# ld.com 555 sys sys
- mbr 555 sys sys
- pbs 555 sys sys
- pbslba 555 sys sys
- bin d775 sys sys
- auth d555 sys sys
-# i think factotum is only needed if we include cpu
-# factotum 555 sys sys
- aux d555 sys sys
- isvmware 555 sys sys
- mouse 555 sys sys /sys/lib/dist/pc/multi/mouse
- pcmcia 555 sys sys /sys/lib/dist/pc/multi/pcmcia
- # stub 555 sys sys
- vga 555 sys sys /sys/lib/dist/pc/multi/vga
- vmware 555 sys sys /sys/lib/dist/pc/sub/vmware
- # vmware 555 sys sys
- # vmwarefs 555 sys sys
- # vmmousepoll 555 sys sys
- zerotrunc 555 sys sys /sys/lib/dist/pc/multi/zerotrunc
- disk d555 sys sys
- fdisk 555 sys sys /sys/lib/dist/pc/multi/fdisk
- format 555 sys sys /sys/lib/dist/pc/multi/format
-# kfs 555 sys sys
-# kfscmd 555 sys sys
- mbr 555 sys sys /sys/lib/dist/pc/multi/mbr
- prep 555 sys sys /sys/lib/dist/pc/multi/prep
- fossil d555 sys sys
- fossil 555 sys sys
- flfmt 555 sys sys
- conf 555 sys sys
- ip d555 sys sys
- ipconfig 555 sys sys /sys/lib/dist/pc/multi/ipconfig
- ppp 555 sys sys /sys/lib/dist/pc/multi/ppp
- ndb d555 sys sys
-# csquery and dnsquery could go
- cs 555 sys sys /sys/lib/dist/pc/multi/cs
-# csquery 555 sys sys
- dns 555 sys sys /sys/lib/dist/pc/multi/dns
-# dnsquery 555 sys sys
- replica d555 sys sys
- applylog 555 sys sys
- changes 555 sys sys
- compactdb 555 sys sys /sys/lib/dist/pc/sub/compactdb
- pull 555 sys sys
- venti d555 sys sys
-# venti 555 sys sys
-# conf 555 sys sys
-# fmtarenas 555 sys sys
-# fmtindex 555 sys sys
-# fmtisect 555 sys sys
- 9660srv 555 sys sys /sys/lib/dist/pc/multi/9660srv
-# acme could go
-# acme 555 sys sys
- awk 555 sys sys
- bargraph 555 sys sys /sys/lib/dist/bin/386/bargraph
- basename 555 sys sys /sys/lib/dist/pc/multi/basename
- cat 555 sys sys /sys/lib/dist/pc/multi/cat
- chgrp 555 sys sys /sys/lib/dist/pc/multi/chgrp
- chmod 555 sys sys /sys/lib/dist/pc/multi/chmod
- cleanname 555 sys sys /sys/lib/dist/pc/multi/cleanname
- cmp 555 sys sys /sys/lib/dist/pc/multi/cmp
- cdsh 555 sys sys /sys/lib/dist/bin/386/cdsh
- cp 555 sys sys /sys/lib/dist/pc/multi/cp
-# cpu could go
-# cpu 555 sys sys
- date 555 sys sys /sys/lib/dist/pc/multi/date
- dd 555 sys sys /sys/lib/dist/pc/multi/dd
- dossrv 555 sys sys /sys/lib/dist/pc/multi/dossrv
- echo 555 sys sys /sys/lib/dist/pc/multi/echo
- ed 555 sys sys /sys/lib/dist/pc/multi/ed
-# if cpu goes, exportfs could go
-# exportfs 555 sys sys
- ext2srv 555 sys sys /sys/lib/dist/pc/multi/ext2srv
- fcp 555 sys sys
- grep 555 sys sys /sys/lib/dist/pc/multi/grep
- hget 555 sys sys /sys/lib/dist/pc/multi/hget
- hoc 555 sys sys /sys/lib/dist/pc/multi/hoc
- ls 555 sys sys /sys/lib/dist/pc/multi/ls
- mc 555 sys sys /sys/lib/dist/pc/multi/mc
- mount 555 sys sys /sys/lib/dist/pc/multi/mount
- multi 555 sys sys /sys/lib/dist/bin/386/multi
- mv 555 sys sys /sys/lib/dist/pc/multi/mv
-# netkey 555 sys sys
- ps 555 sys sys /sys/lib/dist/pc/multi/ps
- rc 555 sys sys
- read 555 sys sys /sys/lib/dist/pc/multi/read
- rio 555 sys sys
- rm 555 sys sys /sys/lib/dist/pc/multi/rm
- sed 555 sys sys /sys/lib/dist/pc/multi/sed
-# snoopy could go
-# snoopy 555 sys sys
- sort 555 sys sys /sys/lib/dist/pc/multi/sort
- srv 555 sys sys /sys/lib/dist/pc/multi/srv
-# ssh 555 sys sys
- stats 555 sys sys
- syscall 555 sys sys /sys/lib/dist/pc/multi/syscall
- tail 555 sys sys /sys/lib/dist/pc/multi/tail
- tailfsrv 555 sys sys /sys/lib/dist/bin/386/tailfsrv
- tee 555 sys sys /sys/lib/dist/pc/multi/tee
-# telnet 555 sys sys
- test 555 sys sys /sys/lib/dist/pc/multi/test
- wc 555 sys sys /sys/lib/dist/pc/multi/wc
- xd 555 sys sys /sys/lib/dist/pc/multi/xd
-adm d555 adm adm
- timezone d555 sys sys
- local 555 sys sys
-lib d777 sys sys
- font d555 sys sys
- bit d555 sys sys
- lucidasans d555 sys sys
- lstr.12 444 sys sys
- typelatin1.7.font 444 sys sys
-# lucm d555 sys sys
-# latin1.9 444 sys sys
-# latin1.9.font 444 sys sys
- namespace 444 sys sys
- ndb d555 sys sys
- common 444 sys sys /sys/lib/dist/pc/sub/common
- local 444 sys sys /sys/lib/dist/pc/sub/local
- vgadb 666 sys sys /dev/null
-fd d555 sys sys
-mnt d777 sys sys
- arch d000 sys sys
- temp d000 sys sys
- vmware d000 sys sys
- wsys d000 sys sys
-n d777 sys sys
- a: d000 sys sys
- a d000 sys sys
- c: d000 sys sys
- c d000 sys sys
- 9fat d000 sys sys
- kremvax d000 sys sys /sys/lib/dist/pc/empty
- newfs d000 sys sys
- dist d000 sys sys /sys/lib/dist/pc/empty
- distmedia d000 sys sys /sys/lib/dist/pc/empty
-rc d555 sys sys
- bin d775 sys sys
- inst d775 sys sys /sys/lib/dist/pc/empty
- + - sys sys /sys/lib/dist/pc/inst
- 9fat: 555 sys sys
- a: 555 sys sys /sys/lib/dist/pc/sub/a:
- bind 555 sys sys /sys/lib/dist/pc/sub/bind
- boota: 555 sys sys /sys/lib/dist/pc/sub/boota:
- bunzip2 555 sys sys /sys/lib/dist/pc/sub/bunzip2
- c: 555 sys sys
- dosmnt 555 sys sys
- kill 555 sys sys
- lc 555 sys sys
- mkdir 555 sys sys /sys/lib/dist/pc/sub/mkdir
- pci 555 sys sys
- pwd 555 sys sys /sys/lib/dist/pc/sub/pwd
- ramfs 555 sys sys /sys/lib/dist/pc/sub/ramfs
- replica d555 sys sys
- changes 555 sys sys
- defs 555 sys sys
- pull 555 sys sys
- slay 555 sys sys
- sleep 555 sys sys /sys/lib/dist/pc/sub/sleep
- termrc 555 sys sys /sys/lib/dist/pc/sub/termrc
- unmount 555 sys sys /sys/lib/dist/pc/sub/unmount
- window 555 sys sys
- lib d555 sys sys
- rcmain 444 sys sys
-sys d555 sys sys
- log d555 sys sys
- dns 444 sys sys /sys/lib/dist/pc/emptyfile
- timesync 444 sys sys /sys/lib/dist/pc/emptyfile
-tmp d555 sys sys
-usr d555 sys sys
- glenda d775 glenda glenda
- + - glenda glenda /sys/lib/dist/pc/glenda
diff --git a/sys/lib/dist/pc/sub/D003753 b/sys/lib/dist/pc/sub/D003753
deleted file mode 100644
index 8624d6ea1..000000000
--- a/sys/lib/dist/pc/sub/D003753
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/rc
-if(! test -f /srv/dos)
- dossrv >/dev/null </dev/null >[2]/dev/null
-unmount /n/a:>[2]/dev/null
-
-if(~ $#adisk 1)
- ; # do nothing
-if not if(~ $#bootfile 0)
- adisk=/dev/fd0disk
-if not {
- switch($bootfile) {
- case sd*
- adisk=`{echo $bootfile | sed 's#(sd..).*#/dev/\1/data#'}
- case fd*
- adisk=`{echo $bootfile | sed 's#(fd.).*#/dev/\1disk#'}
- case *
- echo 'unknown bootfile '^$bootfile^'; mail 9trouble@plan9.bell-labs.com'
- exit oops
- }
-}
-
-mount -c /srv/dos /n/a: $adisk
diff --git a/sys/lib/dist/pc/sub/F004116 b/sys/lib/dist/pc/sub/F004116
deleted file mode 100644
index 5f6809b3b..000000000
--- a/sys/lib/dist/pc/sub/F004116
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/rc
-
-rfork e
-if(! test -f /srv/dos)
- dossrv >/dev/null </dev/null >[2]/dev/null
-unmount /n/a:>[2]/dev/null
-
-switch($bootfile) {
-case sd*!cdboot!*
- # just look for the right file. bootfile isn''t trustworthy
- adisk=/dev/sd*/cdboot
- if(! ~ $#adisk 1)
- adisk=$adisk(1)
-case sd*
- adisk=`{echo $bootfile | sed 's#(sd..).*#/dev/\1/dos#'}
-case fd*
- adisk=`{echo $bootfile | sed 's#(fd.).*#/dev/\1disk#'}
-case *
- echo 'unknown bootfile '^$bootfile^'; mail 9trouble@plan9.bell-labs.com'
- exit oops
-}
-
-mount -c /srv/dos /n/a: $adisk
-
diff --git a/sys/lib/dist/pc/sub/bind b/sys/lib/dist/pc/sub/bind
deleted file mode 100644
index bc01455d7..000000000
--- a/sys/lib/dist/pc/sub/bind
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/rc
-
-rfork e
-flag=0
-while(~ $1 -*){
- switch($1){
- case -b
- flag=1
- case -a
- flag=2
- case -c
- flag=4
- case -ac -ca
- flag=6
- case -bc -cb
- flag=5
- }
- shift
-}
-
-syscall bind $1 $2 $flag >[2]/dev/null
diff --git a/sys/lib/dist/pc/sub/bunzip2 b/sys/lib/dist/pc/sub/bunzip2
deleted file mode 100644
index 0a876c6c2..000000000
--- a/sys/lib/dist/pc/sub/bunzip2
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/rc
-
-exec /boot/kfs BUNZIP
-# kfs is bzfs \ No newline at end of file
diff --git a/sys/lib/dist/pc/sub/common b/sys/lib/dist/pc/sub/common
deleted file mode 100644
index ec3e1bca2..000000000
--- a/sys/lib/dist/pc/sub/common
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-# services
-#
-tcp=cs port=1
-tcp=echo port=7
-tcp=discard port=9
-tcp=systat port=11
-tcp=daytime port=13
-tcp=netstat port=15
-tcp=chargen port=19
-tcp=ftp-data port=20
-tcp=ftp port=21
-tcp=ssh port=22
-tcp=telnet port=23
-tcp=smtp port=25
-tcp=time port=37
-tcp=whois port=43
-tcp=domain port=53
-tcp=uucp port=64
-tcp=gopher port=70
-tcp=rje port=77
-tcp=finger port=79
-tcp=http port=80
-tcp=link port=87
-tcp=supdup port=95
-tcp=hostnames port=101
-tcp=iso-tsap port=102
-tcp=x400 port=103
-tcp=x400-snd port=104
-tcp=csnet-ns port=105
-tcp=pop-2 port=109
-tcp=pop3 port=110
-tcp=sunrpc port=111
-tcp=uucp-path port=117
-tcp=nntp port=119
-tcp=netbios port=139
-tcp=NeWS port=144
-tcp=print-srv port=170
-tcp=z39.50 port=210
-tcp=fsb port=400
-tcp=sysmon port=401
-tcp=proxy port=402
-tcp=proxyd port=404
-tcp=https port=443
-tcp=ssmtp port=465
-tcp=snntp port=563
-tcp=rexec port=512 restricted=
-tcp=login port=513 restricted=
-tcp=shell port=514 restricted=
-tcp=printer port=515
-tcp=courier port=530
-tcp=cscan port=531
-tcp=uucp port=540
-tcp=9fs port=564
-tcp=whoami port=565
-tcp=guard port=566
-tcp=ticket port=567
-tcp=fmclient port=729
-tcp=ingreslock port=1524
-tcp=webster port=2627
-tcp=weather port=3000
-tcp=Xdisplay port=6000
-tcp=styx port=6666
-tcp=mpeg port=6667
-tcp=rstyx port=6668
-tcp=infdb port=6669
-tcp=infsigner port=6671
-tcp=infcsigner port=6672
-tcp=inflogin port=6673
-tcp=bandt port=7330
-tcp=face port=32000
-tcp=ocpu port=17005
-tcp=ocpunote port=17006
-tcp=exportfs port=17007
-tcp=rexexec port=17009
-tcp=ncpu port=17010
-tcp=ncpunote port=17011
-tcp=cpu port=17013
-tcp=video port=17028
-tcp=vgen port=17029
-tcp=alefnslook port=17030
-tcp=411 port=17031
-tcp=flyboy port=17032
-
-il=echo port=7
-il=discard port=9
-il=chargen port=19
-il=whoami port=565
-il=ticket port=566
-il=challbox port=567
-il=ocpu port=17005
-il=ocpunote port=17006
-il=exportfs port=17007
-il=9fs port=17008
-il=rexexec port=17009
-il=ncpu port=17010
-il=ncpunote port=17011
-il=tcpu port=17012
-il=cpu port=17013
-il=fsauth port=17020
-il=rexauth port=17021
-il=changekey port=17022
-il=chal port=17023
-il=check port=17024
-il=juke port=17026
-il=video port=17028
-il=vgen port=17029
-il=alefnslook port=17030
-il=ramfs port=17031
-
-udp=echo port=7
-udp=tacacs port=49
-udp=tftp port=69
-udp=bootpc port=68
-udp=bootp port=67
-udp=dns port=53
-udp=ntp port=123
-udp=rip port=520
-udp=bfs port=2201
-udp=virgil port=2202
-udp=bandt2 port=7331
-
-gre=ppp port=34827
diff --git a/sys/lib/dist/pc/sub/compactdb b/sys/lib/dist/pc/sub/compactdb
deleted file mode 100644
index 6033f7a0a..000000000
--- a/sys/lib/dist/pc/sub/compactdb
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/rc
-
-exec cat $*
-
diff --git a/sys/lib/dist/pc/sub/local b/sys/lib/dist/pc/sub/local
deleted file mode 100644
index ec278a401..000000000
--- a/sys/lib/dist/pc/sub/local
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#
-# files comprising the database, use as many as you like
-#
-database=
- file=/lib/ndb/local
- file=/lib/ndb/common
-
diff --git a/sys/lib/dist/pc/sub/mkdir b/sys/lib/dist/pc/sub/mkdir
deleted file mode 100644
index b4452b9a9..000000000
--- a/sys/lib/dist/pc/sub/mkdir
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/rc
-
-syscall create $1 0 020000000775 >[2]/dev/null
diff --git a/sys/lib/dist/pc/sub/ndist b/sys/lib/dist/pc/sub/ndist
deleted file mode 100644
index 2916986a1..000000000
--- a/sys/lib/dist/pc/sub/ndist
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/rc
-
-s=/n/dist/dist/replica
-serverroot=/n/dist
-serverlog=$s/plan9.log
-serverproto=$s/plan9.proto
-fn servermount { status='' }
-fn serverupdate { status='' }
-
-fn clientmount { status='' }
-c=/n/kfs/dist/replica
-clientroot=/n/kfs
-clientproto=$c/plan9.proto
-clientdb=$c/client/plan9.db
-clientexclude=(dist/replica/client)
-clientlog=$c/client/plan9.log
diff --git a/sys/lib/dist/pc/sub/pci b/sys/lib/dist/pc/sub/pci
deleted file mode 100644
index c55d4b397..000000000
--- a/sys/lib/dist/pc/sub/pci
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/rc
-
-rfork n
-bind '#$' /mnt
-cat /mnt/pci/*ctl
diff --git a/sys/lib/dist/pc/sub/pwd b/sys/lib/dist/pc/sub/pwd
deleted file mode 100644
index f75568e7c..000000000
--- a/sys/lib/dist/pc/sub/pwd
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/rc
-
-syscall -o fd2path 0 buf 1024 < . >[2]/dev/null
diff --git a/sys/lib/dist/pc/sub/ramfs b/sys/lib/dist/pc/sub/ramfs
deleted file mode 100644
index 285cd8717..000000000
--- a/sys/lib/dist/pc/sub/ramfs
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/rc
-
-exec boot/kfs RAMFS $*
-# kfs is bzfs
diff --git a/sys/lib/dist/pc/sub/sleep b/sys/lib/dist/pc/sub/sleep
deleted file mode 100644
index 07e6bb8be..000000000
--- a/sys/lib/dist/pc/sub/sleep
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1) {
- echo 'usage: sleep n' >[1=2]
- exit usage
-}
-
-syscall sleep $1^000 >/dev/null >[2]/dev/null
diff --git a/sys/lib/dist/pc/sub/termrc b/sys/lib/dist/pc/sub/termrc
deleted file mode 100644
index a194ee9b0..000000000
--- a/sys/lib/dist/pc/sub/termrc
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/bin/rc
-
-if(~ $#debug 1 && ~ $debug yes)
- flag x +
-if not
- debug=0
-
-if(~ $debug yes) echo env...
-sysname=gnot
-font=/lib/font/bit/lucidasans/typelatin1.7.font
-
-for (i in '#P' '#f' '#m' '#t' '#v') {
- if(~ $debug yes) echo bind $i
- bind -a $i /dev >/dev/null >[2=1]
-}
-if(~ $debug yes) echo binddev done
-
-for(disk in /dev/sd??) {
- if(test -f $disk/data && test -f $disk/ctl){
- disk/fdisk -p $disk/data >$disk/ctl >[2]/dev/null
-# if(~ $#nosddma 0)
-# echo dma on >$disk/ctl
-# if(~ $#nosdrwm 0)
-# echo rwm on >$disk/ctl
- }
-}
-
-for (i in /sys/log/*) {
- if(~ $debug yes) echo bind $i
- bind /dev/null $i
-}
-
-if(~ $debug yes) echo bindlog done
-
-bind -a '#l' /net >/dev/null >[2=1]
-
-dossrv
-boota:
-boota: # again, just in case a timeout made the earlier one fail
-cp /n/a:/plan9.ini /tmp/plan9.orig
-if(! ~ $cdboot yes){
- pci >/n/a:/pci.txt >[2]/dev/null
- cp /dev/kmesg /n/a:/boot.txt >[2]/dev/null
-}
-
-# restore a partial install
-if(test -f /n/a:/9inst.cnf)
- cp /n/a:/9inst.cnf /tmp/vars
-
-# make vgadb easier to edit
-if(test -f /n/a:/vgadb)
- cp /n/a:/vgadb /lib/vgadb
-
-aux/vmware
-
-# configure loopback device without touching /net/ndb
-{
- echo bind loopback /dev/null
- echo add 127.0.0.1 255.255.255.0
-} >/net/ipifc/clone
-
-if(~ $#dmamode 0)
- dmamode=ask
-if(~ $dmamode ask){
- echo -n 'use DMA for ide drives[yes]: '
- dmamode=`{read}
- if(~ $#dmamode 0)
- dmamode=yes
-}
-if(~ $dmamode yes)
- for(i in /dev/sd*/ctl)
- if(test -f $i)
- {echo dma on; echo rwm on >[2]/dev/null} >$i
-
-if(~ $installmode ask){
- echo -n 'install mode is (text, graphics)[graphics]: '
- installmode=`{read}
- if(~ $#installmode 0)
- installmode=graphics
-}
-if(~ $installmode text){
- mouseport=()
- vgasize=()
- monitor=()
-}
-if not
- installmode=graphics
-
-if(~ $mouseport ask){
- echo -n 'mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: '
- mouseport=`{read}
- if(~ $#mouseport 0)
- mouseport=ps2
-}
-if(~ $vgasize ask){
- echo -n 'vgasize [640x480x8]: '
- vgasize=`{read}
- if(~ $#vgasize 0)
- vgasize=640x480x8
-}
-if(~ $monitor ask){
- echo -n 'monitor is [xga]: '
- monitor=`{read}
- if(~ $#monitor 0)
- monitor=xga
-}
-if(~ $#mouseport 1) {
- aux/mouse $mouseport
- if(~ $#vgasize 1 && ! ~ $vgasize '') {
- vgasize=`{echo $vgasize}
- if(! ~ $cdboot yes)
- aux/vga -vip $vgasize >/n/a:/vgainfo.txt
- sleep 2 # wait for floppy to finish
- aux/vga -l $vgasize
- if(! ~ $#novgaaccel 0)
- echo -n 'hwaccel off' >'#v/vgactl' >[2]/dev/null
- if(! ~ $#novgablank 0)
- echo -n 'hwblank off' >'#v/vgactl' >[2]/dev/null
- }
-}
-
diff --git a/sys/lib/dist/pc/sub/unmount b/sys/lib/dist/pc/sub/unmount
deleted file mode 100644
index 0c736afa6..000000000
--- a/sys/lib/dist/pc/sub/unmount
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/rc
-
-syscall unmount 0 $1 >[2]/dev/null
diff --git a/sys/lib/dist/pc/sub/users b/sys/lib/dist/pc/sub/users
deleted file mode 100644
index fd2edbe3d..000000000
--- a/sys/lib/dist/pc/sub/users
+++ /dev/null
@@ -1,7 +0,0 @@
--1:adm:adm:
-0:none:none:
-1:tor:tor:
-2:glenda:glenda:
-10000:sys::
-10001:upas:upas:
-10002:bootes:bootes:
diff --git a/sys/lib/dist/pc/sub/vmware b/sys/lib/dist/pc/sub/vmware
deleted file mode 100644
index 8b398c972..000000000
--- a/sys/lib/dist/pc/sub/vmware
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/rc
-# vmware - if we're running in a vmware virtual machine, tweak set up
-if(aux/isvmware -s){
- echo hwaccel off >'#v/vgactl'
- echo -n off >'#P/i8253timerset'
- for (ctl in '#S'/sd[C-H]?/ctl)
- if (test -e $ctl && grep -s '^config .* dma ' $ctl &&
- ! grep -s '^config (848A|.* dma 00000000 )' $ctl)
- echo 'dma on' >$ctl
-}
diff --git a/sys/lib/dist/pc/subst/plan9.ini b/sys/lib/dist/pc/subst/plan9.ini
deleted file mode 100644
index 11a2435ca..000000000
--- a/sys/lib/dist/pc/subst/plan9.ini
+++ /dev/null
@@ -1,40 +0,0 @@
-# config for initial cd booting
-
-[menu]
-menuitem=install, Install Plan 9 from this CD
-menuitem=cdboot, Boot Plan 9 from this CD
-# menuitem=debug, Boot Plan 9 from this CD and debug 9load
-
-[common]
-# very cautious settings to get started.
-# will defeat booting from usb devices.
-*nomp=1
-*nobiosload=1
-# *noahciload=1
-# *debugload=1
-*nodumpstack=1
-# this would disable ether and usb probing.
-# *nousbprobe=1
-# *noetherprobe=1
-partition=new
-mouseport=ask
-monitor=ask
-vgasize=ask
-dmamode=ask
-adisk=/dev/sdD0/cdboot
-cdboot=yes
-# console=0
-# baud=9600
-
-[install]
-nobootprompt=local!/boot/bzroot
-bootfile=sdD0!cdboot!9pcflop.gz
-
-[cdboot]
-bootargs=local!#S/sdD0/data
-bootfile=sdD0!cdboot!9pccd.gz
-
-# [debug]
-# bootargs=local!#S/sdD0/data
-# bootfile=sdD0!cdboot!9pccd.gz
-# *debugload=1
diff --git a/sys/src/cmd/cwfs/64xbit.h b/sys/src/cmd/cwfs/64xbit.h
new file mode 100644
index 000000000..53edb78db
--- /dev/null
+++ b/sys/src/cmd/cwfs/64xbit.h
@@ -0,0 +1,22 @@
+/*
+ * fundamental constants and types of the implementation
+ * changing any of these changes the layout on disk
+ */
+
+/* the glorious new, incompatible (on disk) 64-bit world */
+
+/* keeping NAMELEN ≤ 50 bytes permits 3 Dentrys per mag disk sector */
+enum {
+ NAMELEN = 144, /* max size of file name components */
+ NDBLOCK = 6, /* number of direct blocks in Dentry */
+ NIBLOCK = 4, /* max depth of indirect blocks */
+};
+
+/*
+ * file offsets & sizes, in bytes & blocks. typically long or vlong.
+ * vlong is used in the code where would be needed if Off were just long.
+ */
+typedef vlong Off;
+
+#undef COMPAT32
+#define swaboff swab8
diff --git a/sys/src/cmd/cwfs/con.c b/sys/src/cmd/cwfs/con.c
index 6448b4666..c1aa59623 100644
--- a/sys/src/cmd/cwfs/con.c
+++ b/sys/src/cmd/cwfs/con.c
@@ -36,13 +36,10 @@ consserve1(void *)
char *conline;
for (;;) {
- /* conslock(); */
do {
- print("%s: ", service);
- if ((conline = Brdline(&bin, '\n')) == nil)
- print("\n");
- else {
+ if ((conline = Brdline(&bin, '\n')) != nil) {
conline[Blinelen(&bin)-1] = '\0';
+ print("%s: %s\n", service, conline);
cmd_exec(conline);
}
} while (conline != nil);
diff --git a/sys/src/cmd/cwfs/config.c b/sys/src/cmd/cwfs/config.c
index bc0d118ea..b11c53e77 100644
--- a/sys/src/cmd/cwfs/config.c
+++ b/sys/src/cmd/cwfs/config.c
@@ -82,6 +82,11 @@ devcmpr(Device *d1, Device *d2)
case Devwren:
case Devworm:
case Devlworm:
+ if(d1->wren.file || d2->wren.file){
+ if(d1->wren.file == nil || d2->wren.file == nil)
+ return 1;
+ return !!strcmp(d1->wren.file, d2->wren.file);
+ }
if(d1->wren.ctrl == d2->wren.ctrl)
if(d1->wren.targ == d2->wren.targ)
if(d1->wren.lun == d2->wren.lun)
@@ -222,7 +227,7 @@ config(void)
{
int c, m;
Device *d;
- char *icp;
+ char *icp, *s, *e;
if(f.error)
return devnone;
@@ -248,7 +253,41 @@ config(void)
d->type = Devnone;
break;
+ case '/': /* /path/to/file mapped file */
+ case '"': /* "/path/to/file" mapped file */
+ case '\'': /* '/path/to/file' mapped file */
+ Mapped:
+ d->type = Devwren;
+ if(c == '/'){
+ s = f.charp-1;
+ for(e = s+1; *e; e++)
+ if(*e == ')' || *e == ']' || *e == '}')
+ break;
+ f.charp = e;
+ } else {
+ s = f.charp;
+ if((e = strchr(s, c)) == nil){
+ cdiag("unterminated string", c);
+ return devnone;
+ }
+ f.charp = e+1;
+ }
+ d->wren.ctrl = -1;
+ d->wren.targ = -1;
+ d->wren.lun = -1;
+ d->wren.file = malloc((e - s) + 1);
+ memmove(d->wren.file, s, e - s);
+ d->wren.file[e - s] = 0;
+ break;
+
case 'w': /* w[#.]#[.#] wren [ctrl] unit [lun] */
+ switch(*f.charp){
+ case '/':
+ case '"':
+ case '\'':
+ c = *f.charp++;
+ goto Mapped;
+ }
case 'r': /* r# worm side */
case 'l': /* l# labelled-worm side */
icp = f.charp;
diff --git a/sys/src/cmd/cwfs/cwfs64/conf.c b/sys/src/cmd/cwfs/cwfs64/conf.c
new file mode 100644
index 000000000..876cdee30
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64/conf.c
@@ -0,0 +1,31 @@
+/* generic old-cw configuration */
+
+#include "all.h"
+
+#ifndef DATE
+#define DATE 1170808167L
+#endif
+
+Timet fs_mktime = DATE; /* set by mkfile */
+
+Startsb startsb[] = {
+ "main", 2,
+ nil,
+};
+
+void
+localconfinit(void)
+{
+ conf.nfile = 40000;
+ conf.nodump = 0;
+// conf.nodump = 1; /* jukebox is r/o */
+ conf.firstsb = 13219302;
+ conf.recovsb = 0;
+ conf.nlgmsg = 100;
+ conf.nsmmsg = 500;
+}
+
+int (*fsprotocol[])(Msgbuf*) = {
+ serve9p2,
+ nil,
+};
diff --git a/sys/src/cmd/cwfs/cwfs64/dat.h b/sys/src/cmd/cwfs/cwfs64/dat.h
new file mode 100644
index 000000000..4c63315ca
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64/dat.h
@@ -0,0 +1,36 @@
+/* generic old-cw configuration: 16K blocks, 32-bit sizes */
+
+/*
+ * The most fundamental constant.
+ * The code will not compile with RBUFSIZE made a variable;
+ * for one thing, RBUFSIZE determines FEPERBUF, which determines
+ * the number of elements in a free-list-block array.
+ */
+#ifndef RBUFSIZE
+#define RBUFSIZE (16*1024) /* raw buffer size */
+#endif
+#include "64bit.h"
+/*
+ * setting this to zero permits the use of discs of different sizes, but
+ * can make jukeinit() quite slow while the robotics work through each disc
+ * twice (once per side).
+ */
+enum { FIXEDSIZE = 1 };
+
+
+#include "portdat.h"
+
+enum { MAXBANK = 2 };
+
+typedef struct Mbank {
+ ulong base;
+ ulong limit;
+} Mbank;
+
+typedef struct Mconf {
+ Lock;
+ Mbank bank[MAXBANK];
+ int nbank;
+ ulong memsize;
+} Mconf;
+extern Mconf mconf;
diff --git a/sys/src/cmd/cwfs/cwfs64/mkfile b/sys/src/cmd/cwfs/cwfs64/mkfile
new file mode 100644
index 000000000..8835ba7cd
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64/mkfile
@@ -0,0 +1,2 @@
+FS='64'
+<../portmkfile
diff --git a/sys/src/cmd/cwfs/cwfs64x/conf.c b/sys/src/cmd/cwfs/cwfs64x/conf.c
new file mode 100644
index 000000000..876cdee30
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64x/conf.c
@@ -0,0 +1,31 @@
+/* generic old-cw configuration */
+
+#include "all.h"
+
+#ifndef DATE
+#define DATE 1170808167L
+#endif
+
+Timet fs_mktime = DATE; /* set by mkfile */
+
+Startsb startsb[] = {
+ "main", 2,
+ nil,
+};
+
+void
+localconfinit(void)
+{
+ conf.nfile = 40000;
+ conf.nodump = 0;
+// conf.nodump = 1; /* jukebox is r/o */
+ conf.firstsb = 13219302;
+ conf.recovsb = 0;
+ conf.nlgmsg = 100;
+ conf.nsmmsg = 500;
+}
+
+int (*fsprotocol[])(Msgbuf*) = {
+ serve9p2,
+ nil,
+};
diff --git a/sys/src/cmd/cwfs/cwfs64x/dat.h b/sys/src/cmd/cwfs/cwfs64x/dat.h
new file mode 100644
index 000000000..e14371d43
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64x/dat.h
@@ -0,0 +1,36 @@
+/* generic old-cw configuration: 16K blocks, 32-bit sizes */
+
+/*
+ * The most fundamental constant.
+ * The code will not compile with RBUFSIZE made a variable;
+ * for one thing, RBUFSIZE determines FEPERBUF, which determines
+ * the number of elements in a free-list-block array.
+ */
+#ifndef RBUFSIZE
+#define RBUFSIZE (16*1024) /* raw buffer size */
+#endif
+#include "64xbit.h"
+/*
+ * setting this to zero permits the use of discs of different sizes, but
+ * can make jukeinit() quite slow while the robotics work through each disc
+ * twice (once per side).
+ */
+enum { FIXEDSIZE = 1 };
+
+
+#include "portdat.h"
+
+enum { MAXBANK = 2 };
+
+typedef struct Mbank {
+ ulong base;
+ ulong limit;
+} Mbank;
+
+typedef struct Mconf {
+ Lock;
+ Mbank bank[MAXBANK];
+ int nbank;
+ ulong memsize;
+} Mconf;
+extern Mconf mconf;
diff --git a/sys/src/cmd/cwfs/cwfs64x/mkfile b/sys/src/cmd/cwfs/cwfs64x/mkfile
new file mode 100644
index 000000000..ab94d0fb2
--- /dev/null
+++ b/sys/src/cmd/cwfs/cwfs64x/mkfile
@@ -0,0 +1,2 @@
+FS='64x'
+<../portmkfile
diff --git a/sys/src/cmd/cwfs/iobuf.c b/sys/src/cmd/cwfs/iobuf.c
index 11879f37c..577cc7c38 100644
--- a/sys/src/cmd/cwfs/iobuf.c
+++ b/sys/src/cmd/cwfs/iobuf.c
@@ -204,21 +204,36 @@ int
checktag(Iobuf *p, int tag, Off qpath)
{
Tag *t;
- static Off lastaddr;
+ ulong pc;
+ qpath &= ~QPDIR;
t = (Tag*)(p->iobuf+BUFSIZE);
+ if((tag != t->tag) || ((qpath != QPNONE) && (qpath != t->path))){
+ pc = getcallerpc(&p);
+
+ if(qpath == QPNONE){
+ print("checktag pc=%lux %Z(%llux) tag/path=%G/%llud; expected %G\n",
+ pc, p->dev, (Wideoff)p->addr, t->tag, (Wideoff)t->path, tag);
+ } else {
+ print("checktag pc=%lux %Z(%llux) tag/path=%G/%llud; expected %G/%llud\n",
+ pc, p->dev, (Wideoff)p->addr, t->tag, (Wideoff)t->path, tag, qpath);
+ }
+ return 1;
+ }
+
+ /*
if(t->tag != tag) {
if(p->flags & Bmod) {
- print("\ttag = %d/%llud; expected %lld/%d -- not flushed\n",
+ print("\t%llux: tag = %G/%llud; expected %G/%d -- not flushed\n",
t->tag, (Wideoff)t->path, (Wideoff)qpath, tag);
return 2;
}
if(p->dev != nil && p->dev->type == Devcw)
cwfree(p->dev, p->addr);
if(p->addr != lastaddr)
- print("\ttag = %G/%llud; expected %G/%lld -- flushed (%lld)\n",
- t->tag, (Wideoff)t->path, tag, (Wideoff)qpath,
- (Wideoff)p->addr);
+ print("\t%llux: tag = %G/%llud; expected %G/%lld -- flushed\n",
+ (Wideoff)p->addr, t->tag, (Wideoff)t->path, tag, (Wideoff)qpath);
+
lastaddr = p->addr;
p->dev = devnone;
p->addr = -1;
@@ -226,13 +241,14 @@ checktag(Iobuf *p, int tag, Off qpath)
return 2;
}
if(qpath != QPNONE) {
- if((qpath ^ t->path) & ~QPDIR) {
- if(1 || CHAT(0))
- print("\ttag/path = %llud; expected %d/%llux\n",
- (Wideoff)t->path, tag, (Wideoff)qpath);
+ if(qpath ^ t->path) {
+ print("\t%llux: tag/path = %G/%llud; expected %G/%llux\n",
+ (Wideoff)p->addr, t->tag, (Wideoff)t->path, tag, (Wideoff)qpath);
return 0;
}
}
+ */
+
return 0;
}
diff --git a/sys/src/cmd/cwfs/main.c b/sys/src/cmd/cwfs/main.c
index d1422a1f9..b7654e505 100644
--- a/sys/src/cmd/cwfs/main.c
+++ b/sys/src/cmd/cwfs/main.c
@@ -7,6 +7,7 @@ extern int oldcachefmt;
Map *devmap;
+int sfd, rfd;
Biobuf bin;
void
@@ -148,6 +149,57 @@ confinit(void)
mapinit(conf.devmap);
}
+static int
+srvfd(char *s, int mode, int sfd)
+{
+ int fd;
+ char buf[32];
+
+ fd = create(s, ORCLOSE|OWRITE, mode);
+ if(fd < 0){
+ remove(s);
+ fd = create(s, ORCLOSE|OWRITE, mode);
+ if(fd < 0)
+ panic(s);
+ }
+ sprint(buf, "%d", sfd);
+ if(write(fd, buf, strlen(buf)) != strlen(buf))
+ panic("srv write");
+ return sfd;
+}
+
+static void
+postservice(void)
+{
+ char buf[3*NAMELEN];
+ int p[2];
+
+ if(sfd < 0){
+ if(pipe(p) < 0)
+ panic("can't make a pipe");
+ sfd = p[0];
+ rfd = p[1];
+ }
+
+ /* post 9p service */
+ snprint(buf, sizeof(buf), "#s/%s", service);
+ srvfd(buf, 0666, sfd);
+ close(sfd);
+ srvchan(rfd, buf);
+
+ if(pipe(p) < 0)
+ panic("can't make a pipe");
+
+ /* post cmd service */
+ snprint(buf, sizeof(buf), "#s/%s.cmd", service);
+ srvfd(buf, 0222, p[0]);
+ close(p[0]);
+
+ /* use it as stdin */
+ dup(p[1], 0);
+ close(p[1]);
+}
+
/*
* compute BUFSIZE*(NDBLOCK+INDPERBUF+INDPERBUF⁲+INDPERBUF⁳+INDPERBUF⁴)
* while watching for overflow; in that case, return 0.
@@ -224,8 +276,7 @@ printsizes(void)
void
usage(void)
{
- fprint(2, "usage: %s [-cf][-a ann-str][-m dev-map] config-dev\n",
- argv0);
+ fprint(2, "usage: %s [ -csC ] [ -a ann-str ] [ -m dev-map ] [-f config-dev ]\n", argv0);
exits("usage");
}
@@ -234,11 +285,13 @@ main(int argc, char **argv)
{
int i, nets = 0;
char *ann;
-
+
rfork(RFNOTEG);
formatinit();
machinit();
- conf.confdev = "n"; /* Devnone */
+ conf.confdev = "/dev/sdC0/cwfs";
+
+ rfd = sfd = -1;
ARGBEGIN{
case 'a': /* announce on this net */
@@ -250,12 +303,25 @@ main(int argc, char **argv)
}
annstrs[nets++] = ann;
break;
- case 'c': /* use new, faster cache layout */
+ case 's':
+ sfd = dup(0, -1);
+ rfd = dup(1, -1);
+ close(0);
+ if(open("/dev/cons", OREAD) < 0)
+ open("#c/cons", OREAD);
+ close(1);
+ if(open("/dev/cons", OWRITE) < 0)
+ open("#c/cons", OWRITE);
+ break;
+ case 'C': /* use new, faster cache layout */
oldcachefmt = 0;
break;
- case 'f': /* enter configuration mode first */
+ case 'c':
conf.configfirst++;
break;
+ case 'f': /* device / partition / file */
+ conf.confdev = EARGF(usage());
+ break;
case 'm': /* name device-map file */
conf.devmap = EARGF(usage());
break;
@@ -264,9 +330,8 @@ main(int argc, char **argv)
break;
}ARGEND
- if (argc != 1)
+ if(argc != 0)
usage();
- conf.confdev = argv[0]; /* config string for dev holding full config */
Binit(&bin, 0, OREAD);
confinit();
@@ -304,6 +369,13 @@ main(int argc, char **argv)
print("sysinit\n");
sysinit();
+ srvinit();
+
+ /*
+ * post filedescriptors to /srv
+ */
+ postservice();
+
/*
* Ethernet i/o processes
*/
@@ -326,16 +398,14 @@ main(int argc, char **argv)
newproc(wormcopy, 0, "wcp");
/*
- * processes to read the console
+ * "sync" copy process
*/
- consserve();
+ newproc(synccopy, 0, "scp");
/*
- * "sync" copy process
- * this doesn't return.
+ * processes to read the console
*/
- procsetname("scp");
- synccopy();
+ consserve();
}
/*
@@ -541,7 +611,7 @@ wormcopy(void *)
* to get up-to-date.
*/
void
-synccopy(void)
+synccopy(void *)
{
int f;
@@ -584,3 +654,4 @@ inqsize(char *file)
free(data);
return rv;
}
+
diff --git a/sys/src/cmd/cwfs/mkfile b/sys/src/cmd/cwfs/mkfile
index 6ff9c0126..19d826980 100644
--- a/sys/src/cmd/cwfs/mkfile
+++ b/sys/src/cmd/cwfs/mkfile
@@ -2,9 +2,14 @@ default:V: all
all allall first default clean nuke install installall safeinstall safeinstallall update man:V:
cd cwfs && mk $target
+
emelie.%:V:
cd emelie && mk $stem
fs64.%:V:
cd fs64 && mk $stem
+cwfs64.%:V:
+ cd cwfs64 && mk $stem
+cwfs64x.%:V:
+ cd cwfs64x && mk $stem
-cleanall:V: clean emelie.clean fs64.clean
+cleanall:V: clean emelie.clean fs64.clean cwfs64.clean cwfs64x.clean
diff --git a/sys/src/cmd/cwfs/net.c b/sys/src/cmd/cwfs/net.c
index 97553be6a..b2f2b7272 100644
--- a/sys/src/cmd/cwfs/net.c
+++ b/sys/src/cmd/cwfs/net.c
@@ -2,16 +2,6 @@
#include "all.h"
#include "io.h"
-#include <fcall.h> /* 9p2000 */
-#include <thread.h>
-
-enum {
- Maxfdata = 8192,
- Nqueue = 200, /* queue size (tunable) */
-
- Netclosed = 0, /* Connection state */
- Netopen,
-};
/*
* the kernel file server read packets directly from
@@ -40,14 +30,11 @@ enum {
*/
typedef struct Network Network;
-typedef struct Netconn Netconn;
-typedef struct Conn9p Conn9p;
/* a network, not necessarily an ethernet */
struct Network {
int ctlrno;
- char iname[NAMELEN];
- char oname[NAMELEN];
+ char name[NAMELEN];
char *dialstr;
char anndir[40];
@@ -55,295 +42,18 @@ struct Network {
int annfd; /* fd from announce */
};
-/* an open tcp (or other transport) connection */
-struct Netconn {
- Queue* reply; /* network output */
- char* raddr; /* remote caller's addr */
- Chan* chan; /* list of tcp channels */
-
- int alloc; /* flag: allocated */
-
- int state;
- Conn9p* conn9p; /* not reference-counted */
-
- Lock;
-};
-
-/*
- * incoming 9P network connection from a given machine.
- * typically will multiplex 9P sessions for multiple users.
- */
-struct Conn9p {
- QLock;
- Ref;
- int fd;
- char* dir;
- Netconn*netconn; /* cross-connection */
- char* raddr;
-};
-
static Network netif[Maxnets];
-static struct {
- Lock;
- Chan* chan;
-} netchans;
-static Queue *netoq; /* only one network output queue is needed */
char *annstrs[Maxnets] = {
"tcp!*!9fs",
};
-/* never returns nil */
-static Chan*
-getchan(Conn9p *conn9p)
-{
- Netconn *netconn;
- Chan *cp, *xcp;
-
- lock(&netchans);
-
- /* look for conn9p's Chan */
- xcp = nil;
- for(cp = netchans.chan; cp; cp = netconn->chan) {
- netconn = cp->pdata;
- if(!netconn->alloc)
- xcp = cp; /* remember free Chan */
- else if(netconn->raddr != nil &&
- strcmp(conn9p->raddr, netconn->raddr) == 0) {
- unlock(&netchans);
- return cp; /* found conn9p's Chan */
- }
- }
-
- /* conn9p's Chan not found; if no free Chan, allocate & fill in one */
- cp = xcp;
- if(cp == nil) {
- cp = fs_chaninit(Devnet, 1, sizeof(Netconn));
- netconn = cp->pdata;
- netconn->chan = netchans.chan;
- netconn->state = Netopen; /* a guess */
- /* cross-connect netconn and conn9p */
- netconn->conn9p = conn9p; /* not reference-counted */
- conn9p->netconn = netconn;
- netchans.chan = cp;
- }
-
- /* fill in Chan's netconn */
- netconn = cp->pdata;
- netconn->raddr = strdup(conn9p->raddr);
-
- /* fill in Chan */
- cp->send = serveq;
- if (cp->reply == nil)
- cp->reply = netoq;
- netconn->reply = netoq;
- cp->protocol = nil;
- cp->msize = 0;
- cp->whotime = 0;
- strncpy(cp->whochan, conn9p->raddr, sizeof cp->whochan);
-// cp->whoprint = tcpwhoprint;
- netconn->alloc = 1;
-
- unlock(&netchans);
- return cp;
-}
-
-static char *
-fd2name(int fd)
-{
- char data[128];
-
- if (fd2path(fd, data, sizeof data) < 0)
- return strdup("/GOK");
- return strdup(data);
-}
-
-static void
-hangupdfd(int dfd)
-{
- int ctlfd;
- char *end, *data;
-
- data = fd2name(dfd);
- close(dfd);
-
- end = strstr(data, "/data");
- if (end != nil)
- strcpy(end, "/ctl");
- ctlfd = open(data, OWRITE);
- if (ctlfd >= 0) {
- hangup(ctlfd);
- close(ctlfd);
- }
- free(data);
-}
-
-void
-closechan(int n)
-{
- Chan *cp;
-
- for(cp = chans; cp; cp = cp->next)
- if(cp->whotime != 0 && cp->chan == n)
- fileinit(cp);
-}
-
-void
-nethangup(Chan *cp, char *msg, int dolock)
-{
- Netconn *netconn;
-
- netconn = cp->pdata;
- netconn->state = Netclosed;
-
- if(msg != nil)
- print("hangup! %s %s\n", msg, netconn->raddr);
-
- fileinit(cp);
- cp->whotime = 0;
- strcpy(cp->whoname, "<none>");
-
- if(dolock)
- lock(&netchans);
- netconn->alloc = 0;
- free(netconn->raddr);
- netconn->raddr = nil;
- if(dolock)
- unlock(&netchans);
-}
-
-void
-chanhangup(Chan *cp, char *msg, int dolock)
-{
- Netconn *netconn = cp->pdata;
- Conn9p *conn9p = netconn->conn9p;
-
- if (conn9p->fd > 0)
- hangupdfd(conn9p->fd); /* drop it */
- nethangup(cp, msg, dolock);
-}
-
-/*
- * returns length of next 9p message (including the length) and
- * leaves it in the first few bytes of abuf.
- */
-static long
-size9pmsg(int fd, void *abuf, uint n)
-{
- int m;
- uchar *buf = abuf;
-
- if (n < BIT32SZ)
- return -1; /* caller screwed up */
-
- /* read count */
- m = readn(fd, buf, BIT32SZ);
- if(m != BIT32SZ){
- if(m < 0)
- return -1;
- return 0;
- }
- return GBIT32(buf);
-}
-
-static int
-readalloc9pmsg(int fd, Msgbuf **mbp)
-{
- int m, len;
- uchar lenbuf[BIT32SZ];
- Msgbuf *mb;
-
- *mbp = nil;
- len = size9pmsg(fd, lenbuf, BIT32SZ);
- if (len <= 0)
- return len;
- if(len <= BIT32SZ || len > IOHDRSZ+Maxfdata){
- werrstr("bad length in 9P2000 message header");
- return -1;
- }
- if ((mb = mballoc(len, nil, Mbeth1)) == nil)
- panic("readalloc9pmsg: mballoc failed");
- *mbp = mb;
- memmove(mb->data, lenbuf, BIT32SZ);
- len -= BIT32SZ;
- m = readn(fd, mb->data+BIT32SZ, len);
- if(m < len)
- return 0;
- return BIT32SZ+m;
-}
-
-static void
-connection(void *v)
-{
- int n;
- char buf[64];
- Chan *chan9p;
- Conn9p *conn9p = v;
- Msgbuf *mb;
- NetConnInfo *nci;
-
- incref(conn9p); /* count connections */
- nci = getnetconninfo(conn9p->dir, conn9p->fd);
- if (nci == nil)
- panic("connection: getnetconninfo(%s, %d) failed",
- conn9p->dir, conn9p->fd);
- conn9p->raddr = nci->raddr;
-
- chan9p = getchan(conn9p);
- print("new connection on %s pid %d from %s\n",
- conn9p->dir, getpid(), conn9p->raddr);
-
- /*
- * reading from a pipe or a network device
- * will give an error after a few eof reads.
- * however, we cannot tell the difference
- * between a zero-length read and an interrupt
- * on the processes writing to us,
- * so we wait for the error.
- */
- while (conn9p->fd > 0 && (n = readalloc9pmsg(conn9p->fd, &mb)) >= 0) {
- if(n == 0)
- continue;
- mb->param = (uintptr)conn9p; /* has fd for replies */
- mb->chan = chan9p;
-
- assert(mb->magic == Mbmagic);
- incref(conn9p); /* & count packets in flight */
- fs_send(serveq, mb); /* to 9P server processes */
- /* mb will be freed by receiving process */
- }
-
- rerrstr(buf, sizeof buf);
-
- qlock(conn9p);
- print("connection hung up from %s\n", conn9p->dir);
- if (conn9p->fd > 0) /* not poisoned yet? */
- hangupdfd(conn9p->fd); /* poison the fd */
-
- nethangup(chan9p, "remote hung up", 1);
- closechan(chan9p->chan);
-
- conn9p->fd = -1; /* poison conn9p */
- if (decref(conn9p) == 0) { /* last conn.? turn the lights off */
- free(conn9p->dir);
- qunlock(conn9p);
- free(conn9p);
- } else
- qunlock(conn9p);
-
- freenetconninfo(nci);
-
- if(buf[0] == '\0' || strstr(buf, "hungup") != nil)
- exits("");
- sysfatal("mount read, pid %d", getpid());
-}
-
static void
neti(void *v)
{
int lisfd, accfd;
Network *net;
- Conn9p *conn9p;
+ NetConnInfo *nci;
net = v;
print("net%di\n", net->ctlrno);
@@ -362,77 +72,23 @@ neti(void *v)
continue;
}
- /* accepted that call */
- conn9p = malloc(sizeof *conn9p);
- conn9p->dir = strdup(net->lisdir);
- conn9p->fd = accfd;
- newproc(connection, conn9p, smprint("9P read %s", conn9p->dir));
+ nci = getnetconninfo(net->lisdir, accfd);
+ srvchan(accfd, nci->raddr);
+ freenetconninfo(nci);
close(lisfd);
}
}
-/* only need one of these for all network connections, thus all interfaces */
-static void
-neto(void *)
-{
- int len, datafd;
- Msgbuf *mb;
- Conn9p *conn9p;
-
- print("neto\n");
- for(;;) {
- /* receive 9P answer from 9P server processes */
- while((mb = fs_recv(netoq, 0)) == nil)
- continue;
-
- if(mb->data == nil) {
- print("neto: pkt nil cat=%d free=%d\n",
- mb->category, mb->flags&FREE);
- if(!(mb->flags & FREE))
- mbfree(mb);
- continue;
- }
-
- /* send answer back over the network connection in the reply */
- len = mb->count;
- conn9p = (Conn9p *)mb->param;
- assert(conn9p);
-
- qlock(conn9p);
- datafd = conn9p->fd;
- assert(len >= 0);
- /* datafd < 0 probably indicates poisoning by the read side */
- if (datafd < 0 || write(datafd, mb->data, len) != len) {
- print( "network write error (%r);");
- print(" closing connection for %s\n", conn9p->dir);
- nethangup(getchan(conn9p), "network write error", 1);
- if (datafd > 0)
- hangupdfd(datafd); /* drop it */
- conn9p->fd = -1; /* poison conn9p */
- }
- mbfree(mb);
- if (decref(conn9p) == 0)
- panic("neto: zero ref count");
- qunlock(conn9p);
- }
-}
-
void
netstart(void)
{
- int netorun = 0;
Network *net;
- if(netoq == nil)
- netoq = newqueue(Nqueue, "network reply");
for(net = &netif[0]; net < &netif[Maxnets]; net++){
if(net->dialstr == nil)
continue;
- sprint(net->oname, "neto");
- if (netorun++ == 0)
- newproc(neto, nil, net->oname);
- sprint(net->iname, "net%di", net->ctlrno);
- newproc(neti, net, net->iname);
+ sprint(net->name, "net%di", net->ctlrno);
+ newproc(neti, net, net->name);
}
}
diff --git a/sys/src/cmd/cwfs/pc.c b/sys/src/cmd/cwfs/pc.c
index a4aed8530..ea817c8f7 100644
--- a/sys/src/cmd/cwfs/pc.c
+++ b/sys/src/cmd/cwfs/pc.c
@@ -33,7 +33,7 @@ mconfinit(void)
}
Bterm(bp);
if (pgsize > 0 && userpgs > 0)
- size = (((userpgs - userused)*3LL)/4)*pgsize;
+ size = (((userpgs - userused)*1LL)/4)*pgsize;
}
mconf.memsize = size;
mbp = mconf.bank;
diff --git a/sys/src/cmd/cwfs/portdat.h b/sys/src/cmd/cwfs/portdat.h
index d01be6fea..a2e96b157 100644
--- a/sys/src/cmd/cwfs/portdat.h
+++ b/sys/src/cmd/cwfs/portdat.h
@@ -699,6 +699,7 @@ enum
Devfloppy, /* floppy drive */
Devswab, /* swab data between mem and device */
Devmirr, /* mirror devices */
+ Devsrv, /* pipes and network connections */
MAXDEV
};
diff --git a/sys/src/cmd/cwfs/portfns.h b/sys/src/cmd/cwfs/portfns.h
index e1810d869..3a2d70ac5 100644
--- a/sys/src/cmd/cwfs/portfns.h
+++ b/sys/src/cmd/cwfs/portfns.h
@@ -197,6 +197,7 @@ void schedinit(void);
int scsiio(Device*, int, uchar*, int, void*, int);
void scsiinit(void);
Off scsiread(int, void*, long);
+Devsize scsiseek(int, Devsize);
Off scsiwrite(int, void*, long);
char* sdof(Device*);
void sec2rtc(Timet, Rtc *);
@@ -229,7 +230,7 @@ void unlock(Lock*);
void newproc(void(*)(void *), void*, char*);
void wormcopy(void *);
void wormprobe(void);
-void synccopy(void);
+void synccopy(void *);
long wormsearch(Device*, int, long, long);
int wormread(Device*, Off, void*);
Devsize wormsize(Device*);
@@ -243,3 +244,6 @@ int wrenwrite(Device*, Off, void*);
void cmd_exec(char*);
void cmd_install(char*, char*, void (*)(int, char*[]));
ulong flag_install(char*, char*);
+void srvinit(void);
+Chan *srvchan(int, char *);
+
diff --git a/sys/src/cmd/cwfs/portmkfile b/sys/src/cmd/cwfs/portmkfile
index be276aca7..0bc734183 100644
--- a/sys/src/cmd/cwfs/portmkfile
+++ b/sys/src/cmd/cwfs/portmkfile
@@ -27,10 +27,12 @@ OFILES=\
time.$O\
uidgid.$O\
wren.$O\
+ srv.$O\
HFILES=\
../32bit.h\
../64bit.h\
+ ../64xbit.h\
../9p1.h\
../all.h\
dat.h\
diff --git a/sys/src/cmd/cwfs/srv.c b/sys/src/cmd/cwfs/srv.c
new file mode 100644
index 000000000..0cfafbb41
--- /dev/null
+++ b/sys/src/cmd/cwfs/srv.c
@@ -0,0 +1,209 @@
+#include "all.h"
+#include "io.h"
+#include <fcall.h> /* 9p2000 */
+#include <thread.h>
+
+enum {
+ Maxfdata = 8192,
+ Nqueue = 200, /* queue size (tunable) */
+ Nsrvo = 8, /* number of write workers */
+};
+
+typedef struct Srv Srv;
+struct Srv
+{
+ Ref;
+ char *name;
+ Chan *chan;
+ int fd;
+ char buf[64];
+};
+
+static struct {
+ Lock;
+ Chan *hd;
+} freechans;
+
+static Queue *srvoq;
+
+void
+chanhangup(Chan *chan, char *msg, int dolock)
+{
+ Srv *srv;
+
+ USED(dolock);
+ USED(msg);
+
+ fileinit(chan);
+ if(chan->type != Devsrv)
+ return;
+ srv = chan->pdata;
+ if(srv == nil || srv->chan != chan)
+ return;
+ close(srv->fd);
+ srv->fd = -1;
+}
+
+static void
+srvput(Srv *srv)
+{
+ Chan *chan;
+
+ if(decref(srv))
+ return;
+
+ print("%s closed\n", srv->name);
+
+ chanhangup(srv->chan, "", 0);
+ memset(srv->buf, 0, sizeof(srv->buf));
+ chan = srv->chan;
+ lock(&freechans);
+ srv->chan = freechans.hd;
+ freechans.hd = chan;
+ unlock(&freechans);
+}
+
+static void
+srvo(void *)
+{
+ Srv *srv;
+ Msgbuf *mb;
+ char buf[ERRMAX];
+
+ print("srvo\n");
+
+ for(;;){
+ mb = fs_recv(srvoq, 0);
+ if(mb == nil)
+ continue;
+ if(mb->data == nil){
+ if(!(mb->flags & FREE))
+ mbfree(mb);
+ continue;
+ }
+ srv = (Srv*)mb->param;
+ while((srv->fd >= 0) && (write(srv->fd, mb->data, mb->count) != mb->count)){
+ rerrstr(buf, sizeof(buf));
+ if(strstr(buf, "interrupt"))
+ continue;
+
+ if(buf[0])
+ print("srvo %s: %s\n", srv->name, buf);
+ chanhangup(srv->chan, buf, 0);
+ break;
+ }
+ mbfree(mb);
+ srvput(srv);
+ }
+}
+
+static void
+srvi(void *aux)
+{
+ Srv *srv = aux;
+ Msgbuf *mb, *ms;
+ uchar *b, *p, *e;
+ int n, m;
+ char buf[ERRMAX];
+
+ print("srvi %s\n", srv->name);
+
+ if((mb = mballoc(IOHDRSZ+Maxfdata, srv->chan, Mbeth1)) == nil)
+ panic("srvi %s: mballoc failed", srv->name);
+ b = mb->data;
+ p = b;
+ e = b + mb->count;
+
+Read:
+ while((srv->fd >= 0) && ((n = read(srv->fd, p, e - p)) >= 0)){
+ p += n;
+ while((p - b) >= BIT32SZ){
+ m = GBIT32(b);
+ if((m < BIT32SZ) || (m > mb->count)){
+ werrstr("bad length in 9P2000 message header");
+ goto Error;
+ }
+ if((n = (p - b) - m) < 0){
+ e = b + m;
+ goto Read;
+ }
+ if(m <= SMALLBUF){
+ if((ms = mballoc(m, srv->chan, Mbeth1)) == nil)
+ panic("srvi %s: mballoc failed", srv->name);
+ memmove(ms->data, b, m);
+ } else {
+ ms = mb;
+ if((mb = mballoc(mb->count, srv->chan, Mbeth1)) == nil)
+ panic("srvi %s: mballoc failed", srv->name);
+ ms->count = m;
+ }
+ if(n > 0)
+ memmove(mb->data, b + m, n);
+ b = mb->data;
+ p = b + n;
+
+ incref(srv);
+ ms->param = (uint)srv;
+ fs_send(serveq, ms);
+ }
+ e = b + mb->count;
+ }
+
+Error:
+ rerrstr(buf, sizeof(buf));
+ if(strstr(buf, "interrupt"))
+ goto Read;
+
+ if(buf[0])
+ print("srvi %s: %s\n", srv->name, buf);
+ chanhangup(srv->chan, buf, 0);
+ srvput(srv);
+
+ mbfree(mb);
+}
+
+Chan*
+srvchan(int fd, char *name)
+{
+ Chan *chan;
+ Srv *srv;
+
+ lock(&freechans);
+ if(chan = freechans.hd){
+ srv = chan->pdata;
+ freechans.hd = srv->chan;
+ unlock(&freechans);
+ } else {
+ unlock(&freechans);
+ chan = fs_chaninit(Devsrv, 1, sizeof(*srv));
+ srv = chan->pdata;
+ }
+ chan->reply = srvoq;
+ if(chan->send == nil)
+ chan->send = serveq;
+ chan->protocol = nil;
+ chan->msize = 0;
+ chan->whotime = 0;
+
+ incref(srv);
+ srv->chan = chan;
+ srv->fd = fd;
+ snprint(srv->buf, sizeof(srv->buf), "srvi %s", name);
+ srv->name = strchr(srv->buf, ' ')+1;
+ newproc(srvi, srv, srv->buf);
+
+ return chan;
+}
+
+void
+srvinit(void)
+{
+ int i;
+
+ if(srvoq != nil)
+ return;
+
+ srvoq = newqueue(Nqueue, "srvoq");
+ for(i=0; i<Nsrvo; i++)
+ newproc(srvo, nil, "srvo");
+}
diff --git a/sys/src/cmd/cwfs/sub.c b/sys/src/cmd/cwfs/sub.c
index 44f985757..bca9e5264 100644
--- a/sys/src/cmd/cwfs/sub.c
+++ b/sys/src/cmd/cwfs/sub.c
@@ -614,7 +614,9 @@ Zfmt(Fmt* fmt)
case Devlworm:
if (c == '\0')
c = 'l';
- if(d->wren.ctrl == 0 && d->wren.lun == 0)
+ if(d->wren.file)
+ snprint(s, sizeof(s), "%c\"%s\"", c, d->wren.file);
+ else if(d->wren.ctrl == 0 && d->wren.lun == 0)
sprint(s, "%c%d", c, d->wren.targ);
else
sprint(s, "%c%d.%d.%d", c, d->wren.ctrl, d->wren.targ,
diff --git a/sys/src/cmd/cwfs/wren.c b/sys/src/cmd/cwfs/wren.c
index 5f67706bc..9b8f09c8b 100644
--- a/sys/src/cmd/cwfs/wren.c
+++ b/sys/src/cmd/cwfs/wren.c
@@ -116,5 +116,6 @@ wrenwrite(Device *d, Off b, void *c)
cons.nwrenwe++;
r = 1;
}
+
return r;
}