Browse Source

Plan 9 from Bell Labs 2007-05-17

David du Colombier 14 years ago
parent
commit
4c712ad1a9

+ 123 - 17
dist/replica/_plan9.db

@@ -3,14 +3,14 @@
 386/9loaddebug - 775 sys sys 1179086411 417004
 386/9loadlite - 775 sys sys 1171784720 137116
 386/9loadlitedebug - 775 sys sys 1176581010 202587
-386/9pc - 775 sys sys 1161230890 1924142
-386/9pc.gz - 664 sys sys 1161232307 821176
-386/9pccpu - 775 sys sys 1161230955 1636008
-386/9pccpu.gz - 664 sys sys 1161232314 703574
-386/9pcdisk - 775 sys sys 1161231206 2113864
-386/9pcdisk.gz - 664 sys sys 1161232323 903701
-386/9pcf - 775 sys sys 1161231061 2460368
-386/9pcf.gz - 664 sys sys 1161232332 1060367
+386/9pc - 775 sys sys 1179368409 1935757
+386/9pc.gz - 664 sys sys 1179368411 828735
+386/9pccpu - 775 sys sys 1179368416 1653717
+386/9pccpu.gz - 664 sys sys 1179368413 714198
+386/9pcdisk - 775 sys sys 1179368423 2137832
+386/9pcdisk.gz - 664 sys sys 1179368425 915678
+386/9pcf - 775 sys sys 1179368431 2482812
+386/9pcf.gz - 664 sys sys 1179368434 1072144
 386/9pxeload - 775 sys sys 1171784719 220040
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
 386/bin - 20000000775 sys sys 1018897690 0
@@ -7778,7 +7778,7 @@ sys/man/8/cron - 664 sys sys 1063858596 1867
 sys/man/8/dhcpd - 664 sys sys 1172959497 5572
 sys/man/8/disksim - 664 sys sys 1144150487 1476
 sys/man/8/drawterm - 664 sys sys 1135901219 1741
-sys/man/8/fossilcons - 664 sys sys 1177432029 18368
+sys/man/8/fossilcons - 664 sys sys 1179296666 18371
 sys/man/8/fs - 664 sys sys 1172956177 15086
 sys/man/8/fsconfig - 664 sys sys 1172956534 8878
 sys/man/8/fshalt - 664 sys sys 1173737264 862
@@ -8163,7 +8163,7 @@ sys/src/9/port/devcons.c - 664 sys sys 1176658321 22943
 sys/src/9/port/devdraw.c - 664 sys sys 1147023550 44447
 sys/src/9/port/devdup.c - 664 sys sys 1014931172 2332
 sys/src/9/port/devenv.c - 664 sys sys 1169498893 7015
-sys/src/9/port/devfs.c - 664 sys sys 1175146085 11517
+sys/src/9/port/devfs.c - 664 sys sys 1179356387 12406
 sys/src/9/port/devkbmap.c - 664 sys sys 1130763846 3064
 sys/src/9/port/devkprof.c - 664 sys sys 1014931173 3111
 sys/src/9/port/devloopback.c - 664 sys sys 1138458368 14579
@@ -9591,7 +9591,7 @@ sys/src/cmd/auth/lib/wrbio.c - 664 sys sys 1015008430 755
 sys/src/cmd/auth/login.c - 664 sys sys 1140272942 4002
 sys/src/cmd/auth/mkfile - 664 sys sys 1176422844 1793
 sys/src/cmd/auth/netkey.c - 664 sys sys 1155994849 758
-sys/src/cmd/auth/newns.c - 664 sys sys 1128540497 962
+sys/src/cmd/auth/newns.c - 664 sys sys 1179368218 979
 sys/src/cmd/auth/none.c - 664 sys sys 1116769155 774
 sys/src/cmd/auth/passwd.c - 664 sys sys 1155994849 2786
 sys/src/cmd/auth/pemdecode.c - 664 sys sys 1084330528 947
@@ -9994,7 +9994,7 @@ sys/src/cmd/cpp/mkfile - 664 sys sys 944960879 178
 sys/src/cmd/cpp/nlist.c - 664 sys sys 1116770041 4645
 sys/src/cmd/cpp/test.c - 664 sys sys 944960879 47
 sys/src/cmd/cpp/tokens.c - 664 sys sys 944960879 6755
-sys/src/cmd/cpu.c - 664 sys sys 1164133664 21154
+sys/src/cmd/cpu.c - 664 sys sys 1179337486 21193
 sys/src/cmd/crop.c - 664 sys sys 1134557476 4137
 sys/src/cmd/cwfs - 20000000775 sys sys 1174799196 0
 sys/src/cmd/cwfs/32bit.h - 664 sys sys 1171162581 594
@@ -10333,7 +10333,7 @@ sys/src/cmd/fossil/check.c - 664 sys sys 1177432003 17448
 sys/src/cmd/fossil/conf.rc - 775 sys sys 1084333190 1416
 sys/src/cmd/fossil/dat.h - 664 sys sys 1177432005 7655
 sys/src/cmd/fossil/deadlock - 775 sys sys 1042005506 413
-sys/src/cmd/fossil/disk.c - 664 sys sys 1158373945 6887
+sys/src/cmd/fossil/disk.c - 664 sys sys 1179296683 6993
 sys/src/cmd/fossil/dump.c - 664 sys sys 1042005506 1340
 sys/src/cmd/fossil/epoch.c - 664 sys sys 1045600021 997
 sys/src/cmd/fossil/error.c - 664 sys sys 1073851927 1450
@@ -13296,7 +13296,7 @@ sys/src/cmd/rio/data.c - 664 sys sys 1142015551 6169
 sys/src/cmd/rio/fns.h - 664 sys sys 1039133251 1065
 sys/src/cmd/rio/fsys.c - 664 sys sys 1019678647 13259
 sys/src/cmd/rio/mkfile - 664 sys sys 1111249068 431
-sys/src/cmd/rio/rio.c - 664 sys sys 1157899815 22866
+sys/src/cmd/rio/rio.c - 664 sys sys 1179332602 22953
 sys/src/cmd/rio/scrl.c - 664 sys sys 1014926357 3245
 sys/src/cmd/rio/time.c - 664 sys sys 1014926357 1829
 sys/src/cmd/rio/util.c - 664 sys sys 1014926357 2061
@@ -14764,7 +14764,7 @@ sys/src/libauth/auth_challenge.c - 664 sys sys 1014929316 1976
 sys/src/libauth/auth_chuid.c - 664 sys sys 1016833881 669
 sys/src/libauth/auth_getkey.c - 664 sys sys 1038605082 865
 sys/src/libauth/auth_getuserpasswd.c - 664 sys sys 1014929317 1363
-sys/src/libauth/auth_proxy.c - 664 sys sys 1053106349 3606
+sys/src/libauth/auth_proxy.c - 664 sys sys 1179362110 3673
 sys/src/libauth/auth_respond.c - 664 sys sys 1044828825 1420
 sys/src/libauth/auth_rpc.c - 664 sys sys 1048645351 2064
 sys/src/libauth/auth_userpasswd.c - 664 sys sys 1014929317 1097
@@ -14773,7 +14773,7 @@ sys/src/libauth/authlocal.h - 664 sys sys 1014929317 87
 sys/src/libauth/httpauth.c - 664 sys sys 1017166331 1059
 sys/src/libauth/login.c - 664 sys sys 1014929318 264
 sys/src/libauth/mkfile - 664 sys sys 1063854014 455
-sys/src/libauth/newns.c - 664 sys sys 1168307422 7344
+sys/src/libauth/newns.c - 664 sys sys 1179362110 7356
 sys/src/libauth/noworld.c - 664 sys sys 1014929318 779
 sys/src/libauthsrv - 20000000775 sys sys 1055718668 0
 sys/src/libauthsrv/_asgetticket.c - 664 sys sys 1015091652 280
@@ -15279,7 +15279,7 @@ sys/src/libdraw/getrect.c - 664 sys sys 1014927875 3046
 sys/src/libdraw/getsubfont.c - 664 sys sys 1131637696 807
 sys/src/libdraw/icossin.c - 664 sys sys 944961724 2117
 sys/src/libdraw/icossin2.c - 664 sys sys 944961724 4587
-sys/src/libdraw/init.c - 664 sys sys 1142862808 9108
+sys/src/libdraw/init.c - 664 sys sys 1179326794 9523
 sys/src/libdraw/keyboard.c - 664 sys sys 1030970091 1703
 sys/src/libdraw/line.c - 664 sys sys 1040442973 731
 sys/src/libdraw/loadimage.c - 664 sys sys 1014927876 983
