summaryrefslogtreecommitdiff
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
parent7208d528bd42f981f2535403f72e4c0d7d8df643 (diff)
downloadplan9front-67e93d6a0a4f15192638e131413b9d64c4269c76.tar.xz
updating cwfs and moving installer in /rc/bin
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/bootfloppy (renamed from sys/lib/dist/pc/inst/bootfloppy)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/bootplan9 (renamed from sys/lib/dist/pc/inst/bootplan9)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/bootsetup (renamed from sys/lib/dist/pc/inst/bootsetup)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/bootwin9x (renamed from sys/lib/dist/pc/inst/bootwin9x)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/bootwinnt (renamed from sys/lib/dist/pc/inst/bootwinnt)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configarch (renamed from sys/lib/dist/pc/inst/configarch)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configdist (renamed from sys/lib/dist/pc/inst/configdist)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configether (renamed from sys/lib/dist/pc/inst/configether)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configfs (renamed from sys/lib/dist/pc/inst/configfs)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configip (renamed from sys/lib/dist/pc/inst/configip)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/confignet (renamed from sys/lib/dist/pc/inst/confignet)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/configppp (renamed from sys/lib/dist/pc/inst/configppp)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/copydist (renamed from sys/lib/dist/pc/inst/copydist)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/defs (renamed from sys/lib/dist/pc/inst/defs)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/download (renamed from sys/lib/dist/pc/inst/download)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/finish (renamed from sys/lib/dist/pc/inst/finish)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/fmtfossil (renamed from sys/lib/dist/pc/inst/fmtfossil)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/fmtventi (renamed from sys/lib/dist/pc/inst/fmtventi)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/gui (renamed from sys/lib/dist/pc/inst/gui)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/halt (renamed from sys/lib/dist/pc/inst/halt)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/hasmbr (renamed from sys/lib/dist/pc/inst/hasmbr)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/hdrs (renamed from sys/lib/dist/pc/inst/hdrs)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/is9660 (renamed from sys/lib/dist/pc/inst/is9660)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isext2 (renamed from sys/lib/dist/pc/inst/isext2)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isfat (renamed from sys/lib/dist/pc/inst/isfat)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isfossil (renamed from sys/lib/dist/pc/inst/isfossil)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isventi (renamed from sys/lib/dist/pc/inst/isventi)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isventiarenas (renamed from sys/lib/dist/pc/inst/isventiarenas)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/isventiisect (renamed from sys/lib/dist/pc/inst/isventiisect)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/main (renamed from sys/lib/dist/pc/inst/main)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/mainloop (renamed from sys/lib/dist/pc/inst/mainloop)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/mkini.awk (renamed from sys/lib/dist/pc/inst/mkini.awk)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/mountdist (renamed from sys/lib/dist/pc/inst/mountdist)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/mountfossil (renamed from sys/lib/dist/pc/inst/mountfossil)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/mountfs (renamed from sys/lib/dist/pc/inst/mountfs)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/moveoldfs (renamed from sys/lib/dist/pc/inst/moveoldfs)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/partdisk (renamed from sys/lib/dist/pc/inst/partdisk)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/prepdisk (renamed from sys/lib/dist/pc/inst/prepdisk)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/replcfg (renamed from sys/lib/dist/pc/inst/replcfg)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/startether (renamed from sys/lib/dist/pc/inst/startether)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/startppp (renamed from sys/lib/dist/pc/inst/startppp)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/startwin (renamed from sys/lib/dist/pc/inst/startwin)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/stop (renamed from sys/lib/dist/pc/inst/stop)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/stopether (renamed from sys/lib/dist/pc/inst/stopether)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/stopppp (renamed from sys/lib/dist/pc/inst/stopppp)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/textonly (renamed from sys/lib/dist/pc/inst/textonly)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/watchfd (renamed from sys/lib/dist/pc/inst/watchfd)0
-rwxr-xr-x[-rw-r--r--]rc/bin/inst/xxx (renamed from sys/lib/dist/pc/inst/xxx)0
-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/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, 1169 deletions
diff --git a/sys/lib/dist/pc/inst/bootfloppy b/rc/bin/inst/bootfloppy
index c9aebbc51..c9aebbc51 100644..100755
--- a/sys/lib/dist/pc/inst/bootfloppy
+++ b/rc/bin/inst/bootfloppy
diff --git a/sys/lib/dist/pc/inst/bootplan9 b/rc/bin/inst/bootplan9
index 942c043b0..942c043b0 100644..100755
--- a/sys/lib/dist/pc/inst/bootplan9
+++ b/rc/bin/inst/bootplan9
diff --git a/sys/lib/dist/pc/inst/bootsetup b/rc/bin/inst/bootsetup
index cc22fe6ee..cc22fe6ee 100644..100755
--- a/sys/lib/dist/pc/inst/bootsetup
+++ b/rc/bin/inst/bootsetup
diff --git a/sys/lib/dist/pc/inst/bootwin9x b/rc/bin/inst/bootwin9x
index 68c2d1923..68c2d1923 100644..100755
--- a/sys/lib/dist/pc/inst/bootwin9x
+++ b/rc/bin/inst/bootwin9x
diff --git a/sys/lib/dist/pc/inst/bootwinnt b/rc/bin/inst/bootwinnt
index ee92f5d76..ee92f5d76 100644..100755
--- a/sys/lib/dist/pc/inst/bootwinnt
+++ b/rc/bin/inst/bootwinnt
diff --git a/sys/lib/dist/pc/inst/configarch b/rc/bin/inst/configarch
index 61912bfdb..61912bfdb 100644..100755
--- a/sys/lib/dist/pc/inst/configarch
+++ b/rc/bin/inst/configarch
diff --git a/sys/lib/dist/pc/inst/configdist b/rc/bin/inst/configdist
index 3e99bea0d..3e99bea0d 100644..100755
--- a/sys/lib/dist/pc/inst/configdist
+++ b/rc/bin/inst/configdist
diff --git a/sys/lib/dist/pc/inst/configether b/rc/bin/inst/configether
index 0922ea339..0922ea339 100644..100755
--- a/sys/lib/dist/pc/inst/configether
+++ b/rc/bin/inst/configether
diff --git a/sys/lib/dist/pc/inst/configfs b/rc/bin/inst/configfs
index 81f82897c..81f82897c 100644..100755
--- a/sys/lib/dist/pc/inst/configfs
+++ b/rc/bin/inst/configfs
diff --git a/sys/lib/dist/pc/inst/configip b/rc/bin/inst/configip
index a7873c9f1..a7873c9f1 100644..100755
--- a/sys/lib/dist/pc/inst/configip
+++ b/rc/bin/inst/configip
diff --git a/sys/lib/dist/pc/inst/confignet b/rc/bin/inst/confignet
index 182ed40cb..182ed40cb 100644..100755
--- a/sys/lib/dist/pc/inst/confignet
+++ b/rc/bin/inst/confignet
diff --git a/sys/lib/dist/pc/inst/configppp b/rc/bin/inst/configppp
index 6bbffc4f0..6bbffc4f0 100644..100755
--- a/sys/lib/dist/pc/inst/configppp
+++ b/rc/bin/inst/configppp
diff --git a/sys/lib/dist/pc/inst/copydist b/rc/bin/inst/copydist
index 507d5602b..507d5602b 100644..100755
--- a/sys/lib/dist/pc/inst/copydist
+++ b/rc/bin/inst/copydist
diff --git a/sys/lib/dist/pc/inst/defs b/rc/bin/inst/defs
index f9c9454c0..f9c9454c0 100644..100755
--- a/sys/lib/dist/pc/inst/defs
+++ b/rc/bin/inst/defs
diff --git a/sys/lib/dist/pc/inst/download b/rc/bin/inst/download
index 70d7f5ba7..70d7f5ba7 100644..100755
--- a/sys/lib/dist/pc/inst/download
+++ b/rc/bin/inst/download
diff --git a/sys/lib/dist/pc/inst/finish b/rc/bin/inst/finish
index e616e64e1..e616e64e1 100644..100755
--- a/sys/lib/dist/pc/inst/finish
+++ b/rc/bin/inst/finish
diff --git a/sys/lib/dist/pc/inst/fmtfossil b/rc/bin/inst/fmtfossil
index 98bf33fc1..98bf33fc1 100644..100755
--- a/sys/lib/dist/pc/inst/fmtfossil
+++ b/rc/bin/inst/fmtfossil
diff --git a/sys/lib/dist/pc/inst/fmtventi b/rc/bin/inst/fmtventi
index db79440ac..db79440ac 100644..100755
--- a/sys/lib/dist/pc/inst/fmtventi
+++ b/rc/bin/inst/fmtventi
diff --git a/sys/lib/dist/pc/inst/gui b/rc/bin/inst/gui
index afb0981d0..afb0981d0 100644..100755
--- a/sys/lib/dist/pc/inst/gui
+++ b/rc/bin/inst/gui
diff --git a/sys/lib/dist/pc/inst/halt b/rc/bin/inst/halt
index 4554359f0..4554359f0 100644..100755
--- a/sys/lib/dist/pc/inst/halt
+++ b/rc/bin/inst/halt
diff --git a/sys/lib/dist/pc/inst/hasmbr b/rc/bin/inst/hasmbr
index 1adaa0a5b..1adaa0a5b 100644..100755
--- a/sys/lib/dist/pc/inst/hasmbr
+++ b/rc/bin/inst/hasmbr
diff --git a/sys/lib/dist/pc/inst/hdrs b/rc/bin/inst/hdrs
index 0b934999f..0b934999f 100644..100755
--- a/sys/lib/dist/pc/inst/hdrs
+++ b/rc/bin/inst/hdrs
diff --git a/sys/lib/dist/pc/inst/is9660 b/rc/bin/inst/is9660
index 1d138e55e..1d138e55e 100644..100755
--- a/sys/lib/dist/pc/inst/is9660
+++ b/rc/bin/inst/is9660
diff --git a/sys/lib/dist/pc/inst/isext2 b/rc/bin/inst/isext2
index b79265f6a..b79265f6a 100644..100755
--- a/sys/lib/dist/pc/inst/isext2
+++ b/rc/bin/inst/isext2
diff --git a/sys/lib/dist/pc/inst/isfat b/rc/bin/inst/isfat
index 860278571..860278571 100644..100755
--- a/sys/lib/dist/pc/inst/isfat
+++ b/rc/bin/inst/isfat
diff --git a/sys/lib/dist/pc/inst/isfossil b/rc/bin/inst/isfossil
index 21c7d3e29..21c7d3e29 100644..100755
--- a/sys/lib/dist/pc/inst/isfossil
+++ b/rc/bin/inst/isfossil
diff --git a/sys/lib/dist/pc/inst/isventi b/rc/bin/inst/isventi
index 555c27a7f..555c27a7f 100644..100755
--- a/sys/lib/dist/pc/inst/isventi
+++ b/rc/bin/inst/isventi
diff --git a/sys/lib/dist/pc/inst/isventiarenas b/rc/bin/inst/isventiarenas
index dfce274de..dfce274de 100644..100755
--- a/sys/lib/dist/pc/inst/isventiarenas
+++ b/rc/bin/inst/isventiarenas
diff --git a/sys/lib/dist/pc/inst/isventiisect b/rc/bin/inst/isventiisect
index 0b11c9c4e..0b11c9c4e 100644..100755
--- a/sys/lib/dist/pc/inst/isventiisect
+++ b/rc/bin/inst/isventiisect
diff --git a/sys/lib/dist/pc/inst/main b/rc/bin/inst/main
index 25ac0d168..25ac0d168 100644..100755
--- a/sys/lib/dist/pc/inst/main
+++ b/rc/bin/inst/main
diff --git a/sys/lib/dist/pc/inst/mainloop b/rc/bin/inst/mainloop
index 94d58efc4..94d58efc4 100644..100755
--- a/sys/lib/dist/pc/inst/mainloop
+++ b/rc/bin/inst/mainloop
diff --git a/sys/lib/dist/pc/inst/mkini.awk b/rc/bin/inst/mkini.awk
index 7ddf6a80f..7ddf6a80f 100644..100755
--- a/sys/lib/dist/pc/inst/mkini.awk
+++ b/rc/bin/inst/mkini.awk
diff --git a/sys/lib/dist/pc/inst/mountdist b/rc/bin/inst/mountdist
index 8d171a1cc..8d171a1cc 100644..100755
--- a/sys/lib/dist/pc/inst/mountdist
+++ b/rc/bin/inst/mountdist
diff --git a/sys/lib/dist/pc/inst/mountfossil b/rc/bin/inst/mountfossil
index e98a3f48c..e98a3f48c 100644..100755
--- a/sys/lib/dist/pc/inst/mountfossil
+++ b/rc/bin/inst/mountfossil
diff --git a/sys/lib/dist/pc/inst/mountfs b/rc/bin/inst/mountfs
index 8aa9b16ff..8aa9b16ff 100644..100755
--- a/sys/lib/dist/pc/inst/mountfs
+++ b/rc/bin/inst/mountfs
diff --git a/sys/lib/dist/pc/inst/moveoldfs b/rc/bin/inst/moveoldfs
index 819beeb39..819beeb39 100644..100755
--- a/sys/lib/dist/pc/inst/moveoldfs
+++ b/rc/bin/inst/moveoldfs
diff --git a/sys/lib/dist/pc/inst/partdisk b/rc/bin/inst/partdisk
index 430d45f3f..430d45f3f 100644..100755
--- a/sys/lib/dist/pc/inst/partdisk
+++ b/rc/bin/inst/partdisk
diff --git a/sys/lib/dist/pc/inst/prepdisk b/rc/bin/inst/prepdisk
index 6ef4a92f8..6ef4a92f8 100644..100755
--- a/sys/lib/dist/pc/inst/prepdisk
+++ b/rc/bin/inst/prepdisk
diff --git a/sys/lib/dist/pc/inst/replcfg b/rc/bin/inst/replcfg
index 30aed8607..30aed8607 100644..100755
--- a/sys/lib/dist/pc/inst/replcfg
+++ b/rc/bin/inst/replcfg
diff --git a/sys/lib/dist/pc/inst/startether b/rc/bin/inst/startether
index 077504c1a..077504c1a 100644..100755
--- a/sys/lib/dist/pc/inst/startether
+++ b/rc/bin/inst/startether
diff --git a/sys/lib/dist/pc/inst/startppp b/rc/bin/inst/startppp
index 02bc090ef..02bc090ef 100644..100755
--- a/sys/lib/dist/pc/inst/startppp
+++ b/rc/bin/inst/startppp
diff --git a/sys/lib/dist/pc/inst/startwin b/rc/bin/inst/startwin
index bcd542890..bcd542890 100644..100755
--- a/sys/lib/dist/pc/inst/startwin
+++ b/rc/bin/inst/startwin
diff --git a/sys/lib/dist/pc/inst/stop b/rc/bin/inst/stop
index a1d48694f..a1d48694f 100644..100755
--- a/sys/lib/dist/pc/inst/stop
+++ b/rc/bin/inst/stop
diff --git a/sys/lib/dist/pc/inst/stopether b/rc/bin/inst/stopether
index 59063f0e0..59063f0e0 100644..100755
--- a/sys/lib/dist/pc/inst/stopether
+++ b/rc/bin/inst/stopether
diff --git a/sys/lib/dist/pc/inst/stopppp b/rc/bin/inst/stopppp
index 70b9ce1fe..70b9ce1fe 100644..100755
--- a/sys/lib/dist/pc/inst/stopppp
+++ b/rc/bin/inst/stopppp
diff --git a/sys/lib/dist/pc/inst/textonly b/rc/bin/inst/textonly
index 1c3922ce4..1c3922ce4 100644..100755
--- a/sys/lib/dist/pc/inst/textonly
+++ b/rc/bin/inst/textonly
diff --git a/sys/lib/dist/pc/inst/watchfd b/rc/bin/inst/watchfd
index ca37294e3..ca37294e3 100644..100755
--- a/sys/lib/dist/pc/inst/watchfd
+++ b/rc/bin/inst/watchfd
diff --git a/sys/lib/dist/pc/inst/xxx b/rc/bin/inst/xxx
index 56b4eb23a..56b4eb23a 100644..100755
--- a/sys/lib/dist/pc/inst/xxx
+++ b/rc/bin/inst/xxx
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/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;
}