From 67e93d6a0a4f15192638e131413b9d64c4269c76 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 12 Apr 2011 15:53:55 +0000 Subject: [PATCH] updating cwfs and moving installer in /rc/bin --- {sys/lib/dist/pc => rc/bin}/inst/bootfloppy | 0 {sys/lib/dist/pc => rc/bin}/inst/bootplan9 | 0 {sys/lib/dist/pc => rc/bin}/inst/bootsetup | 0 {sys/lib/dist/pc => rc/bin}/inst/bootwin9x | 0 {sys/lib/dist/pc => rc/bin}/inst/bootwinnt | 0 {sys/lib/dist/pc => rc/bin}/inst/configarch | 0 {sys/lib/dist/pc => rc/bin}/inst/configdist | 0 {sys/lib/dist/pc => rc/bin}/inst/configether | 0 {sys/lib/dist/pc => rc/bin}/inst/configfs | 0 {sys/lib/dist/pc => rc/bin}/inst/configip | 0 {sys/lib/dist/pc => rc/bin}/inst/confignet | 0 {sys/lib/dist/pc => rc/bin}/inst/configppp | 0 {sys/lib/dist/pc => rc/bin}/inst/copydist | 0 {sys/lib/dist/pc => rc/bin}/inst/defs | 0 {sys/lib/dist/pc => rc/bin}/inst/download | 0 {sys/lib/dist/pc => rc/bin}/inst/finish | 0 {sys/lib/dist/pc => rc/bin}/inst/fmtfossil | 0 {sys/lib/dist/pc => rc/bin}/inst/fmtventi | 0 {sys/lib/dist/pc => rc/bin}/inst/gui | 0 {sys/lib/dist/pc => rc/bin}/inst/halt | 0 {sys/lib/dist/pc => rc/bin}/inst/hasmbr | 0 {sys/lib/dist/pc => rc/bin}/inst/hdrs | 0 {sys/lib/dist/pc => rc/bin}/inst/is9660 | 0 {sys/lib/dist/pc => rc/bin}/inst/isext2 | 0 {sys/lib/dist/pc => rc/bin}/inst/isfat | 0 {sys/lib/dist/pc => rc/bin}/inst/isfossil | 0 {sys/lib/dist/pc => rc/bin}/inst/isventi | 0 .../lib/dist/pc => rc/bin}/inst/isventiarenas | 0 {sys/lib/dist/pc => rc/bin}/inst/isventiisect | 0 {sys/lib/dist/pc => rc/bin}/inst/main | 0 {sys/lib/dist/pc => rc/bin}/inst/mainloop | 0 {sys/lib/dist/pc => rc/bin}/inst/mkini.awk | 0 {sys/lib/dist/pc => rc/bin}/inst/mountdist | 0 {sys/lib/dist/pc => rc/bin}/inst/mountfossil | 0 {sys/lib/dist/pc => rc/bin}/inst/mountfs | 0 {sys/lib/dist/pc => rc/bin}/inst/moveoldfs | 0 {sys/lib/dist/pc => rc/bin}/inst/partdisk | 0 {sys/lib/dist/pc => rc/bin}/inst/prepdisk | 0 {sys/lib/dist/pc => rc/bin}/inst/replcfg | 0 {sys/lib/dist/pc => rc/bin}/inst/startether | 0 {sys/lib/dist/pc => rc/bin}/inst/startppp | 0 {sys/lib/dist/pc => rc/bin}/inst/startwin | 0 {sys/lib/dist/pc => rc/bin}/inst/stop | 0 {sys/lib/dist/pc => rc/bin}/inst/stopether | 0 {sys/lib/dist/pc => rc/bin}/inst/stopppp | 0 {sys/lib/dist/pc => rc/bin}/inst/textonly | 0 {sys/lib/dist/pc => rc/bin}/inst/watchfd | 0 {sys/lib/dist/pc => rc/bin}/inst/xxx | 0 sys/lib/dist/mkfile | 3 - sys/lib/dist/pc/emptyfile | 0 sys/lib/dist/pc/glenda/bin/rc/riostart | 4 - sys/lib/dist/pc/glenda/lib/first.window | 11 - sys/lib/dist/pc/glenda/lib/profile | 16 - sys/lib/dist/pc/mkfile | 100 ----- sys/lib/dist/pc/plan9.ini | 19 - sys/lib/dist/pc/plan9.ini.blank | 10 - sys/lib/dist/pc/plan9.ini.vmware | 20 - sys/lib/dist/pc/proto | 175 --------- sys/lib/dist/pc/sub/D003753 | 22 -- sys/lib/dist/pc/sub/F004116 | 24 -- sys/lib/dist/pc/sub/bind | 21 - sys/lib/dist/pc/sub/bunzip2 | 4 - sys/lib/dist/pc/sub/common | 123 ------ sys/lib/dist/pc/sub/compactdb | 4 - sys/lib/dist/pc/sub/local | 8 - sys/lib/dist/pc/sub/mkdir | 3 - sys/lib/dist/pc/sub/ndist | 16 - sys/lib/dist/pc/sub/pci | 5 - sys/lib/dist/pc/sub/pwd | 3 - sys/lib/dist/pc/sub/ramfs | 4 - sys/lib/dist/pc/sub/sleep | 8 - sys/lib/dist/pc/sub/termrc | 121 ------ sys/lib/dist/pc/sub/unmount | 3 - sys/lib/dist/pc/sub/users | 7 - sys/lib/dist/pc/sub/vmware | 10 - sys/lib/dist/pc/subst/plan9.ini | 40 -- sys/src/cmd/cwfs/64xbit.h | 22 ++ sys/src/cmd/cwfs/con.c | 7 +- sys/src/cmd/cwfs/config.c | 41 +- sys/src/cmd/cwfs/cwfs64/conf.c | 31 ++ sys/src/cmd/cwfs/cwfs64/dat.h | 36 ++ sys/src/cmd/cwfs/cwfs64/mkfile | 2 + sys/src/cmd/cwfs/cwfs64x/conf.c | 31 ++ sys/src/cmd/cwfs/cwfs64x/dat.h | 36 ++ sys/src/cmd/cwfs/cwfs64x/mkfile | 2 + sys/src/cmd/cwfs/iobuf.c | 34 +- sys/src/cmd/cwfs/main.c | 101 ++++- sys/src/cmd/cwfs/mkfile | 7 +- sys/src/cmd/cwfs/net.c | 358 +----------------- sys/src/cmd/cwfs/pc.c | 2 +- sys/src/cmd/cwfs/portdat.h | 1 + sys/src/cmd/cwfs/portfns.h | 6 +- sys/src/cmd/cwfs/portmkfile | 2 + sys/src/cmd/cwfs/srv.c | 209 ++++++++++ sys/src/cmd/cwfs/sub.c | 4 +- sys/src/cmd/cwfs/wren.c | 1 + 96 files changed, 548 insertions(+), 1169 deletions(-) rename {sys/lib/dist/pc => rc/bin}/inst/bootfloppy (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/bootplan9 (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/bootsetup (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/bootwin9x (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/bootwinnt (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configarch (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configdist (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configether (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configfs (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configip (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/confignet (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/configppp (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/copydist (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/defs (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/download (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/finish (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/fmtfossil (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/fmtventi (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/gui (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/halt (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/hasmbr (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/hdrs (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/is9660 (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isext2 (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isfat (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isfossil (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isventi (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isventiarenas (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/isventiisect (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/main (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/mainloop (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/mkini.awk (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/mountdist (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/mountfossil (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/mountfs (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/moveoldfs (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/partdisk (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/prepdisk (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/replcfg (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/startether (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/startppp (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/startwin (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/stop (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/stopether (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/stopppp (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/textonly (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/watchfd (100%) mode change 100644 => 100755 rename {sys/lib/dist/pc => rc/bin}/inst/xxx (100%) mode change 100644 => 100755 delete mode 100644 sys/lib/dist/pc/emptyfile delete mode 100644 sys/lib/dist/pc/glenda/bin/rc/riostart delete mode 100644 sys/lib/dist/pc/glenda/lib/first.window delete mode 100644 sys/lib/dist/pc/glenda/lib/profile delete mode 100644 sys/lib/dist/pc/mkfile delete mode 100644 sys/lib/dist/pc/plan9.ini delete mode 100644 sys/lib/dist/pc/plan9.ini.blank delete mode 100644 sys/lib/dist/pc/plan9.ini.vmware delete mode 100644 sys/lib/dist/pc/proto delete mode 100644 sys/lib/dist/pc/sub/D003753 delete mode 100644 sys/lib/dist/pc/sub/F004116 delete mode 100644 sys/lib/dist/pc/sub/bind delete mode 100644 sys/lib/dist/pc/sub/bunzip2 delete mode 100644 sys/lib/dist/pc/sub/common delete mode 100644 sys/lib/dist/pc/sub/compactdb delete mode 100644 sys/lib/dist/pc/sub/local delete mode 100644 sys/lib/dist/pc/sub/mkdir delete mode 100644 sys/lib/dist/pc/sub/ndist delete mode 100644 sys/lib/dist/pc/sub/pci delete mode 100644 sys/lib/dist/pc/sub/pwd delete mode 100644 sys/lib/dist/pc/sub/ramfs delete mode 100644 sys/lib/dist/pc/sub/sleep delete mode 100644 sys/lib/dist/pc/sub/termrc delete mode 100644 sys/lib/dist/pc/sub/unmount delete mode 100644 sys/lib/dist/pc/sub/users delete mode 100644 sys/lib/dist/pc/sub/vmware delete mode 100644 sys/lib/dist/pc/subst/plan9.ini create mode 100644 sys/src/cmd/cwfs/64xbit.h create mode 100644 sys/src/cmd/cwfs/cwfs64/conf.c create mode 100644 sys/src/cmd/cwfs/cwfs64/dat.h create mode 100644 sys/src/cmd/cwfs/cwfs64/mkfile create mode 100644 sys/src/cmd/cwfs/cwfs64x/conf.c create mode 100644 sys/src/cmd/cwfs/cwfs64x/dat.h create mode 100644 sys/src/cmd/cwfs/cwfs64x/mkfile create mode 100644 sys/src/cmd/cwfs/srv.c diff --git a/sys/lib/dist/pc/inst/bootfloppy b/rc/bin/inst/bootfloppy old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/bootfloppy rename to rc/bin/inst/bootfloppy diff --git a/sys/lib/dist/pc/inst/bootplan9 b/rc/bin/inst/bootplan9 old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/bootplan9 rename to rc/bin/inst/bootplan9 diff --git a/sys/lib/dist/pc/inst/bootsetup b/rc/bin/inst/bootsetup old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/bootsetup rename to rc/bin/inst/bootsetup diff --git a/sys/lib/dist/pc/inst/bootwin9x b/rc/bin/inst/bootwin9x old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/bootwin9x rename to rc/bin/inst/bootwin9x diff --git a/sys/lib/dist/pc/inst/bootwinnt b/rc/bin/inst/bootwinnt old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/bootwinnt rename to rc/bin/inst/bootwinnt diff --git a/sys/lib/dist/pc/inst/configarch b/rc/bin/inst/configarch old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configarch rename to rc/bin/inst/configarch diff --git a/sys/lib/dist/pc/inst/configdist b/rc/bin/inst/configdist old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configdist rename to rc/bin/inst/configdist diff --git a/sys/lib/dist/pc/inst/configether b/rc/bin/inst/configether old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configether rename to rc/bin/inst/configether diff --git a/sys/lib/dist/pc/inst/configfs b/rc/bin/inst/configfs old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configfs rename to rc/bin/inst/configfs diff --git a/sys/lib/dist/pc/inst/configip b/rc/bin/inst/configip old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configip rename to rc/bin/inst/configip diff --git a/sys/lib/dist/pc/inst/confignet b/rc/bin/inst/confignet old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/confignet rename to rc/bin/inst/confignet diff --git a/sys/lib/dist/pc/inst/configppp b/rc/bin/inst/configppp old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/configppp rename to rc/bin/inst/configppp diff --git a/sys/lib/dist/pc/inst/copydist b/rc/bin/inst/copydist old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/copydist rename to rc/bin/inst/copydist diff --git a/sys/lib/dist/pc/inst/defs b/rc/bin/inst/defs old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/defs rename to rc/bin/inst/defs diff --git a/sys/lib/dist/pc/inst/download b/rc/bin/inst/download old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/download rename to rc/bin/inst/download diff --git a/sys/lib/dist/pc/inst/finish b/rc/bin/inst/finish old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/finish rename to rc/bin/inst/finish diff --git a/sys/lib/dist/pc/inst/fmtfossil b/rc/bin/inst/fmtfossil old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/fmtfossil rename to rc/bin/inst/fmtfossil diff --git a/sys/lib/dist/pc/inst/fmtventi b/rc/bin/inst/fmtventi old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/fmtventi rename to rc/bin/inst/fmtventi diff --git a/sys/lib/dist/pc/inst/gui b/rc/bin/inst/gui old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/gui rename to rc/bin/inst/gui diff --git a/sys/lib/dist/pc/inst/halt b/rc/bin/inst/halt old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/halt rename to rc/bin/inst/halt diff --git a/sys/lib/dist/pc/inst/hasmbr b/rc/bin/inst/hasmbr old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/hasmbr rename to rc/bin/inst/hasmbr diff --git a/sys/lib/dist/pc/inst/hdrs b/rc/bin/inst/hdrs old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/hdrs rename to rc/bin/inst/hdrs diff --git a/sys/lib/dist/pc/inst/is9660 b/rc/bin/inst/is9660 old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/is9660 rename to rc/bin/inst/is9660 diff --git a/sys/lib/dist/pc/inst/isext2 b/rc/bin/inst/isext2 old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isext2 rename to rc/bin/inst/isext2 diff --git a/sys/lib/dist/pc/inst/isfat b/rc/bin/inst/isfat old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isfat rename to rc/bin/inst/isfat diff --git a/sys/lib/dist/pc/inst/isfossil b/rc/bin/inst/isfossil old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isfossil rename to rc/bin/inst/isfossil diff --git a/sys/lib/dist/pc/inst/isventi b/rc/bin/inst/isventi old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isventi rename to rc/bin/inst/isventi diff --git a/sys/lib/dist/pc/inst/isventiarenas b/rc/bin/inst/isventiarenas old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isventiarenas rename to rc/bin/inst/isventiarenas diff --git a/sys/lib/dist/pc/inst/isventiisect b/rc/bin/inst/isventiisect old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/isventiisect rename to rc/bin/inst/isventiisect diff --git a/sys/lib/dist/pc/inst/main b/rc/bin/inst/main old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/main rename to rc/bin/inst/main diff --git a/sys/lib/dist/pc/inst/mainloop b/rc/bin/inst/mainloop old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/mainloop rename to rc/bin/inst/mainloop diff --git a/sys/lib/dist/pc/inst/mkini.awk b/rc/bin/inst/mkini.awk old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/mkini.awk rename to rc/bin/inst/mkini.awk diff --git a/sys/lib/dist/pc/inst/mountdist b/rc/bin/inst/mountdist old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/mountdist rename to rc/bin/inst/mountdist diff --git a/sys/lib/dist/pc/inst/mountfossil b/rc/bin/inst/mountfossil old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/mountfossil rename to rc/bin/inst/mountfossil diff --git a/sys/lib/dist/pc/inst/mountfs b/rc/bin/inst/mountfs old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/mountfs rename to rc/bin/inst/mountfs diff --git a/sys/lib/dist/pc/inst/moveoldfs b/rc/bin/inst/moveoldfs old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/moveoldfs rename to rc/bin/inst/moveoldfs diff --git a/sys/lib/dist/pc/inst/partdisk b/rc/bin/inst/partdisk old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/partdisk rename to rc/bin/inst/partdisk diff --git a/sys/lib/dist/pc/inst/prepdisk b/rc/bin/inst/prepdisk old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/prepdisk rename to rc/bin/inst/prepdisk diff --git a/sys/lib/dist/pc/inst/replcfg b/rc/bin/inst/replcfg old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/replcfg rename to rc/bin/inst/replcfg diff --git a/sys/lib/dist/pc/inst/startether b/rc/bin/inst/startether old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/startether rename to rc/bin/inst/startether diff --git a/sys/lib/dist/pc/inst/startppp b/rc/bin/inst/startppp old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/startppp rename to rc/bin/inst/startppp diff --git a/sys/lib/dist/pc/inst/startwin b/rc/bin/inst/startwin old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/startwin rename to rc/bin/inst/startwin diff --git a/sys/lib/dist/pc/inst/stop b/rc/bin/inst/stop old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/stop rename to rc/bin/inst/stop diff --git a/sys/lib/dist/pc/inst/stopether b/rc/bin/inst/stopether old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/stopether rename to rc/bin/inst/stopether diff --git a/sys/lib/dist/pc/inst/stopppp b/rc/bin/inst/stopppp old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/stopppp rename to rc/bin/inst/stopppp diff --git a/sys/lib/dist/pc/inst/textonly b/rc/bin/inst/textonly old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/textonly rename to rc/bin/inst/textonly diff --git a/sys/lib/dist/pc/inst/watchfd b/rc/bin/inst/watchfd old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/watchfd rename to rc/bin/inst/watchfd diff --git a/sys/lib/dist/pc/inst/xxx b/rc/bin/inst/xxx old mode 100644 new mode 100755 similarity index 100% rename from sys/lib/dist/pc/inst/xxx rename to 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 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 [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 [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 /* 9p2000 */ -#include - -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, ""); - - 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 /* 9p2000 */ +#include + +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; iwren.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; } -- 2.44.0