@@ -15831,3 +15831,109 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/acme - 775 sys sys 1179372066 430944
+386/bin/archfs - 775 sys sys 1179372067 146788
+386/bin/bitsy/keyboard - 775 sys sys 1179372079 306945
+386/bin/bitsy/pencal - 775 sys sys 1179372079 117667
+386/bin/bitsy/prompter - 775 sys sys 1179372080 287238
+386/bin/cdfs - 775 sys sys 1179372081 166023
+386/bin/cfs - 775 sys sys 1179372081 130255
+386/bin/clock - 775 sys sys 1179372082 157340
+386/bin/colors - 775 sys sys 1179372083 151015
+386/bin/cpu - 775 sys sys 1179372083 138223
+386/bin/exportfs - 775 sys sys 1179372084 161221
+386/bin/faces - 775 sys sys 1179372085 193270
+386/bin/games/4s - 775 sys sys 1179372088 177608
+386/bin/games/5s - 775 sys sys 1179372088 179896
+386/bin/games/catclock - 775 sys sys 1179372088 139894
+386/bin/games/juggle - 775 sys sys 1179372089 125804
+386/bin/games/mahjongg - 775 sys sys 1179372089 165271
+386/bin/games/memo - 775 sys sys 1179372089 156656
+386/bin/games/sokoban - 775 sys sys 1179372090 165514
+386/bin/games/sudoku - 775 sys sys 1179372090 171015
+386/bin/nntpfs - 775 sys sys 1179372100 165285
+386/bin/png - 775 sys sys 1179372101 164630
+386/bin/snapfs - 775 sys sys 1179372105 390366
+386/bin/vncs - 775 sys sys 1179372111 471469
+386/bin/vncv - 775 sys sys 1179372113 518914
+386/bin/webcookies - 775 sys sys 1179372114 166178
+386/bin/wikifs - 775 sys sys 1179372115 203019
+386/bin/gif - 775 sys sys 1179372091 158603
+386/bin/import - 775 sys sys 1179372092 101830
+386/bin/jpg - 775 sys sys 1179372097 174971
+386/bin/lens - 775 sys sys 1179372097 151167
+386/bin/mc - 775 sys sys 1179372098 134354
+386/bin/mount - 775 sys sys 1179372098 73326
+386/bin/page - 775 sys sys 1179372100 234230
+386/bin/plot - 775 sys sys 1179372101 222763
+386/bin/ppm - 775 sys sys 1179372101 149813
+386/bin/proof - 775 sys sys 1179372102 179158
+386/bin/rdbfs - 775 sys sys 1179372102 173192
+386/bin/rio - 775 sys sys 1179372103 312201
+386/bin/rx - 775 sys sys 1179372103 82274
+386/bin/scat - 775 sys sys 1179372104 284884
+386/bin/srv - 775 sys sys 1179372105 82797
+386/bin/stats - 775 sys sys 1179372106 191091
+386/bin/webfs - 775 sys sys 1179372115 360393
+386/bin/winwatch - 775 sys sys 1179372115 155325
+386/bin/aquarela - 775 sys sys 1179372067 337755
+386/bin/auth/cron - 775 sys sys 1179372068 143801
+386/bin/auth/factotum - 775 sys sys 1179372069 321229
+386/bin/auth/fgui - 775 sys sys 1179372070 219091
+386/bin/auth/login - 775 sys sys 1179372070 104816
+386/bin/auth/newns - 775 sys sys 1179372070 90035
+386/bin/auth/none - 775 sys sys 1179372070 89318
+386/bin/auth/warning - 775 sys sys 1179372071 99970
+386/bin/aux/apm - 775 sys sys 1179372071 179083
+386/bin/aux/disksim - 775 sys sys 1179372072 150567
+386/bin/aux/flashfs - 775 sys sys 1179372072 165128
+386/bin/aux/gpsfs - 775 sys sys 1179372073 181329
+386/bin/aux/listen - 775 sys sys 1179372073 107720
+386/bin/aux/listen1 - 775 sys sys 1179372074 94790
+386/bin/aux/mnihongo - 775 sys sys 1179372074 140068
+386/bin/aux/nfsserver - 775 sys sys 1179372075 184498
+386/bin/aux/olefs - 775 sys sys 1179372075 148111
+386/bin/aux/samterm - 775 sys sys 1179372077 253398
+386/bin/aux/sshserve - 775 sys sys 1179372077 252035
+386/bin/aux/statusbar - 775 sys sys 1179372078 152275
+386/bin/aux/stub - 775 sys sys 1179372078 139674
+386/bin/aux/timesync - 775 sys sys 1179372078 128466
+386/bin/bmp - 775 sys sys 1179372080 158059
+386/bin/cifscmd - 775 sys sys 1179372082 348593
+386/bin/disk/kfs - 775 sys sys 1179372083 248648
+386/bin/execnet - 775 sys sys 1179372084 176802
+386/bin/ext2srv - 775 sys sys 1179372085 178481
+386/bin/fossil/flchk - 775 sys sys 1179372086 237132
+386/bin/fossil/flfmt - 775 sys sys 1179372087 245153
+386/bin/fossil/fossil - 775 sys sys 1179372087 363789
+386/bin/gview - 775 sys sys 1179372091 239070
+386/bin/ico - 775 sys sys 1179372092 162180
+386/bin/ip/ftpd - 775 sys sys 1179372092 170567
+386/bin/ip/gping - 775 sys sys 1179372093 182147
+386/bin/ip/httpd/httpd - 775 sys sys 1179372094 294970
+386/bin/ip/httpfile - 775 sys sys 1179372094 283978
+386/bin/ip/imap4d - 775 sys sys 1179372095 236829
+386/bin/ip/ppp - 775 sys sys 1179372096 219103
+386/bin/ip/rexexec - 775 sys sys 1179372096 90284
+386/bin/ip/telnetd - 775 sys sys 1179372096 121990
+386/bin/ip/tftpd - 775 sys sys 1179372096 130740
+386/bin/kbmap - 775 sys sys 1179372097 144063
+386/bin/mntgen - 775 sys sys 1179372098 144046
+386/bin/mug - 775 sys sys 1179372099 176427
+386/bin/nfs - 775 sys sys 1179372099 320163
+386/bin/sshnet - 775 sys sys 1179372106 288186
+386/bin/togif - 775 sys sys 1179372106 190268
+386/bin/toico - 775 sys sys 1179372107 124047
+386/bin/toppm - 775 sys sys 1179372107 165664
+386/bin/trace - 775 sys sys 1179372108 180532
+386/bin/tweak - 775 sys sys 1179372108 193304
+386/bin/upas/pop3 - 775 sys sys 1179372109 261615
+386/bin/upas/send - 775 sys sys 1179372109 192179
+386/bin/upas/smtpd - 775 sys sys 1179372110 331146
+386/bin/vt - 775 sys sys 1179372113 176626
+386/bin/yuv - 775 sys sys 1179372116 153646
+386/init - 775 sys sys 1179372116 101487
+386/lib/ape/libdraw.a - 664 sys sys 1179372118 622218
+386/lib/libauth.a - 664 sys sys 1179372118 58864
+386/lib/libdraw.a - 664 sys sys 1179372119 375068
+acme/bin/386/win - 775 sys sys 1179372117 183770

+ 123 - 123
dist/replica/plan9.db

@@ -3,14 +3,14 @@
 386/9loaddebug - 775 sys sys 1179086411 417004
 386/9loadlite - 775 sys sys 1171784720 137116
 386/9loadlitedebug - 775 sys sys 1176581010 202587
-386/9pc - 775 sys sys 1161230890 1924142
-386/9pc.gz - 664 sys sys 1161232307 821176
-386/9pccpu - 775 sys sys 1161230955 1636008
-386/9pccpu.gz - 664 sys sys 1161232314 703574
-386/9pcdisk - 775 sys sys 1161231206 2113864
-386/9pcdisk.gz - 664 sys sys 1161232323 903701
-386/9pcf - 775 sys sys 1161231061 2460368
-386/9pcf.gz - 664 sys sys 1161232332 1060367
+386/9pc - 775 sys sys 1179368409 1935757
+386/9pc.gz - 664 sys sys 1179368411 828735
+386/9pccpu - 775 sys sys 1179368416 1653717
+386/9pccpu.gz - 664 sys sys 1179368413 714198
+386/9pcdisk - 775 sys sys 1179368423 2137832
+386/9pcdisk.gz - 664 sys sys 1179368425 915678
+386/9pcf - 775 sys sys 1179368431 2482812
+386/9pcf.gz - 664 sys sys 1179368434 1072144
 386/9pxeload - 775 sys sys 1171784719 220040
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
 386/bin - 20000000775 sys sys 1018897690 0
@@ -20,7 +20,7 @@
 386/bin/9660srv - 775 sys sys 1168402261 104975
 386/bin/aan - 775 sys sys 1178568241 129834
 386/bin/acid - 775 sys sys 1178939750 405146
-386/bin/acme - 775 sys sys 1178568242 430826
+386/bin/acme - 775 sys sys 1179372066 430944
 386/bin/ape - 20000000775 sys sys 1016944144 0
 386/bin/ape/basename - 775 sys sys 1173754547 134719
 386/bin/ape/cc - 775 sys sys 1168402263 70642
@@ -37,9 +37,9 @@
 386/bin/ape/stty - 775 sys sys 1148500571 41080
 386/bin/ape/tar - 775 sys sys 1168402264 62184
 386/bin/ape/uname - 775 sys sys 1173754552 134895
-386/bin/aquarela - 775 sys sys 1178568243 337616
+386/bin/aquarela - 775 sys sys 1179372067 337755
 386/bin/ar - 775 sys sys 1178939751 114363
-386/bin/archfs - 775 sys sys 1178568244 146734
+386/bin/archfs - 775 sys sys 1179372067 146788
 386/bin/ascii - 775 sys sys 1168402265 64884
 386/bin/astro - 775 sys sys 1178568245 137403
 386/bin/auth - 20000000775 sys sys 1016920815 0
@@ -49,18 +49,18 @@
 386/bin/auth/changeuser - 775 sys sys 1178568246 96020
 386/bin/auth/convkeys - 775 sys sys 1178568246 87198
 386/bin/auth/convkeys2 - 775 sys sys 1178568246 87257
-386/bin/auth/cron - 775 sys sys 1178568247 143662
+386/bin/auth/cron - 775 sys sys 1179372068 143801
 386/bin/auth/debug - 775 sys sys 1168402268 101566
 386/bin/auth/disable - 775 sys sys 1020319057 146
 386/bin/auth/enable - 775 sys sys 1020319057 134
-386/bin/auth/factotum - 775 sys sys 1178853707 321175
-386/bin/auth/fgui - 775 sys sys 1176520475 218973
+386/bin/auth/factotum - 775 sys sys 1179372069 321229
+386/bin/auth/fgui - 775 sys sys 1179372070 219091
 386/bin/auth/guard.srv - 775 sys sys 1178568248 143650
 386/bin/auth/iam - 775 sys sys 1085076981 50791
 386/bin/auth/keyfs - 775 sys sys 1178568248 115094
-386/bin/auth/login - 775 sys sys 1168402270 104747
-386/bin/auth/newns - 775 sys sys 1168402270 89966
-386/bin/auth/none - 775 sys sys 1168402270 89249
+386/bin/auth/login - 775 sys sys 1179372070 104816
+386/bin/auth/newns - 775 sys sys 1179372070 90035
+386/bin/auth/none - 775 sys sys 1179372070 89318
 386/bin/auth/pemdecode - 775 sys sys 1168402271 61715
 386/bin/auth/pemencode - 775 sys sys 1168402271 60113
 386/bin/auth/printnetkey - 775 sys sys 1176432130 40485
@@ -76,7 +76,7 @@
 386/bin/auth/secuser - 775 sys sys 1178568250 151765
 386/bin/auth/status - 775 sys sys 1020319060 738
 386/bin/auth/uniq - 775 sys sys 1168402275 63314
-386/bin/auth/warning - 775 sys sys 1178568251 99831
+386/bin/auth/warning - 775 sys sys 1179372071 99970
 386/bin/auth/wrkey - 775 sys sys 1174964425 76258
 386/bin/aux - 20000000775 sys sys 1016920817 0
 386/bin/aux/8prefix - 775 sys sys 1168402276 67103
@@ -86,7 +86,7 @@
 386/bin/aux/accupoint - 775 sys sys 1148500588 40094
 386/bin/aux/acidleak - 775 sys sys 1178568251 70029
 386/bin/aux/antiword - 775 sys sys 1070288096 511478
-386/bin/aux/apm - 775 sys sys 1178568251 179029
+386/bin/aux/apm - 775 sys sys 1179372071 179083
 386/bin/aux/astarld - 775 sys sys 1168402277 64918
 386/bin/aux/cddb - 775 sys sys 1168402277 72541
 386/bin/aux/clog - 775 sys sys 1178568252 65225
@@ -95,36 +95,36 @@
 386/bin/aux/cropmarks - 775 sys sys 1020319062 1808
 386/bin/aux/data2s - 775 sys sys 1168402278 60761
 386/bin/aux/depend - 775 sys sys 1178568253 144635
-386/bin/aux/disksim - 775 sys sys 1178568253 150513
+386/bin/aux/disksim - 775 sys sys 1179372072 150567
 386/bin/aux/download - 775 sys sys 1087442506 176016
 386/bin/aux/faxreceive - 775 sys sys 1178568253 82720
 386/bin/aux/faxsend - 775 sys sys 1178568254 88227
-386/bin/aux/flashfs - 775 sys sys 1178568254 165074
+386/bin/aux/flashfs - 775 sys sys 1179372072 165128
 386/bin/aux/g3p9bit - 775 sys sys 1104121976 67278
 386/bin/aux/getflags - 775 sys sys 1168402280 64157
 386/bin/aux/gpsevermore - 775 sys sys 1178568254 70273
-386/bin/aux/gpsfs - 775 sys sys 1178568255 181275
+386/bin/aux/gpsfs - 775 sys sys 1179372073 181329
 386/bin/aux/grabit - 775 sys sys 1020319063 1244
 386/bin/aux/hardcopy - 775 sys sys 1020319063 1699
 386/bin/aux/isvmware - 775 sys sys 1032486791 23997
 386/bin/aux/lines - 775 sys sys 1168402281 60716
-386/bin/aux/listen - 775 sys sys 1178568255 107581
-386/bin/aux/listen1 - 775 sys sys 1168402281 94721
+386/bin/aux/listen - 775 sys sys 1179372073 107720
+386/bin/aux/listen1 - 775 sys sys 1179372074 94790
 386/bin/aux/lpdaemon - 775 sys sys 1173754553 170710
 386/bin/aux/lpdsend - 775 sys sys 1173754553 157339
 386/bin/aux/lpsend - 775 sys sys 1178568255 51124
 386/bin/aux/mapd - 775 sys sys 1168402282 191082
 386/bin/aux/mkflashfs - 775 sys sys 1168402282 67590
 386/bin/aux/mklatinkbd - 775 sys sys 1168402282 64407
-386/bin/aux/mnihongo - 775 sys sys 1168402283 140020
+386/bin/aux/mnihongo - 775 sys sys 1179372074 140068
 386/bin/aux/mouse - 775 sys sys 1148500597 44061
 386/bin/aux/ms2 - 775 sys sys 1178939751 88464
 386/bin/aux/msexceltables - 775 sys sys 1168402283 82921
 386/bin/aux/mswordstrings - 775 sys sys 1168402283 65541
 386/bin/aux/na - 775 sys sys 1168402284 154423
 386/bin/aux/nfsmount - 775 sys sys 1178568256 233229
-386/bin/aux/nfsserver - 775 sys sys 1178568256 184444
-386/bin/aux/olefs - 775 sys sys 1178568257 148057
+386/bin/aux/nfsserver - 775 sys sys 1179372075 184498
+386/bin/aux/olefs - 775 sys sys 1179372075 148111
 386/bin/aux/p9bitpost - 775 sys sys 1104121982 127974
 386/bin/aux/pcmcia - 775 sys sys 1148500601 46940
 386/bin/aux/pcnfsd - 775 sys sys 1178568257 128332
@@ -136,16 +136,16 @@
 386/bin/aux/posttek - 775 sys sys 1087442508 163239
 386/bin/aux/rdwr - 775 sys sys 1148500602 38338
 386/bin/aux/reboot - 775 sys sys 1168402286 62162
-386/bin/aux/samterm - 775 sys sys 1176520475 253280
+386/bin/aux/samterm - 775 sys sys 1179372077 253398
 386/bin/aux/searchfs - 775 sys sys 1178568258 88329
 386/bin/aux/sprog - 775 sys sys 1176520476 79503
 386/bin/aux/ssh_genkey - 775 sys sys 1045537957 194629
-386/bin/aux/sshserve - 775 sys sys 1178568259 251896
-386/bin/aux/statusbar - 775 sys sys 1168402287 152227
-386/bin/aux/stub - 775 sys sys 1178568259 139620
+386/bin/aux/sshserve - 775 sys sys 1179372077 252035
+386/bin/aux/statusbar - 775 sys sys 1179372078 152275
+386/bin/aux/stub - 775 sys sys 1179372078 139674
 386/bin/aux/tcpostio - 775 sys sys 1094040084 200808
 386/bin/aux/text2post - 775 sys sys 1104121986 78336
-386/bin/aux/timesync - 775 sys sys 1178568259 128410
+386/bin/aux/timesync - 775 sys sys 1179372078 128466
 386/bin/aux/tr2post - 775 sys sys 1104121987 176578
 386/bin/aux/trampoline - 775 sys sys 1178568259 82677
 386/bin/aux/typepasswd - 775 sys sys 1168402288 69738
@@ -163,34 +163,34 @@
 386/bin/bind - 775 sys sys 1168402290 59805
 386/bin/bitsy - 20000000775 sys sys 1018721039 0
 386/bin/bitsy/bitsyload - 775 sys sys 1168402290 63602
-386/bin/bitsy/keyboard - 775 sys sys 1176520477 306827
+386/bin/bitsy/keyboard - 775 sys sys 1179372079 306945
 386/bin/bitsy/light - 775 sys sys 1020319072 242
 386/bin/bitsy/params - 775 sys sys 1168402291 59015
-386/bin/bitsy/pencal - 775 sys sys 1168402291 117619
-386/bin/bitsy/prompter - 775 sys sys 1176520478 287120
-386/bin/bmp - 775 sys sys 1168402292 158011
+386/bin/bitsy/pencal - 775 sys sys 1179372079 117667
+386/bin/bitsy/prompter - 775 sys sys 1179372080 287238
+386/bin/bmp - 775 sys sys 1179372080 158059
 386/bin/bunzip2 - 775 sys sys 1168402292 97734
 386/bin/bzip2 - 775 sys sys 1178568261 112709
 386/bin/cal - 775 sys sys 1178568261 66661
 386/bin/calendar - 775 sys sys 1178568261 79059
 386/bin/cat - 775 sys sys 1148500611 37482
 386/bin/cb - 775 sys sys 1168402293 77628
-386/bin/cdfs - 775 sys sys 1178568262 165969
-386/bin/cfs - 775 sys sys 1178568262 130201
+386/bin/cdfs - 775 sys sys 1179372081 166023
+386/bin/cfs - 775 sys sys 1179372081 130255
 386/bin/chgrp - 775 sys sys 1168402294 59522
 386/bin/chmod - 775 sys sys 1168402294 62518
-386/bin/cifscmd - 775 sys sys 1178568263 348454
+386/bin/cifscmd - 775 sys sys 1179372082 348593
 386/bin/cleanname - 775 sys sys 1168402295 58541
-386/bin/clock - 775 sys sys 1178568263 157222
+386/bin/clock - 775 sys sys 1179372082 157340
 386/bin/cmp - 775 sys sys 1157597609 40658
 386/bin/col - 775 sys sys 1172029864 64995
-386/bin/colors - 775 sys sys 1168402296 150967
+386/bin/colors - 775 sys sys 1179372083 151015
 386/bin/comm - 775 sys sys 1168402296 61586
 386/bin/compress - 775 sys sys 1173754554 166944
 386/bin/con - 775 sys sys 1168402297 78486
 386/bin/cp - 775 sys sys 1168402297 63454
 386/bin/cpp - 775 sys sys 1178568264 148996
-386/bin/cpu - 775 sys sys 1178568264 138020
+386/bin/cpu - 775 sys sys 1179372083 138223
 386/bin/crop - 775 sys sys 1168402298 116374
 386/bin/cwfs - 775 sys sys 1178568265 365217
 386/bin/date - 775 sys sys 1178568265 41845
@@ -210,7 +210,7 @@
 386/bin/disk/exsort - 775 sys sys 1168402301 60455
 386/bin/disk/fdisk - 775 sys sys 1168402301 104096
 386/bin/disk/format - 775 sys sys 1178568266 89440
-386/bin/disk/kfs - 775 sys sys 1178568267 248594
+386/bin/disk/kfs - 775 sys sys 1179372083 248648
 386/bin/disk/kfscmd - 775 sys sys 1148500626 38257
 386/bin/disk/ksync - 775 sys sys 1020319074 302
 386/bin/disk/mbr - 775 sys sys 1168402302 73918
@@ -225,10 +225,10 @@
 386/bin/echo - 775 sys sys 1168402304 57592
 386/bin/ed - 775 sys sys 1168402304 93272
 386/bin/eqn - 775 sys sys 1173754555 244858
-386/bin/execnet - 775 sys sys 1178568268 176748
-386/bin/exportfs - 775 sys sys 1178568268 161082
-386/bin/ext2srv - 775 sys sys 1178568269 178427
-386/bin/faces - 775 sys sys 1178568269 193152
+386/bin/execnet - 775 sys sys 1179372084 176802
+386/bin/exportfs - 775 sys sys 1179372084 161221
+386/bin/ext2srv - 775 sys sys 1179372085 178481
+386/bin/faces - 775 sys sys 1179372085 193270
 386/bin/factor - 775 sys sys 1168402307 61699
 386/bin/fcp - 775 sys sys 1168402307 82433
 386/bin/file - 775 sys sys 1178939751 128125
@@ -236,9 +236,9 @@
 386/bin/fortune - 775 sys sys 1168402308 67356
 386/bin/fossil - 20000000775 sys sys 1042005470 0
 386/bin/fossil/conf - 775 sys sys 1085077052 1506
-386/bin/fossil/flchk - 775 sys sys 1178568270 237895
-386/bin/fossil/flfmt - 775 sys sys 1178568271 245916
-386/bin/fossil/fossil - 775 sys sys 1178568272 364498
+386/bin/fossil/flchk - 775 sys sys 1179372086 237132
+386/bin/fossil/flfmt - 775 sys sys 1179372087 245153
+386/bin/fossil/fossil - 775 sys sys 1179372087 363789
 386/bin/fossil/last - 775 sys sys 1168402310 63550
 386/bin/freq - 775 sys sys 1168402310 62040
 386/bin/fs - 20000000775 sys sys 954380769 0
@@ -252,25 +252,25 @@
 386/bin/fs/zipfs - 775 sys sys 1178568274 108444
 386/bin/ftpfs - 775 sys sys 1178568275 271782
 386/bin/games - 20000000775 sys sys 1096298711 0
-386/bin/games/4s - 775 sys sys 1178568276 177490
-386/bin/games/5s - 775 sys sys 1178568276 179778
-386/bin/games/catclock - 775 sys sys 1178568277 139776
-386/bin/games/juggle - 775 sys sys 1176520487 125686
+386/bin/games/4s - 775 sys sys 1179372088 177608
+386/bin/games/5s - 775 sys sys 1179372088 179896
+386/bin/games/catclock - 775 sys sys 1179372088 139894
+386/bin/games/juggle - 775 sys sys 1179372089 125804
 386/bin/games/jukebox - 775 sys sys 1105589128 264821
 386/bin/games/jukefs - 775 sys sys 1105589129 165320
-386/bin/games/mahjongg - 775 sys sys 1178568277 165153
-386/bin/games/memo - 775 sys sys 1178568277 156538
+386/bin/games/mahjongg - 775 sys sys 1179372089 165271
+386/bin/games/memo - 775 sys sys 1179372089 156656
 386/bin/games/playlistfs - 775 sys sys 1105589129 148484
-386/bin/games/sokoban - 775 sys sys 1176520488 165396
-386/bin/games/sudoku - 775 sys sys 1178568278 170897
+386/bin/games/sokoban - 775 sys sys 1179372090 165514
+386/bin/games/sudoku - 775 sys sys 1179372090 171015
 386/bin/getmap - 775 sys sys 1168402311 65423
-386/bin/gif - 775 sys sys 1168402312 158555
+386/bin/gif - 775 sys sys 1179372091 158603
 386/bin/grap - 775 sys sys 1173754557 282722
 386/bin/graph - 775 sys sys 1168402312 129250
 386/bin/grep - 775 sys sys 1168402312 79569
 386/bin/gs - 775 sys sys 1173754582 13278932
 386/bin/gunzip - 775 sys sys 1168402313 80523
-386/bin/gview - 775 sys sys 1168402313 238983
+386/bin/gview - 775 sys sys 1179372091 239070
 386/bin/gzip - 775 sys sys 1178568278 83518
 386/bin/hayes - 775 sys sys 1178568278 63329
 386/bin/hget - 775 sys sys 1178568279 233609
@@ -279,20 +279,20 @@
 386/bin/html2ms - 775 sys sys 1168402315 66321
 386/bin/htmlfmt - 775 sys sys 1168402315 163476
 386/bin/htmlroff - 775 sys sys 1178568280 146978
-386/bin/ico - 775 sys sys 1168402316 162132
+386/bin/ico - 775 sys sys 1179372092 162180
 386/bin/iconv - 775 sys sys 1168402316 113629
 386/bin/idiff - 775 sys sys 1168402317 76342
-386/bin/import - 775 sys sys 1174964428 101761
+386/bin/import - 775 sys sys 1179372092 101830
 386/bin/iostats - 775 sys sys 1178568280 98906
 386/bin/ip - 20000000775 sys sys 1016920851 0
 386/bin/ip/dhcpclient - 775 sys sys 1178568281 92992
 386/bin/ip/dhcpd - 775 sys sys 1178568281 149797
 386/bin/ip/dhcpleases - 775 sys sys 1178568281 85069
-386/bin/ip/ftpd - 775 sys sys 1178568282 170428
-386/bin/ip/gping - 775 sys sys 1178568282 182029
+386/bin/ip/ftpd - 775 sys sys 1179372092 170567
+386/bin/ip/gping - 775 sys sys 1179372093 182147
 386/bin/ip/hogports - 775 sys sys 1148500655 42914
 386/bin/ip/httpd - 20000000775 sys sys 1068385801 0
-386/bin/ip/httpd/httpd - 775 sys sys 1178568283 294831
+386/bin/ip/httpd/httpd - 775 sys sys 1179372094 294970
 386/bin/ip/httpd/imagemap - 775 sys sys 1178568284 115949
 386/bin/ip/httpd/man2html - 775 sys sys 1178568284 124503
 386/bin/ip/httpd/netlib_find - 775 sys sys 1178568285 116797
@@ -300,43 +300,43 @@
 386/bin/ip/httpd/save - 775 sys sys 1178568285 132389
 386/bin/ip/httpd/webls - 775 sys sys 1178568286 132463
 386/bin/ip/httpd/wikipost - 775 sys sys 1178568286 113828
-386/bin/ip/httpfile - 775 sys sys 1178568287 283924
-386/bin/ip/imap4d - 775 sys sys 1178568288 236690
+386/bin/ip/httpfile - 775 sys sys 1179372094 283978
+386/bin/ip/imap4d - 775 sys sys 1179372095 236829
 386/bin/ip/ipconfig - 775 sys sys 1179259380 157017
 386/bin/ip/linklocal - 775 sys sys 1177530964 42790
 386/bin/ip/ping - 775 sys sys 1178568288 83220
-386/bin/ip/ppp - 775 sys sys 1178826954 218964
+386/bin/ip/ppp - 775 sys sys 1179372096 219103
 386/bin/ip/pppoe - 775 sys sys 1168402326 77787
 386/bin/ip/pptp - 775 sys sys 1169612026 127215
 386/bin/ip/pptpd - 775 sys sys 1178568289 124670
 386/bin/ip/rarpd - 775 sys sys 1178654264 111254
-386/bin/ip/rexexec - 775 sys sys 1168402327 90215
+386/bin/ip/rexexec - 775 sys sys 1179372096 90284
 386/bin/ip/rip - 775 sys sys 1178568290 89908
 386/bin/ip/rlogind - 775 sys sys 1178568290 66192
-386/bin/ip/telnetd - 775 sys sys 1178568291 121851
-386/bin/ip/tftpd - 775 sys sys 1178568291 130609
+386/bin/ip/telnetd - 775 sys sys 1179372096 121990
+386/bin/ip/tftpd - 775 sys sys 1179372096 130740
 386/bin/ip/traceroute - 775 sys sys 1178568291 72721
 386/bin/ip/udpecho - 775 sys sys 1178508500 43095
 386/bin/join - 775 sys sys 1168402330 114382
-386/bin/jpg - 775 sys sys 1168402330 174923
-386/bin/kbmap - 775 sys sys 1168402330 144015
+386/bin/jpg - 775 sys sys 1179372097 174971
+386/bin/kbmap - 775 sys sys 1179372097 144063
 386/bin/kprof - 775 sys sys 1178939752 106496
 386/bin/ktrace - 775 sys sys 1178939752 124176
-386/bin/lens - 775 sys sys 1168402332 151119
+386/bin/lens - 775 sys sys 1179372097 151167
 386/bin/lex - 775 sys sys 1168402332 99261
 386/bin/lnfs - 775 sys sys 1168402333 99675
 386/bin/look - 775 sys sys 1168402333 65774
 386/bin/ls - 775 sys sys 1178568291 81002
-386/bin/mc - 775 sys sys 1168402333 134306
+386/bin/mc - 775 sys sys 1179372098 134354
 386/bin/md5sum - 775 sys sys 1168402334 61498
 386/bin/mk - 775 sys sys 1178568292 143425
 386/bin/mkdir - 775 sys sys 1168402334 61205
 386/bin/mkpaqfs - 775 sys sys 1178568292 93268
-386/bin/mntgen - 775 sys sys 1178568293 143992
-386/bin/mount - 775 sys sys 1168402335 73342
+386/bin/mntgen - 775 sys sys 1179372098 144046
+386/bin/mount - 775 sys sys 1179372098 73326
 386/bin/ms2html - 775 sys sys 1178568293 102703
 386/bin/mtime - 775 sys sys 1168402336 59376
-386/bin/mug - 775 sys sys 1168402336 176379
+386/bin/mug - 775 sys sys 1179372099 176427
 386/bin/mv - 775 sys sys 1168402336 66629
 386/bin/ndb - 20000000775 sys sys 985743147 0
 386/bin/ndb/cs - 775 sys sys 1178654265 149084
@@ -353,32 +353,32 @@
 386/bin/netkey - 775 sys sys 1168402341 72717
 386/bin/netstat - 775 sys sys 1169612032 85184
 386/bin/news - 775 sys sys 1168402341 71956
-386/bin/nfs - 775 sys sys 1178568297 320109
+386/bin/nfs - 775 sys sys 1179372099 320163
 386/bin/nm - 775 sys sys 1178939752 130155
-386/bin/nntpfs - 775 sys sys 1178568298 165231
+386/bin/nntpfs - 775 sys sys 1179372100 165285
 386/bin/ns - 775 sys sys 1168402343 65492
 386/bin/p - 775 sys sys 1168402343 65220
-386/bin/page - 775 sys sys 1168402343 234182
+386/bin/page - 775 sys sys 1179372100 234230
 386/bin/paqfs - 775 sys sys 1168402343 107781
 386/bin/passwd - 775 sys sys 1168402344 84333
 386/bin/pbd - 775 sys sys 1085077087 4661
 386/bin/pcc - 775 sys sys 1168402344 68241
 386/bin/pic - 775 sys sys 1176520490 307917
 386/bin/pipefile - 775 sys sys 1148500683 39431
-386/bin/plot - 775 sys sys 1176520491 222645
+386/bin/plot - 775 sys sys 1179372101 222763
 386/bin/plumb - 775 sys sys 1176520491 69487
 386/bin/plumber - 775 sys sys 1176520491 170951
-386/bin/png - 775 sys sys 1168402344 164582
-386/bin/ppm - 775 sys sys 1168402345 149765
+386/bin/png - 775 sys sys 1179372101 164630
+386/bin/ppm - 775 sys sys 1179372101 149813
 386/bin/pr - 775 sys sys 1178568298 76251
 386/bin/primes - 775 sys sys 1172289653 63329
 386/bin/prof - 775 sys sys 1178939753 111959
-386/bin/proof - 775 sys sys 1176520492 179040
+386/bin/proof - 775 sys sys 1179372102 179158
 386/bin/ps - 775 sys sys 1168402346 68812
 386/bin/pwd - 775 sys sys 1148500685 36932
 386/bin/ramfs - 775 sys sys 1178568298 88610
 386/bin/rc - 775 sys sys 1174933356 144261
-386/bin/rdbfs - 775 sys sys 1178568299 173138
+386/bin/rdbfs - 775 sys sys 1179372102 173192
 386/bin/read - 775 sys sys 1168402347 58283
 386/bin/replica - 20000000775 sys sys 1018321168 0
 386/bin/replica/applychanges - 775 sys sys 1176520492 98766
@@ -391,11 +391,11 @@
 386/bin/replica/setupdirs - 775 sys sys 1020319083 44
 386/bin/replica/updatedb - 775 sys sys 1178568299 95829
 386/bin/resample - 775 sys sys 1168402347 121102
-386/bin/rio - 775 sys sys 1178568300 312045
+386/bin/rio - 775 sys sys 1179372103 312201
 386/bin/rm - 775 sys sys 1168402347 61568
-386/bin/rx - 775 sys sys 1168402347 82290
+386/bin/rx - 775 sys sys 1179372103 82274
 386/bin/sam - 775 sys sys 1168633586 159364
-386/bin/scat - 775 sys sys 1176520494 284766
+386/bin/scat - 775 sys sys 1179372104 284884
 386/bin/scp - 775 sys sys 1178568301 152318
 386/bin/scuzz - 775 sys sys 1178422014 115094
 386/bin/sed - 775 sys sys 1168402348 89763
@@ -404,18 +404,18 @@
 386/bin/size - 775 sys sys 1178939753 79772
 386/bin/sleep - 775 sys sys 1158088708 3875
 386/bin/snap - 775 sys sys 1178939753 316147
-386/bin/snapfs - 775 sys sys 1178939754 390312
+386/bin/snapfs - 775 sys sys 1179372105 390366
 386/bin/sniffer - 775 sys sys 1038443185 99028
 386/bin/snoopy - 775 sys sys 1178568303 185244
 386/bin/sort - 775 sys sys 1178568303 81057
 386/bin/spin - 775 sys sys 1176520498 760856
 386/bin/split - 775 sys sys 1168402349 75886
-386/bin/srv - 775 sys sys 1168402349 82813
+386/bin/srv - 775 sys sys 1179372105 82797
 386/bin/srvfs - 775 sys sys 1162241047 40169
 386/bin/srvold9p - 775 sys sys 1176520499 130362
 386/bin/ssh - 775 sys sys 1178568304 210130
-386/bin/sshnet - 775 sys sys 1178568305 288132
-386/bin/stats - 775 sys sys 1168402350 190989
+386/bin/sshnet - 775 sys sys 1179372106 288186
+386/bin/stats - 775 sys sys 1179372106 191091
 386/bin/strings - 775 sys sys 1168402350 62855
 386/bin/strip - 775 sys sys 1178939754 81761
 386/bin/sum - 775 sys sys 1148500691 39505
@@ -432,17 +432,17 @@
 386/bin/time - 775 sys sys 1168402352 61618
 386/bin/tlsclient - 775 sys sys 1178568306 197411
 386/bin/tlssrv - 775 sys sys 1178568307 197771
-386/bin/togif - 775 sys sys 1168402353 190220
-386/bin/toico - 775 sys sys 1168402353 123999
+386/bin/togif - 775 sys sys 1179372106 190268
+386/bin/toico - 775 sys sys 1179372107 124047
 386/bin/topng - 775 sys sys 1178568307 137219
-386/bin/toppm - 775 sys sys 1168402354 165616
+386/bin/toppm - 775 sys sys 1179372107 165664
 386/bin/touch - 775 sys sys 1178568308 62586
 386/bin/tprof - 775 sys sys 1178939755 300947
 386/bin/tr - 775 sys sys 1168402355 62088
-386/bin/trace - 775 sys sys 1178568308 180414
+386/bin/trace - 775 sys sys 1179372108 180532
 386/bin/troff - 775 sys sys 1178853709 361158
 386/bin/troff2html - 775 sys sys 1178568308 84524
-386/bin/tweak - 775 sys sys 1168402356 193256
+386/bin/tweak - 775 sys sys 1179372108 193304
 386/bin/unicode - 775 sys sys 1168402356 62747
 386/bin/uniq - 775 sys sys 1168402357 62128
 386/bin/units - 775 sys sys 1168402357 75478
@@ -465,14 +465,14 @@
 386/bin/upas/msgcat - 775 sys sys 1064598353 38
 386/bin/upas/msgtok - 775 sys sys 1176520508 76758
 386/bin/upas/nedmail - 775 sys sys 1178568312 155934
-386/bin/upas/pop3 - 775 sys sys 1178568313 261476
+386/bin/upas/pop3 - 775 sys sys 1179372109 261615
 386/bin/upas/qer - 775 sys sys 1178568313 99195
 386/bin/upas/ratfs - 775 sys sys 1178568314 110177
 386/bin/upas/runq - 775 sys sys 1178568314 112842
 386/bin/upas/scanmail - 775 sys sys 1178568315 128212
-386/bin/upas/send - 775 sys sys 1178568315 192040
+386/bin/upas/send - 775 sys sys 1179372109 192179
 386/bin/upas/smtp - 775 sys sys 1178568316 274783
-386/bin/upas/smtpd - 775 sys sys 1178568317 331007
+386/bin/upas/smtpd - 775 sys sys 1179372110 331146
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/testscan - 775 sys sys 1176520512 83863
 386/bin/upas/token - 775 sys sys 1178568317 76393
@@ -506,22 +506,22 @@
 386/bin/venti/verifyarena - 775 sys sys 1178568325 102747
 386/bin/venti/wrarena - 775 sys sys 1178568325 174848
 386/bin/venti/write - 775 sys sys 1176520521 102825
-386/bin/vncs - 775 sys sys 1178568326 471415
-386/bin/vncv - 775 sys sys 1178568327 518742
-386/bin/vt - 775 sys sys 1176520523 176508
+386/bin/vncs - 775 sys sys 1179372111 471469
+386/bin/vncv - 775 sys sys 1179372113 518914
+386/bin/vt - 775 sys sys 1179372113 176626
 386/bin/vtdump - 775 sys sys 1178568328 160252
 386/bin/wc - 775 sys sys 1148500701 41191
-386/bin/webcookies - 775 sys sys 1178568329 166124
-386/bin/webfs - 775 sys sys 1178568330 360339
+386/bin/webcookies - 775 sys sys 1179372114 166178
+386/bin/webfs - 775 sys sys 1179372115 360393
 386/bin/webfsget - 775 sys sys 1148500702 39177
-386/bin/wikifs - 775 sys sys 1178568330 202965
-386/bin/winwatch - 775 sys sys 1168402358 155277
+386/bin/wikifs - 775 sys sys 1179372115 203019
+386/bin/winwatch - 775 sys sys 1179372115 155325
 386/bin/x.echo - 775 sys sys 1168402359 57592
 386/bin/xd - 775 sys sys 1168402359 64279
 386/bin/xmr - 775 sys sys 1148500703 40192
 386/bin/xms - 775 sys sys 1148500703 40775
 386/bin/yacc - 775 sys sys 1168402359 102743
-386/bin/yuv - 775 sys sys 1175887160 153598
+386/bin/yuv - 775 sys sys 1179372116 153646
 386/bin/zip - 775 sys sys 1168402360 90230
 386/include - 20000000775 sys sys 953243048 0
 386/include/ape - 20000000775 sys sys 1046282351 0
@@ -531,14 +531,14 @@
 386/include/ape/ureg.h - 664 sys sys 944946041 812
 386/include/u.h - 664 sys sys 1176424884 1528
 386/include/ureg.h - 664 sys sys 944946012 523
-386/init - 775 sys sys 1168402360 101418
+386/init - 775 sys sys 1179372116 101487
 386/ld.com - 775 sys sys 1171784723 73464
 386/lib - 20000000775 sys sys 1016826328 0
 386/lib/ape - 20000000775 sys sys 1070519112 0
 386/lib/ape/lib9.a - 664 sys sys 1135531447 6906
 386/lib/ape/libap.a - 664 sys sys 1173754584 819938
 386/lib/ape/libbsd.a - 664 sys sys 1146156978 183900
-386/lib/ape/libdraw.a - 664 sys sys 1176520526 621972
+386/lib/ape/libdraw.a - 664 sys sys 1179372118 622218
 386/lib/ape/libfmt.a - 664 sys sys 1146156980 156706
 386/lib/ape/libl.a - 664 sys sys 1143777857 9406
 386/lib/ape/libnet.a - 664 sys sys 1143777857 16950
@@ -547,7 +547,7 @@
 386/lib/ape/libv.a - 664 sys sys 1143777858 19668
 386/lib/lib9p.a - 664 sys sys 1172780592 91012
 386/lib/libString.a - 664 sys sys 1168402362 22126
-386/lib/libauth.a - 664 sys sys 1176432131 58582
+386/lib/libauth.a - 664 sys sys 1179372118 58864
 386/lib/libauthsrv.a - 664 sys sys 1174964431 35790
 386/lib/libbin.a - 664 sys sys 1168402363 2534
 386/lib/libbio.a - 664 sys sys 1168402363 25980
@@ -555,7 +555,7 @@
 386/lib/libcomplete.a - 664 sys sys 1168402364 6372
 386/lib/libcontrol.a - 664 sys sys 1168402365 274388
 386/lib/libdisk.a - 664 sys sys 1168402365 42368
-386/lib/libdraw.a - 664 sys sys 1176520528 374886
+386/lib/libdraw.a - 664 sys sys 1179372119 375068
 386/lib/libflate.a - 664 sys sys 1168402366 76726
 386/lib/libframe.a - 664 sys sys 1168402366 66398
 386/lib/libgeometry.a - 664 sys sys 1168402366 50470
@@ -637,7 +637,7 @@ acme/bin/386/acd - 775 sys sys 1032232412 137068
 acme/bin/386/adict - 775 sys sys 1015011247 99806
 acme/bin/386/mkwnew - 775 sys sys 1148500707 38992
 acme/bin/386/spout - 775 sys sys 1168402362 61841
-acme/bin/386/win - 775 sys sys 1178568331 183716
+acme/bin/386/win - 775 sys sys 1179372117 183770
 acme/bin/Battery - 775 sys sys 1017457907 451
 acme/bin/Isspam - 775 sys sys 1063951165 235
 acme/bin/Mail - 775 sys sys 1114697798 201
@@ -7778,7 +7778,7 @@ sys/man/8/cron - 664 sys sys 1063858596 1867
 sys/man/8/dhcpd - 664 sys sys 1172959497 5572
 sys/man/8/disksim - 664 sys sys 1144150487 1476
 sys/man/8/drawterm - 664 sys sys 1135901219 1741
-sys/man/8/fossilcons - 664 sys sys 1177432029 18368
+sys/man/8/fossilcons - 664 sys sys 1179296666 18371
 sys/man/8/fs - 664 sys sys 1172956177 15086
 sys/man/8/fsconfig - 664 sys sys 1172956534 8878
 sys/man/8/fshalt - 664 sys sys 1173737264 862
@@ -8163,7 +8163,7 @@ sys/src/9/port/devcons.c - 664 sys sys 1176658321 22943
 sys/src/9/port/devdraw.c - 664 sys sys 1147023550 44447
 sys/src/9/port/devdup.c - 664 sys sys 1014931172 2332
 sys/src/9/port/devenv.c - 664 sys sys 1169498893 7015
-sys/src/9/port/devfs.c - 664 sys sys 1175146085 11517
+sys/src/9/port/devfs.c - 664 sys sys 1179356387 12406
 sys/src/9/port/devkbmap.c - 664 sys sys 1130763846 3064
 sys/src/9/port/devkprof.c - 664 sys sys 1014931173 3111
 sys/src/9/port/devloopback.c - 664 sys sys 1138458368 14579
@@ -9591,7 +9591,7 @@ sys/src/cmd/auth/lib/wrbio.c - 664 sys sys 1015008430 755
 sys/src/cmd/auth/login.c - 664 sys sys 1140272942 4002
 sys/src/cmd/auth/mkfile - 664 sys sys 1176422844 1793
 sys/src/cmd/auth/netkey.c - 664 sys sys 1155994849 758
-sys/src/cmd/auth/newns.c - 664 sys sys 1128540497 962
+sys/src/cmd/auth/newns.c - 664 sys sys 1179368218 979
 sys/src/cmd/auth/none.c - 664 sys sys 1116769155 774
 sys/src/cmd/auth/passwd.c - 664 sys sys 1155994849 2786
 sys/src/cmd/auth/pemdecode.c - 664 sys sys 1084330528 947
@@ -9994,7 +9994,7 @@ sys/src/cmd/cpp/mkfile - 664 sys sys 944960879 178
 sys/src/cmd/cpp/nlist.c - 664 sys sys 1116770041 4645
 sys/src/cmd/cpp/test.c - 664 sys sys 944960879 47
 sys/src/cmd/cpp/tokens.c - 664 sys sys 944960879 6755
-sys/src/cmd/cpu.c - 664 sys sys 1164133664 21154
+sys/src/cmd/cpu.c - 664 sys sys 1179337486 21193
 sys/src/cmd/crop.c - 664 sys sys 1134557476 4137
 sys/src/cmd/cwfs - 20000000775 sys sys 1174799196 0
 sys/src/cmd/cwfs/32bit.h - 664 sys sys 1171162581 594
@@ -10333,7 +10333,7 @@ sys/src/cmd/fossil/check.c - 664 sys sys 1177432003 17448
 sys/src/cmd/fossil/conf.rc - 775 sys sys 1084333190 1416
 sys/src/cmd/fossil/dat.h - 664 sys sys 1177432005 7655
 sys/src/cmd/fossil/deadlock - 775 sys sys 1042005506 413
-sys/src/cmd/fossil/disk.c - 664 sys sys 1158373945 6887
+sys/src/cmd/fossil/disk.c - 664 sys sys 1179296683 6993
 sys/src/cmd/fossil/dump.c - 664 sys sys 1042005506 1340
 sys/src/cmd/fossil/epoch.c - 664 sys sys 1045600021 997
 sys/src/cmd/fossil/error.c - 664 sys sys 1073851927 1450
@@ -13296,7 +13296,7 @@ sys/src/cmd/rio/data.c - 664 sys sys 1142015551 6169
 sys/src/cmd/rio/fns.h - 664 sys sys 1039133251 1065
 sys/src/cmd/rio/fsys.c - 664 sys sys 1019678647 13259
 sys/src/cmd/rio/mkfile - 664 sys sys 1111249068 431
-sys/src/cmd/rio/rio.c - 664 sys sys 1157899815 22866
+sys/src/cmd/rio/rio.c - 664 sys sys 1179332602 22953
 sys/src/cmd/rio/scrl.c - 664 sys sys 1014926357 3245
 sys/src/cmd/rio/time.c - 664 sys sys 1014926357 1829
 sys/src/cmd/rio/util.c - 664 sys sys 1014926357 2061
@@ -14764,7 +14764,7 @@ sys/src/libauth/auth_challenge.c - 664 sys sys 1014929316 1976
 sys/src/libauth/auth_chuid.c - 664 sys sys 1016833881 669
 sys/src/libauth/auth_getkey.c - 664 sys sys 1038605082 865
 sys/src/libauth/auth_getuserpasswd.c - 664 sys sys 1014929317 1363
-sys/src/libauth/auth_proxy.c - 664 sys sys 1053106349 3606
+sys/src/libauth/auth_proxy.c - 664 sys sys 1179362110 3673
 sys/src/libauth/auth_respond.c - 664 sys sys 1044828825 1420
 sys/src/libauth/auth_rpc.c - 664 sys sys 1048645351 2064
 sys/src/libauth/auth_userpasswd.c - 664 sys sys 1014929317 1097
@@ -14773,7 +14773,7 @@ sys/src/libauth/authlocal.h - 664 sys sys 1014929317 87
 sys/src/libauth/httpauth.c - 664 sys sys 1017166331 1059
 sys/src/libauth/login.c - 664 sys sys 1014929318 264
 sys/src/libauth/mkfile - 664 sys sys 1063854014 455
-sys/src/libauth/newns.c - 664 sys sys 1168307422 7344
+sys/src/libauth/newns.c - 664 sys sys 1179362110 7356
 sys/src/libauth/noworld.c - 664 sys sys 1014929318 779
 sys/src/libauthsrv - 20000000775 sys sys 1055718668 0
 sys/src/libauthsrv/_asgetticket.c - 664 sys sys 1015091652 280
@@ -15279,7 +15279,7 @@ sys/src/libdraw/getrect.c - 664 sys sys 1014927875 3046
 sys/src/libdraw/getsubfont.c - 664 sys sys 1131637696 807
 sys/src/libdraw/icossin.c - 664 sys sys 944961724 2117
 sys/src/libdraw/icossin2.c - 664 sys sys 944961724 4587
-sys/src/libdraw/init.c - 664 sys sys 1142862808 9108
+sys/src/libdraw/init.c - 664 sys sys 1179326794 9523
 sys/src/libdraw/keyboard.c - 664 sys sys 1030970091 1703
 sys/src/libdraw/line.c - 664 sys sys 1040442973 731
 sys/src/libdraw/loadimage.c - 664 sys sys 1014927876 983

+ 125 - 0
dist/replica/plan9.log

@@ -48870,3 +48870,128 @@
 1179232266 0 c sys/src/cmd/ip/ipconfig/main.c - 664 sys sys 1179231088 38062
 1179241268 0 c sys/man/4/acme - 664 sys sys 1179239864 10433
 1179261066 0 c 386/bin/ip/ipconfig - 775 sys sys 1179259380 157017
+1179293466 0 c sys/src/9/port/devfs.c - 664 sys sys 1179291960 12115
+1179297066 0 c sys/man/8/fossilcons - 664 sys sys 1179296666 18371
+1179297066 1 c sys/src/cmd/fossil/disk.c - 664 sys sys 1179296683 6993
+1179327680 0 c sys/src/libdraw/init.c - 664 sys sys 1179326794 9523
+1179331280 0 c sys/src/9/port/devfs.c - 664 sys sys 1158979470 10897
+1179333074 0 c sys/src/cmd/rio/rio.c - 664 sys sys 1179332602 22953
+1179338471 0 c sys/src/cmd/cpu.c - 664 sys sys 1179337486 21193
+1179356423 0 c sys/src/9/port/devfs.c - 664 sys sys 1179356387 12406
+1179363624 0 c sys/src/libauth/auth_proxy.c - 664 sys sys 1179362110 3673
+1179363624 1 c sys/src/libauth/newns.c - 664 sys sys 1179362110 7356
+1179369024 0 c 386/9pc - 775 sys sys 1179368409 1935757
+1179369024 1 c 386/9pc.gz - 664 sys sys 1179368411 828735
+1179369024 2 c 386/9pccpu - 775 sys sys 1179368416 1653717
+1179369024 3 c 386/9pccpu.gz - 664 sys sys 1179368413 714198
+1179369024 4 c 386/9pcdisk - 775 sys sys 1179368423 2137832
+1179369024 5 c 386/9pcdisk.gz - 664 sys sys 1179368425 915678
+1179369024 6 c 386/9pcf - 775 sys sys 1179368431 2482812
+1179369024 7 c 386/9pcf.gz - 664 sys sys 1179368434 1072144
+1179369024 8 c sys/src/cmd/auth/newns.c - 664 sys sys 1179368218 979
+1179372624 0 c 386/bin/acme - 775 sys sys 1179372066 430944
+1179372624 1 c 386/bin/archfs - 775 sys sys 1179372067 146788
+1179372624 2 c 386/bin/bitsy/keyboard - 775 sys sys 1179372079 306945
+1179372624 3 c 386/bin/bitsy/pencal - 775 sys sys 1179372079 117667
+1179372624 4 c 386/bin/bitsy/prompter - 775 sys sys 1179372080 287238
+1179372624 5 c 386/bin/cdfs - 775 sys sys 1179372081 166023
+1179372624 6 c 386/bin/cfs - 775 sys sys 1179372081 130255
+1179372624 7 c 386/bin/clock - 775 sys sys 1179372082 157340
+1179372624 8 c 386/bin/colors - 775 sys sys 1179372083 151015
+1179372624 9 c 386/bin/cpu - 775 sys sys 1179372083 138223
+1179372624 10 c 386/bin/exportfs - 775 sys sys 1179372084 161221
+1179372624 11 c 386/bin/faces - 775 sys sys 1179372085 193270
+1179372624 12 c 386/bin/games/4s - 775 sys sys 1179372088 177608
+1179372624 13 c 386/bin/games/5s - 775 sys sys 1179372088 179896
+1179372624 14 c 386/bin/games/catclock - 775 sys sys 1179372088 139894
+1179372624 15 c 386/bin/games/juggle - 775 sys sys 1179372089 125804
+1179372624 16 c 386/bin/games/mahjongg - 775 sys sys 1179372089 165271
+1179372624 17 c 386/bin/games/memo - 775 sys sys 1179372089 156656
+1179372624 18 c 386/bin/games/sokoban - 775 sys sys 1179372090 165514
+1179372624 19 c 386/bin/games/sudoku - 775 sys sys 1179372090 171015
+1179372624 20 c 386/bin/nntpfs - 775 sys sys 1179372100 165285
+1179372624 21 c 386/bin/png - 775 sys sys 1179372101 164630
+1179372624 22 c 386/bin/snapfs - 775 sys sys 1179372105 390366
+1179372624 23 c 386/bin/vncs - 775 sys sys 1179372111 471469
+1179372624 24 c 386/bin/vncv - 775 sys sys 1179372113 518914
+1179372624 25 c 386/bin/webcookies - 775 sys sys 1179372114 166178
+1179372624 26 c 386/bin/wikifs - 775 sys sys 1179372115 203019
+1179372624 27 c 386/bin/gif - 775 sys sys 1179372091 158603
+1179372624 28 c 386/bin/import - 775 sys sys 1179372092 101830
+1179372624 29 c 386/bin/jpg - 775 sys sys 1179372097 174971
+1179372624 30 c 386/bin/lens - 775 sys sys 1179372097 151167
+1179372624 31 c 386/bin/mc - 775 sys sys 1179372098 134354
+1179372624 32 c 386/bin/mount - 775 sys sys 1179372098 73326
+1179372624 33 c 386/bin/page - 775 sys sys 1179372100 234230
+1179372624 34 c 386/bin/plot - 775 sys sys 1179372101 222763
+1179372624 35 c 386/bin/ppm - 775 sys sys 1179372101 149813
+1179372624 36 c 386/bin/proof - 775 sys sys 1179372102 179158
+1179372624 37 c 386/bin/rdbfs - 775 sys sys 1179372102 173192
+1179372624 38 c 386/bin/rio - 775 sys sys 1179372103 312201
+1179372624 39 c 386/bin/rx - 775 sys sys 1179372103 82274
+1179372624 40 c 386/bin/scat - 775 sys sys 1179372104 284884
+1179372624 41 c 386/bin/srv - 775 sys sys 1179372105 82797
+1179372624 42 c 386/bin/stats - 775 sys sys 1179372106 191091
+1179372624 43 c 386/bin/webfs - 775 sys sys 1179372115 360393
+1179372624 44 c 386/bin/winwatch - 775 sys sys 1179372115 155325
+1179372624 45 c 386/bin/aquarela - 775 sys sys 1179372067 337755
+1179372624 46 c 386/bin/auth/cron - 775 sys sys 1179372068 143801
+1179372624 47 c 386/bin/auth/factotum - 775 sys sys 1179372069 321229
+1179372624 48 c 386/bin/auth/fgui - 775 sys sys 1179372070 219091
+1179372624 49 c 386/bin/auth/login - 775 sys sys 1179372070 104816
+1179372624 50 c 386/bin/auth/newns - 775 sys sys 1179372070 90035
+1179372624 51 c 386/bin/auth/none - 775 sys sys 1179372070 89318
+1179372624 52 c 386/bin/auth/warning - 775 sys sys 1179372071 99970
+1179372624 53 c 386/bin/aux/apm - 775 sys sys 1179372071 179083
+1179372624 54 c 386/bin/aux/disksim - 775 sys sys 1179372072 150567
+1179372624 55 c 386/bin/aux/flashfs - 775 sys sys 1179372072 165128
+1179372624 56 c 386/bin/aux/gpsfs - 775 sys sys 1179372073 181329
+1179372624 57 c 386/bin/aux/listen - 775 sys sys 1179372073 107720
+1179372624 58 c 386/bin/aux/listen1 - 775 sys sys 1179372074 94790
+1179372624 59 c 386/bin/aux/mnihongo - 775 sys sys 1179372074 140068
+1179372624 60 c 386/bin/aux/nfsserver - 775 sys sys 1179372075 184498
+1179372624 61 c 386/bin/aux/olefs - 775 sys sys 1179372075 148111
+1179372624 62 c 386/bin/aux/samterm - 775 sys sys 1179372077 253398
+1179372624 63 c 386/bin/aux/sshserve - 775 sys sys 1179372077 252035
+1179372624 64 c 386/bin/aux/statusbar - 775 sys sys 1179372078 152275
+1179372624 65 c 386/bin/aux/stub - 775 sys sys 1179372078 139674
+1179372624 66 c 386/bin/aux/timesync - 775 sys sys 1179372078 128466
+1179372624 67 c 386/bin/bmp - 775 sys sys 1179372080 158059
+1179372624 68 c 386/bin/cifscmd - 775 sys sys 1179372082 348593
+1179372624 69 c 386/bin/disk/kfs - 775 sys sys 1179372083 248648
+1179372624 70 c 386/bin/execnet - 775 sys sys 1179372084 176802
+1179372624 71 c 386/bin/ext2srv - 775 sys sys 1179372085 178481
+1179372624 72 c 386/bin/fossil/flchk - 775 sys sys 1179372086 237132
+1179372624 73 c 386/bin/fossil/flfmt - 775 sys sys 1179372087 245153
+1179372624 74 c 386/bin/fossil/fossil - 775 sys sys 1179372087 363789
+1179372624 75 c 386/bin/gview - 775 sys sys 1179372091 239070
+1179372624 76 c 386/bin/ico - 775 sys sys 1179372092 162180
+1179372624 77 c 386/bin/ip/ftpd - 775 sys sys 1179372092 170567
+1179372624 78 c 386/bin/ip/gping - 775 sys sys 1179372093 182147
+1179372624 79 c 386/bin/ip/httpd/httpd - 775 sys sys 1179372094 294970
+1179372624 80 c 386/bin/ip/httpfile - 775 sys sys 1179372094 283978
+1179372624 81 c 386/bin/ip/imap4d - 775 sys sys 1179372095 236829
+1179372624 82 c 386/bin/ip/ppp - 775 sys sys 1179372096 219103
+1179372624 83 c 386/bin/ip/rexexec - 775 sys sys 1179372096 90284
+1179372624 84 c 386/bin/ip/telnetd - 775 sys sys 1179372096 121990
+1179372624 85 c 386/bin/ip/tftpd - 775 sys sys 1179372096 130740
+1179372624 86 c 386/bin/kbmap - 775 sys sys 1179372097 144063
+1179372624 87 c 386/bin/mntgen - 775 sys sys 1179372098 144046
+1179372624 88 c 386/bin/mug - 775 sys sys 1179372099 176427
+1179372624 89 c 386/bin/nfs - 775 sys sys 1179372099 320163
+1179372624 90 c 386/bin/sshnet - 775 sys sys 1179372106 288186
+1179372624 91 c 386/bin/togif - 775 sys sys 1179372106 190268
+1179372624 92 c 386/bin/toico - 775 sys sys 1179372107 124047
+1179372624 93 c 386/bin/toppm - 775 sys sys 1179372107 165664
+1179372624 94 c 386/bin/trace - 775 sys sys 1179372108 180532
+1179372624 95 c 386/bin/tweak - 775 sys sys 1179372108 193304
+1179372624 96 c 386/bin/upas/pop3 - 775 sys sys 1179372109 261615
+1179372624 97 c 386/bin/upas/send - 775 sys sys 1179372109 192179
+1179372624 98 c 386/bin/upas/smtpd - 775 sys sys 1179372110 331146
+1179372624 99 c 386/bin/vt - 775 sys sys 1179372113 176626
+1179372624 100 c 386/bin/yuv - 775 sys sys 1179372116 153646
+1179372624 101 c 386/init - 775 sys sys 1179372116 101487
+1179372624 102 c 386/lib/ape/libdraw.a - 664 sys sys 1179372118 622218
+1179372624 103 c 386/lib/libauth.a - 664 sys sys 1179372118 58864
+1179372624 104 c 386/lib/libdraw.a - 664 sys sys 1179372119 375068
+1179372624 105 c acme/bin/386/win - 775 sys sys 1179372117 183770

+ 3 - 4
sys/man/8/fossilcons

@@ -142,6 +142,8 @@ con /srv/fscons
 .I data
 ]]
 .PP
+.in +1i
+.ti -1i
 [
 .B fsys
 .I name
@@ -161,10 +163,7 @@ con /srv/fscons
 .B clre
 ] [
 .B clrp
-]
-.br
-\h'1.5i'
-[
+] [
 .B fix
 ] [
 .B venti

+ 120 - 78
sys/src/9/port/devfs.c

@@ -28,6 +28,9 @@ enum {
 	Qctl,			/* ctl file */
 	Qfirst,			/* first fs file */
 
+	Iswrite = 0,
+	Isread,
+
 	/* tunable parameters */
 	Maxconf	= 4*1024,	/* max length for config */
 	Ndevs	= 32,		/* max. inner devs per command */
@@ -36,17 +39,23 @@ enum {
 
 #define	Cfgstr	"fsdev:\n"
 
+typedef struct Inner Inner;
+struct Inner
+{
+	char	*iname;		/* inner device name */
+	vlong	isize;		/* size of inner device */
+	Chan	*idev;		/* inner device */
+};
+
 typedef struct Fsdev Fsdev;
 struct Fsdev
 {
 	int	type;
 	char	*name;		/* name for this fsdev */
+	vlong	size;		/* min(inner[X].isize) */
 	vlong	start;		/* start address (for Fpart) */
-	vlong	size;		/* min(idev sizes) */
 	int	ndevs;		/* number of inner devices */
-	char	*iname[Ndevs];	/* inner device names */
-	Chan	*idev[Ndevs];	/* inner devices */
-	vlong	isize[Ndevs];	/* sizes for inner devices */
+	Inner	inner[Ndevs];
 };
 
 extern Dev fsdevtab;		/* forward */
@@ -107,18 +116,18 @@ setdsize(Fsdev* mp)
 	int	i;
 	long	l;
 	uchar	buf[128];	/* old DIRLEN plus a little should be plenty */
-	Chan	*mc;
 	Dir	d;
+	Inner	*in;
 
 	if (mp->type != Fpart){
 		mp->start= 0;
 		mp->size = 0;
 	}
 	for (i = 0; i < mp->ndevs; i++){
-		mc = mp->idev[i];
-		l = devtab[mc->type]->stat(mc, buf, sizeof(buf));
+		in = &mp->inner[i];
+		l = devtab[in->idev->type]->stat(in->idev, buf, sizeof buf);
 		convM2D(buf, l, &d, nil);
-		mp->isize[i] = d.length;
+		in->isize = d.length;
 		switch(mp->type){
 		case Fmirror:
 			if (mp->size == 0 || mp->size > d.length)
@@ -130,7 +139,7 @@ setdsize(Fsdev* mp)
 		case Finter:
 			/* truncate to multiple of Blksize */
 			d.length &= ~(Blksize-1);
-			mp->isize[i] = d.length;
+			in->isize = d.length;
 			mp->size += d.length;
 			break;
 		case Fpart:
@@ -155,12 +164,12 @@ mpshut(Fsdev *mp)
 	if (nm)
 		free(nm);
 	for (i = 0; i < mp->ndevs; i++){
-		if (mp->idev[i] != nil)
-			cclose(mp->idev[i]);
-		if (mp->iname[i])
-			free(mp->iname[i]);
+		if (mp->inner[i].idev != nil)
+			cclose(mp->inner[i].idev);
+		if (mp->inner[i].iname)
+			free(mp->inner[i].iname);
 	}
-	memset(mp, 0, sizeof(*mp));
+	memset(mp, 0, sizeof *mp);
 }
 
 
@@ -173,6 +182,7 @@ mconfig(char* a, long n)	/* "name idev0 idev1" */
 	Cmdbuf	*cb;
 	Cmdtab	*ct;
 	Fsdev	*mp;
+	Inner	*inprv;
 	static	QLock	lck;
 
 	size = 0;
@@ -235,7 +245,7 @@ mconfig(char* a, long n)	/* "name idev0 idev1" */
 			error(Eexist);
 
 	if (cb->nf - 1 > Ndevs)
-		error("too many devices; fix me, increase Ndevs");
+		error("too many devices; fix #k: increase Ndevs");
 	for (i = 0; i < cb->nf; i++)
 		validname(cb->f[i], (i != 0));
 
@@ -247,9 +257,10 @@ mconfig(char* a, long n)	/* "name idev0 idev1" */
 	}
 	kstrdup(&mp->name, cb->f[0]);
 	for (i = 1; i < cb->nf; i++){
-		kstrdup(&mp->iname[i-1], cb->f[i]);
-		mp->idev[i-1] = namec(mp->iname[i-1], Aopen, ORDWR, 0);
-		if (mp->idev[i-1] == nil)
+		inprv = &mp->inner[i-1];
+		kstrdup(&inprv->iname, cb->f[i]);
+		inprv->idev = namec(inprv->iname, Aopen, ORDWR, 0);
+		if (inprv->idev == nil)
 			error(Egreg);
 		mp->ndevs++;
 	}
@@ -293,7 +304,7 @@ rdconf(void)
 	cclose(*ccp);
 	*ccp = nil;
 	if (strncmp(confstr, Cfgstr, strlen(Cfgstr)) != 0)
-		error("Bad config, first line must be: 'fsdev:\\n'");
+		error("bad #k config, first line must be: 'fsdev:\\n'");
 	kstrdup(&c, confstr + strlen(Cfgstr));
 	memset(confstr, 0, sizeof confstr);
 	for (p = c; p != nil && *p != 0; p = e){
@@ -418,33 +429,62 @@ mclose(Chan*)
 	/* that's easy */
 }
 
+
+static long
+io(Fsdev *mp, Inner *in, int isread, void *a, long l, vlong off)
+{
+	long wl;
+	Chan *mc = in->idev;
+
+	if (waserror()) {
+		print("#k: %s byte %,lld (of %s): %s error: %s\n",
+			in->iname, off, mp->name, (isread? "read": "write"),
+			(up && up->errstr? up->errstr: ""));
+		nexterror();
+	}
+	if (isread) {
+		wl = devtab[mc->type]->read(mc, a, l, off);
+		if (wl != l) {
+			print("#k: %s byte %,lld (of %s): short read\n",
+				in->iname, off, mp->name);
+			nexterror();
+		}
+	} else {
+		wl = devtab[mc->type]->write(mc, a, l, off);
+		if (wl != l) {
+			print("#k: %s byte %,lld (of %s): write error\n",
+				in->iname, off, mp->name);
+			nexterror();
+		}
+	}
+	poperror();
+	return wl;
+}
+
 static long
 catio(Fsdev *mp, int isread, void *a, long n, vlong off)
 {
 	int	i;
-	Chan*	mc;
 	long	l, wl, res;
+	Inner	*in;
 
 	// print("catio %d %p %ld %lld\n", isread, a, n, off);
 	res = n;
 	for (i = 0; n >= 0 && i < mp->ndevs ; i++){
-		mc = mp->idev[i];
-		if (off > mp->isize[i]){
-			off -= mp->isize[i];
-			continue;
+		in = &mp->inner[i];
+		if (off > in->isize){
+			off -= in->isize;
+			continue;		/* not there yet */
 		}
-		if (off + n > mp->isize[i])
-			l = mp->isize[i] - off;
+		if (off + n > in->isize)
+			l = in->isize - off;
 		else
 			l = n;
 		// print("\tdev %d %p %ld %lld\n", i, a, l, off);
 
-		if (isread)
-			wl = devtab[mc->type]->read(mc, a, l, off);
-		else
-			wl = devtab[mc->type]->write(mc, a, l, off);
-		if (wl != l)
-			error("#k: write failed");
+		wl = io(mp, in, isread, a, l, off);
+		assert(wl == l);
+
 		a = (char*)a + l;
 		off = 0;
 		n -= l;
@@ -459,7 +499,7 @@ interio(Fsdev *mp, int isread, void *a, long n, vlong off)
 	int	i;
 	long	boff, res, l, wl, wsz;
 	vlong	woff, blk, mblk;
-	Chan*	mc;
+	Inner	*in;
 
 	blk  = off / Blksize;
 	boff = off % Blksize;
@@ -468,18 +508,17 @@ interio(Fsdev *mp, int isread, void *a, long n, vlong off)
 	while(n > 0){
 		mblk = blk / mp->ndevs;
 		i    = blk % mp->ndevs;
-		mc   = mp->idev[i];
 		woff = mblk*Blksize + boff;
 		if (n > wsz)
 			l = wsz;
 		else
 			l = n;
-		if (isread)
-			wl = devtab[mc->type]->read(mc, a, l, woff);
-		else
-			wl = devtab[mc->type]->write(mc, a, l, woff);
+
+		in = &mp->inner[i];
+		wl = io(mp, in, isread, a, l, woff);
 		if (wl != l || l == 0)
 			error(Eio);
+
 		a = (char*)a + l;
 		n -= l;
 		blk++;
@@ -494,8 +533,8 @@ mread(Chan *c, void *a, long n, vlong off)
 {
 	int	i;
 	long	l, res;
-	Chan	*mc;
 	Fsdev	*mp;
+	Inner	*in;
 
 	if (c->qid.type & QTDIR)
 		return devdirread(c, a, n, 0, 0, mgen);
@@ -513,38 +552,33 @@ mread(Chan *c, void *a, long n, vlong off)
 
 	res = -1;
 	switch(mp->type){
+	case Fcat:
+		res = catio(mp, Isread, a, n, off);
+		break;
+	case Finter:
+		res = interio(mp, Isread, a, n, off);
+		break;
+	case Fpart:
+		in = &mp->inner[0];
+		res = io(mp, in, Isread, a, n, mp->start + off);
+		assert(res == n);
+		break;
 	case Fmirror:
 		for (i = 0; i < mp->ndevs; i++){
-			mc = mp->idev[i];
 			if (waserror()){
-				/*
-				 * if a read fails we let the user know and try
-				 * another device.
-				 */
-				print("#k: mread: (%llx %d): %s\n",
-					c->qid.path, i, up->errstr);
+				poperror();
 				continue;
 			}
-			l = devtab[mc->type]->read(mc, a, n, off);
+			in = &mp->inner[i];
+			l = io(mp, in, Isread, a, n, off);
 			poperror();
 			if (l >= 0){
 				res = l;
-				break;
+				break;		/* read a good copy */
 			}
 		}
-		if (i == mp->ndevs)
-			error(Eio);
-		break;
-	case Fcat:
-		res = catio(mp, 1, a, n, off);
-		break;
-	case Finter:
-		res = interio(mp, 1, a, n, off);
-		break;
-	case Fpart:
-		off += mp->start;
-		mc = mp->idev[0];
-		res = devtab[mc->type]->read(mc, a, n, off);
+		if (i == mp->ndevs) /* no mirror had a good copy of the block? */
+			error(Eio);	/* RRRT! RRRT!  RAID failure! */
 		break;
 	}
 	return res;
@@ -553,10 +587,10 @@ mread(Chan *c, void *a, long n, vlong off)
 static long
 mwrite(Chan *c, void *a, long n, vlong off)
 {
-	int	i;
+	int	i, allbad;
 	long	l, res;
-	Chan	*mc;
 	Fsdev	*mp;
+	Inner	*in;
 
 	if (c->qid.type & QTDIR)
 		error(Eperm);
@@ -574,26 +608,34 @@ mwrite(Chan *c, void *a, long n, vlong off)
 		return 0;
 	res = n;
 	switch(mp->type){
-	case Fmirror:
-		for (i = mp->ndevs - 1; i >= 0; i--){
-			mc = mp->idev[i];
-			l = devtab[mc->type]->write(mc, a, n, off);
-			if (l < res)
-				res = l;
-		}
-		break;
 	case Fcat:
-		res = catio(mp, 0, a, n, off);
+		res = catio(mp, Iswrite, a, n, off);
 		break;
 	case Finter:
-		res = interio(mp, 0, a, n, off);
+		res = interio(mp, Iswrite, a, n, off);
 		break;
 	case Fpart:
-		mc = mp->idev[0];
-		off += mp->start;
-		l = devtab[mc->type]->write(mc, a, n, off);
-		if (l < res)
-			res = l;
+		in = &mp->inner[0];
+		res = io(mp, in, Iswrite, a, n, mp->start + off);
+		if (res > n)
+			res = n;
+		break;
+	case Fmirror:
+		allbad = 1;
+		for (i = mp->ndevs - 1; i >= 0; i--){
+			if (waserror()){
+				poperror();
+				continue;
+			}
+			in = &mp->inner[i];
+			l = io(mp, in, Iswrite, a, n, off);
+			poperror();
+			if (res > l)
+				res = l;	/* shortest OK write */
+			allbad = 0;		/* wrote a good copy */
+		}
+		if (allbad)	/* no mirror took a good copy of the block? */
+			error(Eio);	/* RRRT! RRRT!  RAID failure! */
 		break;
 	}
 	return res;

+ 1 - 0
sys/src/cmd/auth/newns.c

@@ -29,6 +29,7 @@ main(int argc, char **argv)
 	char *nsfile, err[ERRMAX];
 	int add;
 
+	rfork(RFNAMEG);
 	add = 0;
 	nsfile = "/lib/namespace";
 	ARGBEGIN{

+ 2 - 2
sys/src/cmd/cpu.c

@@ -131,14 +131,14 @@ main(int argc, char **argv)
 		}
 		break;
 	case 'k':
-		keyspec = EARGF(usage());
+		keyspec = smprint("%s %s", keyspec, EARGF(usage()));
 		break;
 	case 'P':
 		patternfile = EARGF(usage());
 		break;
 	case 'u':
 		user = EARGF(usage());
-		keyspec = smprint("user=%s", user);
+		keyspec = smprint("%s user=%s", keyspec, user);
 		break;
 	default:
 		usage();

+ 12 - 6
sys/src/cmd/fossil/disk.c

@@ -162,7 +162,7 @@ diskWriteRaw(Disk *disk, int part, u32int addr, uchar *buf)
 	start = partStart(disk, part);
 	end = partEnd(disk, part);
 
-	if(addr >= end-start){
+	if(addr >= end - start){
 		vtSetError(EBadAddr);
 		return 0;
 	}
@@ -318,7 +318,7 @@ diskThread(void *a)
 //if(nio >= 10000){
 //fprint(2, "disk: io=%d at %.3fms\n", nio, t*1e-6/nio);
 //nio = 0;
-//t = 0.;
+//t = 0;
 //}
 			if(disk->die != nil)
 				goto Done;
@@ -350,17 +350,23 @@ if(0)fprint(2, "fossil: diskThread: %d:%d %x\n", getpid(), b->part, b->addr);
 			abort();
 		case BioReading:
 			if(!diskReadRaw(disk, b->part, b->addr, b->data)){
-fprint(2, "fossil: diskReadRaw failed: %s: score %V: part=%s addr=%ud: %r\n",
-disk2file(disk), b->score, partname[b->part], b->addr);
+				fprint(2, "fossil: diskReadRaw failed: %s: "
+					"score %V: part=%s block %ud: %r\n",
+					disk2file(disk), b->score,
+					partname[b->part], b->addr);
 				blockSetIOState(b, BioReadError);
 			}else
 				blockSetIOState(b, BioClean);
 			break;
 		case BioWriting:
 			p = blockRollback(b, buf);
+			/* NB: ctime result ends with a newline */
 			if(!diskWriteRaw(disk, b->part, b->addr, p)){
-fprint(2, "fossil: diskWriteRaw failed: %s: %V: date=%s part=%s addr=%ud: %r\n",
-disk2file(disk), b->score, ctime(times(0)), partname[b->part], b->addr);
+				fprint(2, "fossil: diskWriteRaw failed: %s: "
+				    "score %V: date %s part=%s block %ud: %r\n",
+					disk2file(disk), b->score,
+					ctime(time(0)),
+					partname[b->part], b->addr);
 				break;
 			}
 			if(p != buf)

+ 5 - 2
sys/src/cmd/rio/rio.c

@@ -306,11 +306,14 @@ int
 shutdown(void *, char *msg)
 {
 	int i;
-
+	static Lock shutdownlk;
+	
 	killprocs();
 	for(i=0; oknotes[i]; i++)
-		if(strncmp(oknotes[i], msg, strlen(oknotes[i])) == 0)
+		if(strncmp(oknotes[i], msg, strlen(oknotes[i])) == 0){
+			lock(&shutdownlk);	/* only one can threadexitsall */
 			threadexitsall(msg);
+		}
 	fprint(2, "rio %d: abort: %s\n", getpid(), msg);
 	abort();
 	exits(msg);

+ 16 - 12
sys/src/libauth/auth_proxy.c

@@ -4,7 +4,7 @@
 #include <auth.h>
 #include "authlocal.h"
 
-enum { 
+enum {
 	ARgiveup = 100,
 };
 
@@ -123,6 +123,11 @@ fauth_proxy(int fd, AuthRpc *rpc, AuthGetkey *getkey, char *params)
 	AuthInfo *a;
 	char oerr[ERRMAX];
 
+	if(rpc == nil){
+		werrstr("fauth_proxy - no factotum");
+		return nil;
+	}
+
 	rerrstr(oerr, sizeof oerr);
 	werrstr("UNKNOWN AUTH ERROR");
 
@@ -139,7 +144,8 @@ fauth_proxy(int fd, AuthRpc *rpc, AuthGetkey *getkey, char *params)
 		case ARdone:
 			free(buf);
 			a = auth_getinfo(rpc);
-			errstr(oerr, sizeof oerr);	/* no error, restore whatever was there */
+			/* no error, restore whatever was there */
+			errstr(oerr, sizeof oerr);
 			return a;
 		case ARok:
 			if(write(fd, rpc->arg, rpc->narg) != rpc->narg){
@@ -153,10 +159,11 @@ fauth_proxy(int fd, AuthRpc *rpc, AuthGetkey *getkey, char *params)
 			while((ret = dorpc(rpc, "write", buf, n, getkey)) == ARtoosmall){
 				if(atoi(rpc->arg) > AuthRpcMax)
 					break;
-				m = read(fd, buf+n, atoi(rpc->arg)-n);
+				m = read(fd, buf + n, atoi(rpc->arg) - n);
 				if(m <= 0){
 					if(m == 0)
-						werrstr("auth_proxy short read: %s", buf);
+						werrstr("auth_proxy short read: %s",
+							buf);
 					goto Error;
 				}
 				n += m;
@@ -190,6 +197,7 @@ auth_proxy(int fd, AuthGetkey *getkey, char *fmt, ...)
 	p = vsmprint(fmt, arg);
 	va_end(arg);
 
+	ai = nil;
 	afd = open("/mnt/factotum/rpc", ORDWR);
 	if(afd < 0){
 		werrstr("opening /mnt/factotum/rpc: %r");
@@ -198,15 +206,11 @@ auth_proxy(int fd, AuthGetkey *getkey, char *fmt, ...)
 	}
 
 	rpc = auth_allocrpc(afd);
-	if(rpc == nil){
-		free(p);
-		return nil;
+	if(rpc){
+		ai = fauth_proxy(fd, rpc, getkey, p);
+		auth_freerpc(rpc);
 	}
-
-	ai = fauth_proxy(fd, rpc, getkey, p);
-	free(p);
-	auth_freerpc(rpc);
 	close(afd);
+	free(p);
 	return ai;
 }
-

+ 26 - 21
sys/src/libauth/newns.c

@@ -21,58 +21,59 @@ static int	catch(void*, char*);
 
 int newnsdebug;
 
+static int
+freecloserpc(AuthRpc *rpc)
+{
+	if(rpc){
+		close(rpc->afd);
+		auth_freerpc(rpc);
+	}
+	return -1;
+}
+
 static int
 buildns(int newns, char *user, char *file)
 {
 	Biobuf *b;
 	char home[4*ANAMELEN];
-	int afd;
-	AuthRpc *rpc;
-	int cdroot;
+	int afd, cdroot;
 	char *path;
+	AuthRpc *rpc;
 
 	rpc = nil;
 	/* try for factotum now because later is impossible */
 	afd = open("/mnt/factotum/rpc", ORDWR);
-	if (afd < 0 && newnsdebug)
+	if(afd < 0 && newnsdebug)
 		fprint(2, "open /mnt/factotum/rpc: %r\n");
 	if(afd >= 0){
 		rpc = auth_allocrpc(afd);
-		if(rpc == nil){
+		if(rpc == nil)
 			close(afd);
-			afd = -1;
-		}
 	}
+	/* rpc != nil iff afd >= 0 */
+
 	if(file == nil){
 		if(!newns){
 			werrstr("no namespace file specified");
-			return -1;
+			return freecloserpc(rpc);
 		}
 		file = "/lib/namespace";
 	}
 	b = Bopen(file, OREAD);
 	if(b == 0){
 		werrstr("can't open %s: %r", file);
-		close(afd);
-		auth_freerpc(rpc);
-		return -1;
+		return freecloserpc(rpc);
 	}
 	if(newns){
 		rfork(RFENVG|RFCNAMEG);
 		setenv("user", user);
-		snprint(home, 2*ANAMELEN, "/usr/%s", user);
+		snprint(home, sizeof home, "/usr/%s", user);
 		setenv("home", home);
 	}
-	/*
-	 * if rpc==nil here, a suicide will result when it's
-	 * dereferenced, typically in memmove, from auth_rpc.
-	 */
+
 	cdroot = nsfile(newns ? "newns" : "addns", b, rpc);
 	Bterm(b);
-	if(rpc){
-		close(rpc->afd);
-		auth_freerpc(rpc);
-	}
+	freecloserpc(rpc);
 
 	/* make sure we managed to cd into the new name space */
 	if(newns && !cdroot){
@@ -126,6 +127,7 @@ famount(int fd, AuthRpc *rpc, char *mntpt, int flags, char *aname)
 {
 	int afd;
 	AuthInfo *ai;
+	int ret;
 
 	afd = fauth(fd, aname);
 	if(afd >= 0){
@@ -133,7 +135,10 @@ famount(int fd, AuthRpc *rpc, char *mntpt, int flags, char *aname)
 		if(ai != nil)
 			auth_freeAI(ai);
 	}
-	return mount(fd, afd, mntpt, flags, aname);
+	ret = mount(fd, afd, mntpt, flags, aname);
+	if(afd >= 0)
+		close(afd);
+	return ret;
 }
 
 static int

+ 19 - 1
sys/src/libdraw/init.c

@@ -12,6 +12,9 @@ Screen	*_screen;
 
 int		debuglockdisplay = 0;
 
+static void _closedisplay(Display*, int);
+
+/* note handler */
 static void
 drawshutdown(void)
 {
@@ -20,7 +23,7 @@ drawshutdown(void)
 	d = display;
 	if(d){
 		display = nil;
-		closedisplay(d);
+		_closedisplay(d, 1);
 	}
 }
 
@@ -334,6 +337,12 @@ initdisplay(char *dev, char *win, void(*error)(Display*, char*))
  */
 void
 closedisplay(Display *disp)
+{
+	_closedisplay(disp, 0);
+}
+
+static void
+_closedisplay(Display *disp, int isshutdown)
 {
 	int fd;
 	char buf[128];
@@ -351,6 +360,15 @@ closedisplay(Display *disp)
 		}
 	}
 
+	/*
+	 * if we're shutting down, don't free all the resources.
+	 * if other procs are getting shot down by notes too,
+	 * one might get shot down while holding the malloc lock.
+	 * just let the kernel clean things up when we exit.
+	 */
+	if(isshutdown)
+		return;
+
 	free(disp->devdir);
 	free(disp->windir);
 	freeimage(disp->white);