Browse Source

Plan 9 from Bell Labs 2003-11-10

David du Colombier 17 years ago
parent
commit
54c4188479

+ 87 - 83
dist/replica/plan9.db

@@ -6,28 +6,28 @@
 29000/mkfile - 664 sys sys 948141302 46
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1068156766 181788
-386/9loaddebug - 775 sys sys 1064598409 260250
+386/9loaddebug - 775 sys sys 1068385814 262014
 386/9loadlite - 775 sys sys 1066618055 124684
-386/9loadlitedebug - 775 sys sys 1064598410 183708
-386/9pc - 775 sys sys 1064598419 1848196
+386/9loadlitedebug - 775 sys sys 1068385814 184444
+386/9pc - 775 sys sys 1068385819 1828006
 386/9pc.gz - 664 sys sys 1040006338 614078
-386/9pccpu - 775 sys sys 1064598427 1490617
+386/9pccpu - 775 sys sys 1068385822 1471511
 386/9pccpu.gz - 664 sys sys 1040006341 504177
-386/9pcdisk - 775 sys sys 1064598438 2068333
+386/9pcdisk - 775 sys sys 1068385827 2037837
 386/9pcdisk.gz - 664 sys sys 1040006345 703136
-386/9pcf - 775 sys sys 1064598451 2362604
+386/9pcf - 775 sys sys 1068385833 2363147
 386/9pcf.gz - 664 sys sys 1064598456 862669
 386/9pxeload - 775 sys sys 1056364444 180364
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
 386/bin - 20000000775 sys sys 1018897690 0
 386/bin/1c - 775 sys sys 1063639729 306762
-386/bin/8a - 775 sys sys 1064598016 113168
-386/bin/8c - 775 sys sys 1064598017 298504
+386/bin/8a - 775 sys sys 1068385789 113237
+386/bin/8c - 775 sys sys 1068385790 299023
 386/bin/8l - 775 sys sys 1064598018 107653
 386/bin/9660srv - 775 sys sys 1064598019 104963
 386/bin/aan - 775 sys sys 1064598020 128816
 386/bin/acid - 775 sys sys 1064598022 378064
-386/bin/acme - 775 sys sys 1064598024 417601
+386/bin/acme - 775 sys sys 1068385791 417693
 386/bin/ape - 20000000775 sys sys 1016944144 0
 386/bin/ape/basename - 775 sys sys 1048744993 132430
 386/bin/ape/cc - 775 sys sys 1064598025 68790
@@ -60,7 +60,7 @@
 386/bin/auth/debug - 775 sys sys 1064598037 97939
 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 1064598039 308937
+386/bin/auth/factotum - 775 sys sys 1068385793 309877
 386/bin/auth/fgui - 775 sys sys 1064598040 212529
 386/bin/auth/guard.srv - 775 sys sys 1064598041 140300
 386/bin/auth/iam - 775 sys sys 1064598041 50807
@@ -77,9 +77,9 @@
 386/bin/auth/rsafill - 775 sys sys 1064598051 142035
 386/bin/auth/rsagen - 775 sys sys 1064598052 152733
 386/bin/auth/secretpem - 775 sys sys 1045537944 118526
-386/bin/auth/secstore - 775 sys sys 1064598053 187847
+386/bin/auth/secstore - 775 sys sys 1068385793 188789
 386/bin/auth/secstored - 775 sys sys 1064798342 194075
-386/bin/auth/secuser - 775 sys sys 1064667524 151195
+386/bin/auth/secuser - 775 sys sys 1068385794 151909
 386/bin/auth/status - 775 sys sys 1020319060 738
 386/bin/auth/uniq - 775 sys sys 1064598056 61525
 386/bin/auth/warning - 775 sys sys 1064598057 98465
@@ -124,13 +124,13 @@
 386/bin/aux/mswordstrings - 775 sys sys 1064598076 64020
 386/bin/aux/na - 775 sys sys 1064598077 153189
 386/bin/aux/nfsmount - 775 sys sys 1064598079 231906
-386/bin/aux/nfsserver - 775 sys sys 1064598080 171173
-386/bin/aux/olefs - 775 sys sys 1064598081 145503
+386/bin/aux/nfsserver - 775 sys sys 1068385795 171155
+386/bin/aux/olefs - 775 sys sys 1068385795 145454
 386/bin/aux/p9bitpost - 775 sys sys 1064598082 127824
 386/bin/aux/pcmcia - 775 sys sys 1065397226 46816
-386/bin/aux/pcnfsd - 775 sys sys 1064598083 126867
+386/bin/aux/pcnfsd - 775 sys sys 1068385796 126851
 386/bin/aux/portmap - 775 sys sys 1064598084 141451
-386/bin/aux/portmapper - 775 sys sys 1064598085 125755
+386/bin/aux/portmapper - 775 sys sys 1068385797 125739
 386/bin/aux/postgif - 775 sys sys 1048745022 174648
 386/bin/aux/postprint - 775 sys sys 1048745023 159149
 386/bin/aux/postreverse - 775 sys sys 1048745024 164587
@@ -185,7 +185,7 @@
 386/bin/con - 775 sys sys 1064598112 76255
 386/bin/cp - 775 sys sys 1064598112 62444
 386/bin/cpp - 775 sys sys 1064598113 148797
-386/bin/cpu - 775 sys sys 1064598114 138072
+386/bin/cpu - 775 sys sys 1068385797 138633
 386/bin/crop - 775 sys sys 1064598115 115337
 386/bin/date - 775 sys sys 1064598116 43706
 386/bin/db - 775 sys sys 1064598118 323381
@@ -193,10 +193,10 @@
 386/bin/dd - 775 sys sys 1064598118 45991
 386/bin/deroff - 775 sys sys 1064598119 72954
 386/bin/dial - 20000000775 sys sys 1058790015 0
-386/bin/dial/at - 775 sys sys 1058790014 59165
-386/bin/dial/drain - 775 sys sys 1058790014 4122
-386/bin/dial/expect - 775 sys sys 1058790015 58571
-386/bin/dial/pass - 775 sys sys 1059696921 39305
+386/bin/dial/at - 775 sys sys 1068385868 58987
+386/bin/dial/drain - 775 sys sys 1068385869 4120
+386/bin/dial/expect - 775 sys sys 1068385869 58283
+386/bin/dial/pass - 775 sys sys 1068385869 39019
 386/bin/dict - 775 sys sys 1064598121 185384
 386/bin/diff - 775 sys sys 1064598122 82019
 386/bin/disk - 20000000775 sys sys 984788664 0
@@ -215,7 +215,7 @@
 386/bin/disk/prep - 775 sys sys 1064598130 99125
 386/bin/disk/sacfs - 775 sys sys 1020319075 79882
 386/bin/dossrv - 775 sys sys 1064598131 139656
-386/bin/du - 775 sys sys 1064598131 62819
+386/bin/du - 775 sys sys 1068385799 69180
 386/bin/echo - 775 sys sys 1064598132 55580
 386/bin/ed - 775 sys sys 1064598133 91839
 386/bin/eqn - 775 sys sys 1048745036 240244
@@ -243,7 +243,7 @@
 386/bin/fs/v6fs - 775 sys sys 1064598150 95873
 386/bin/ftpfs - 775 sys sys 1064598151 149205
 386/bin/getmap - 775 sys sys 1064598152 63430
-386/bin/gif - 775 sys sys 1064598153 156535
+386/bin/gif - 775 sys sys 1068385799 156607
 386/bin/grap - 775 sys sys 1048745045 275664
 386/bin/graph - 775 sys sys 1064598154 127779
 386/bin/grep - 775 sys sys 1064598154 77644
@@ -251,7 +251,7 @@
 386/bin/gunzip - 775 sys sys 1064598211 79675
 386/bin/gzip - 775 sys sys 1064598211 83770
 386/bin/hayes - 775 sys sys 1064598212 63307
-386/bin/hget - 775 sys sys 1064598213 220475
+386/bin/hget - 775 sys sys 1068385800 222506
 386/bin/history - 775 sys sys 1064598214 71890
 386/bin/hoc - 775 sys sys 1064598215 98708
 386/bin/html2ms - 775 sys sys 1064598215 64484
@@ -272,13 +272,15 @@
 386/bin/ip/httpd/httpd - 775 sys sys 1064598227 288683
 386/bin/ip/httpd/imagemap - 775 sys sys 1064598228 113413
 386/bin/ip/httpd/man2html - 775 sys sys 1064598229 121681
+386/bin/ip/httpd/netlib_find - 775 sys sys 1068385801 114179
+386/bin/ip/httpd/netlib_history - 775 sys sys 1068385801 112809
 386/bin/ip/httpd/save - 775 sys sys 1064598231 130742
-386/bin/ip/httpd/webls - 775 sys sys 1065646626 129996
+386/bin/ip/httpd/webls - 775 sys sys 1068385802 129726
 386/bin/ip/httpd/wikipost - 775 sys sys 1064598232 111102
 386/bin/ip/imap4d - 775 sys sys 1066317082 237216
 386/bin/ip/ipconfig - 775 sys sys 1066515194 128650
 386/bin/ip/ping - 775 sys sys 1064598234 74889
-386/bin/ip/ppp - 775 sys sys 1064598236 216026
+386/bin/ip/ppp - 775 sys sys 1068385803 217036
 386/bin/ip/pppoe - 775 sys sys 1064598236 75233
 386/bin/ip/pptp - 775 sys sys 1064598237 123773
 386/bin/ip/pptpd - 775 sys sys 1064598238 124288
@@ -291,7 +293,7 @@
 386/bin/ip/traceroute - 775 sys sys 1064598244 70604
 386/bin/ip/udpecho - 775 sys sys 1064598244 43304
 386/bin/join - 775 sys sys 1064598245 114856
-386/bin/jpg - 775 sys sys 1064598246 173228
+386/bin/jpg - 775 sys sys 1068385803 173300
 386/bin/kprof - 775 sys sys 1064598247 101656
 386/bin/ktrace - 775 sys sys 1064598247 114883
 386/bin/lens - 775 sys sys 1064598248 122791
@@ -340,14 +342,14 @@
 386/bin/plot - 775 sys sys 1064598279 220038
 386/bin/plumb - 775 sys sys 1064598279 65223
 386/bin/plumber - 775 sys sys 1064598281 170526
-386/bin/png - 775 sys sys 1064598282 158578
-386/bin/ppm - 775 sys sys 1064598283 147594
+386/bin/png - 775 sys sys 1068385804 158641
+386/bin/ppm - 775 sys sys 1068385805 147658
 386/bin/pr - 775 sys sys 1064598283 76323
 386/bin/primes - 775 sys sys 1064598284 39022
-386/bin/prof - 775 sys sys 1064598285 106132
+386/bin/prof - 775 sys sys 1068385805 106495
 386/bin/proof - 775 sys sys 1064598286 176186
 386/bin/ps - 775 sys sys 1064598286 64385
-386/bin/pwd - 775 sys sys 1064598287 36918
+386/bin/pwd - 775 sys sys 1068385805 37108
 386/bin/qc - 775 sys sys 1063639757 291344
 386/bin/ramfs - 775 sys sys 1064598287 89875
 386/bin/rc - 775 sys sys 1064598288 141342
@@ -380,7 +382,7 @@
 386/bin/snap - 775 sys sys 1064598310 288474
 386/bin/snapfs - 775 sys sys 1064598312 360074
 386/bin/sniffer - 775 sys sys 1038443185 99028
-386/bin/snoopy - 775 sys sys 1064598313 153906
+386/bin/snoopy - 775 sys sys 1068385806 153816
 386/bin/sort - 775 sys sys 1064598313 81046
 386/bin/spin - 775 sys sys 1048745068 649685
 386/bin/split - 775 sys sys 1064598314 74007
@@ -406,7 +408,7 @@
 386/bin/time - 775 sys sys 1064598328 59564
 386/bin/tlsclient - 775 sys sys 1064598330 196114
 386/bin/tlssrv - 775 sys sys 1064598331 196448
-386/bin/togif - 775 sys sys 1064598332 189500
+386/bin/togif - 775 sys sys 1068385807 189563
 386/bin/topng - 775 sys sys 1064598333 137721
 386/bin/toppm - 775 sys sys 1064598335 164939
 386/bin/touch - 775 sys sys 1064598335 62963
@@ -425,17 +427,17 @@
 386/bin/upas/aliasmail - 775 sys sys 1064598344 101477
 386/bin/upas/bayes - 775 sys sys 1064598344 70530
 386/bin/upas/deliver - 775 sys sys 1064598345 98017
-386/bin/upas/filter - 775 sys sys 1064598346 145465
-386/bin/upas/fs - 775 sys sys 1064598349 333441
+386/bin/upas/filter - 775 sys sys 1068385808 146055
+386/bin/upas/fs - 775 sys sys 1068385809 334468
 386/bin/upas/isspam - 775 sys sys 1064598349 38
 386/bin/upas/list - 775 sys sys 1064598349 81216
-386/bin/upas/marshal - 775 sys sys 1064598351 129162
+386/bin/upas/marshal - 775 sys sys 1068385809 129234
 386/bin/upas/ml - 775 sys sys 1064598352 119609
 386/bin/upas/mlmgr - 775 sys sys 1064598352 100852
 386/bin/upas/mlowner - 775 sys sys 1064598353 90150
 386/bin/upas/msgcat - 775 sys sys 1064598353 38
 386/bin/upas/msgtok - 775 sys sys 1064598354 75149
-386/bin/upas/nedmail - 775 sys sys 1064598355 149946
+386/bin/upas/nedmail - 775 sys sys 1068385810 149914
 386/bin/upas/pop3 - 775 sys sys 1064598357 256586
 386/bin/upas/qer - 775 sys sys 1064598358 98398
 386/bin/upas/ratfs - 775 sys sys 1064598359 112146
@@ -443,7 +445,7 @@
 386/bin/upas/scanmail - 775 sys sys 1064598361 127497
 386/bin/upas/send - 775 sys sys 1065717666 190471
 386/bin/upas/smtp - 775 sys sys 1064598364 269362
-386/bin/upas/smtpd - 775 sys sys 1064598366 313618
+386/bin/upas/smtpd - 775 sys sys 1068385811 320232
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/testscan - 775 sys sys 1064598366 82161
 386/bin/upas/token - 775 sys sys 1064598367 75930
@@ -480,13 +482,14 @@
 386/bin/vtdump - 775 sys sys 1064598398 161142
 386/bin/wc - 775 sys sys 1064598399 42148
 386/bin/webcookies - 775 sys sys 1064598400 162860
-386/bin/webfs - 775 sys sys 1064598402 351470
+386/bin/webfs - 775 sys sys 1068385812 352221
 386/bin/wikifs - 775 sys sys 1064598403 197449
 386/bin/winwatch - 775 sys sys 1064598404 141476
 386/bin/xd - 775 sys sys 1064598404 62556
 386/bin/xmr - 775 sys sys 1064598405 40384
 386/bin/xms - 775 sys sys 1064598405 40965
 386/bin/yacc - 775 sys sys 1064598406 100603
+386/bin/yuv - 775 sys sys 1068385813 148206
 386/bin/zip - 775 sys sys 1064598407 89069
 386/include - 20000000775 sys sys 953243048 0
 386/include/ape - 20000000775 sys sys 944946041 0
@@ -507,36 +510,36 @@
 386/lib/ape/libnet.a - 664 sys sys 1050868860 16878
 386/lib/ape/libregexp.a - 664 sys sys 1050868861 47234
 386/lib/ape/libv.a - 664 sys sys 1050868861 19540
-386/lib/lib9p.a - 664 sys sys 1064598463 80602
-386/lib/libString.a - 664 sys sys 1056364448 22324
-386/lib/libauth.a - 664 sys sys 1064598464 56258
-386/lib/libauthsrv.a - 664 sys sys 1056364449 33962
-386/lib/libbin.a - 664 sys sys 1045538115 2556
-386/lib/libbio.a - 664 sys sys 1064846011 28408
-386/lib/libc.a - 664 sys sys 1064598466 499658
-386/lib/libcontrol.a - 664 sys sys 1045538117 243448
-386/lib/libdisk.a - 664 sys sys 1048622925 43692
-386/lib/libdraw.a - 664 sys sys 1045538119 372606
-386/lib/libflate.a - 664 sys sys 1045538119 77880
-386/lib/libframe.a - 664 sys sys 1045538119 65832
-386/lib/libgeometry.a - 664 sys sys 1056364452 50806
-386/lib/libhtml.a - 664 sys sys 1045538120 220944
-386/lib/libhttpd.a - 664 sys sys 1048622926 98914
-386/lib/libip.a - 664 sys sys 1066515140 34340
-386/lib/libl.a - 664 sys sys 1056364452 5412
-386/lib/libmach.a - 664 sys sys 1045538123 743792
-386/lib/libmemdraw.a - 664 sys sys 1051110557 292604
-386/lib/libmemlayer.a - 664 sys sys 1051110558 47650
-386/lib/libmp.a - 664 sys sys 1056364453 77924
-386/lib/libndb.a - 664 sys sys 1064598467 52946
-386/lib/libplumb.a - 664 sys sys 1045538125 19000
-386/lib/libregexp.a - 664 sys sys 1064598468 37616
-386/lib/libscribble.a - 664 sys sys 1056364454 108138
-386/lib/libsec.a - 664 sys sys 1068129726 647418
-386/lib/libstdio.a - 664 sys sys 1056364455 128500
-386/lib/libsunrpc.a - 664 sys sys 1050868863 357292
-386/lib/libthread.a - 664 sys sys 1065139515 71512
-386/lib/libventi.a - 664 sys sys 1064598472 98382
+386/lib/lib9p.a - 664 sys sys 1068385833 80602
+386/lib/libString.a - 664 sys sys 1068385833 22324
+386/lib/libauth.a - 664 sys sys 1068385834 56258
+386/lib/libauthsrv.a - 664 sys sys 1068385834 33962
+386/lib/libbin.a - 664 sys sys 1068385834 2556
+386/lib/libbio.a - 664 sys sys 1068385834 28408
+386/lib/libc.a - 664 sys sys 1068385836 506616
+386/lib/libcontrol.a - 664 sys sys 1068385837 243448
+386/lib/libdisk.a - 664 sys sys 1068385837 43692
+386/lib/libdraw.a - 664 sys sys 1068385838 372606
+386/lib/libflate.a - 664 sys sys 1068385839 77880
+386/lib/libframe.a - 664 sys sys 1068385839 65832
+386/lib/libgeometry.a - 664 sys sys 1068385839 50806
+386/lib/libhtml.a - 664 sys sys 1068385840 220944
+386/lib/libhttpd.a - 664 sys sys 1068385841 98914
+386/lib/libip.a - 664 sys sys 1068385841 34340
+386/lib/libl.a - 664 sys sys 1068385841 5412
+386/lib/libmach.a - 664 sys sys 1068385843 743792
+386/lib/libmemdraw.a - 664 sys sys 1068385844 292604
+386/lib/libmemlayer.a - 664 sys sys 1068385845 47650
+386/lib/libmp.a - 664 sys sys 1068385845 77924
+386/lib/libndb.a - 664 sys sys 1068385845 52946
+386/lib/libplumb.a - 664 sys sys 1068385846 19000
+386/lib/libregexp.a - 664 sys sys 1068385846 37616
+386/lib/libscribble.a - 664 sys sys 1068385846 108138
+386/lib/libsec.a - 664 sys sys 1068385848 647418
+386/lib/libstdio.a - 664 sys sys 1068385849 128500
+386/lib/libsunrpc.a - 664 sys sys 1068385850 357292
+386/lib/libthread.a - 664 sys sys 1068385850 71406
+386/lib/libventi.a - 664 sys sys 1068385851 98382
 386/mbr - 775 sys sys 1022125974 407
 386/mkfile - 664 sys sys 948141303 46
 386/pbs - 775 sys sys 1022125973 494
@@ -2975,7 +2978,7 @@ rc/bin/dosmnt - 775 sys sys 958526437 285
 rc/bin/eject - 775 sys sys 945617207 123
 rc/bin/fax - 775 sys sys 1015701359 2390
 rc/bin/fedex - 775 sys sys 1060187356 1244
-rc/bin/fshalt - 775 sys sys 1068087338 1092
+rc/bin/fshalt - 775 sys sys 1068425226 1092
 rc/bin/homespool - 775 sys sys 945617207 339
 rc/bin/ipconf - 20000000775 sys sys 1058791152 0
 rc/bin/ipconf/inside - 775 sys sys 1058790955 427
@@ -3399,7 +3402,7 @@ sys/include/stdio.h - 664 sys sys 1055700381 4199
 sys/include/sunrpc.h - 664 sys sys 1046367129 7219
 sys/include/thread.h - 664 sys sys 1045504289 3562
 sys/include/tos.h - 664 sys sys 1067718947 562
-sys/include/trace.h - 664 sys sys 1067722708 576
+sys/include/trace.h - 664 sys sys 1068393680 585
 sys/include/venti.h - 664 sys sys 1045504293 6956
 sys/lib - 20000000775 sys sys 1018580948 0
 sys/lib/acid - 20000000775 sys sys 1016926088 0
@@ -4852,7 +4855,7 @@ sys/man/3/segment - 664 sys sys 1017423721 2378
 sys/man/3/srv - 664 sys sys 958419690 1470
 sys/man/3/ssl - 664 sys sys 1018386776 3413
 sys/man/3/tls - 664 sys sys 1045501496 7018
-sys/man/3/uart - 664 sys sys 1064028248 1398
+sys/man/3/uart - 664 sys sys 1068393771 1651
 sys/man/3/usb - 664 sys sys 1063855746 6727
 sys/man/3/vga - 664 sys sys 1020356225 4827
 sys/man/4 - 20000000775 sys sys 1018581459 0
@@ -5090,7 +5093,7 @@ sys/src/9/bitsy/devflash.c - 664 sys sys 1018386999 16832
 sys/src/9/bitsy/devpcmcia.c - 664 sys sys 1037029005 12962
 sys/src/9/bitsy/devpenmouse.c - 664 sys sys 1067722592 9296
 sys/src/9/bitsy/devuda1341.c - 664 sys sys 1037029011 30326
-sys/src/9/bitsy/devµc.c - 664 sys sys 1037029014 8141
+sys/src/9/bitsy/devµc.c - 664 sys sys 1068393562 8125
 sys/src/9/bitsy/etherif.h - 664 sys sys 1045501788 913
 sys/src/9/bitsy/etherwavelan.c - 664 sys sys 1037029016 869
 sys/src/9/bitsy/fns.h - 664 sys sys 1067722591 3366
@@ -5216,7 +5219,7 @@ sys/src/9/pc/apmjump.s - 664 sys sys 1032058947 1527
 sys/src/9/pc/archmp.c - 664 sys sys 1067722683 2323
 sys/src/9/pc/audio.h - 664 sys sys 1015014513 343
 sys/src/9/pc/cga.c - 664 sys sys 1015014513 1843
-sys/src/9/pc/dat.h - 664 sys sys 1067722637 6119
+sys/src/9/pc/dat.h - 664 sys sys 1068393384 6124
 sys/src/9/pc/devarch.c - 664 sys sys 1055689884 17647
 sys/src/9/pc/devether.c - 664 sys sys 1048644042 10178
 sys/src/9/pc/devfloppy.c - 664 sys sys 1055689885 20024
@@ -5255,7 +5258,7 @@ sys/src/9/pc/ethersink.c - 664 sys sys 1048644103 1076
 sys/src/9/pc/ethersmc.c - 664 sys sys 1015014518 15079
 sys/src/9/pc/etherwavelan.c - 664 sys sys 1026847642 3722
 sys/src/9/pc/floppy.h - 664 sys sys 1055700609 3835
-sys/src/9/pc/fns.h - 664 sys sys 1067722685 4271
+sys/src/9/pc/fns.h - 664 sys sys 1068393346 4299
 sys/src/9/pc/hcwAMC.h - 664 sys sys 1026860163 166004
 sys/src/9/pc/i8253.c - 664 sys sys 1067722684 6217
 sys/src/9/pc/i8259.c - 664 sys sys 1015014519 4423
@@ -5263,7 +5266,7 @@ sys/src/9/pc/init9.c - 664 sys sys 1040002518 94
 sys/src/9/pc/initcode.s - 664 sys sys 1015014519 282
 sys/src/9/pc/io.h - 664 sys sys 1067722633 7991
 sys/src/9/pc/kbd.c - 664 sys sys 1039753498 9134
-sys/src/9/pc/l.s - 664 sys sys 1067722634 23586
+sys/src/9/pc/l.s - 664 sys sys 1068394843 23295
 sys/src/9/pc/main.c - 664 sys sys 1067722634 14685
 sys/src/9/pc/mem.h - 664 sys sys 1018553448 4573
 sys/src/9/pc/memory.c - 664 sys sys 1032303986 12994
@@ -5282,7 +5285,7 @@ sys/src/9/pc/pcf - 664 sys sys 1067722637 1431
 sys/src/9/pc/pcf.c - 664 sys sys 1058659039 5110
 sys/src/9/pc/pcfl - 664 sys sys 1042004821 1563
 sys/src/9/pc/pcflop - 664 sys sys 1067722894 1383
-sys/src/9/pc/pci.c - 664 sys sys 1065815722 23867
+sys/src/9/pc/pci.c - 664 sys sys 1068393407 24094
 sys/src/9/pc/pcmciamodem.c - 664 sys sys 1048635123 1545
 sys/src/9/pc/piix4smbus.c - 664 sys sys 1067722684 5273
 sys/src/9/pc/plan9l.s - 664 sys sys 1015014521 910
@@ -5356,7 +5359,7 @@ sys/src/9/port/devmouse.c - 664 sys sys 1067722758 12203
 sys/src/9/port/devnmouse.c - 664 sys sys 1036812999 3738
 sys/src/9/port/devpipe.c - 664 sys sys 1032640439 5825
 sys/src/9/port/devpnp.c - 664 sys sys 1055688361 13021
-sys/src/9/port/devproc.c - 664 sys sys 1068237926 28403
+sys/src/9/port/devproc.c - 664 sys sys 1068393158 28387
 sys/src/9/port/devrealtime.c - 664 sys sys 1055688366 16209
 sys/src/9/port/devroot.c - 664 sys sys 1067722764 4254
 sys/src/9/port/devsd.c - 664 sys sys 1055688396 28669
@@ -5367,7 +5370,7 @@ sys/src/9/port/devssl.c - 664 sys sys 1045063590 26100
 sys/src/9/port/devtinyfs.c - 664 sys sys 1015278339 15347
 sys/src/9/port/devtls.c - 664 sys sys 1066737478 45222
 sys/src/9/port/devuart.c - 664 sys sys 1067722718 11683
-sys/src/9/port/edf.c - 664 sys sys 1068215525 12348
+sys/src/9/port/edf.c - 664 sys sys 1068393229 12343
 sys/src/9/port/edf.h - 664 sys sys 1067722760 1124
 sys/src/9/port/error.h - 664 sys sys 1055700517 2630
 sys/src/9/port/fault.c - 664 sys sys 1067722722 6628
@@ -5399,7 +5402,7 @@ sys/src/9/port/portdat.h - 664 sys sys 1067722763 22621
 sys/src/9/port/portfns.h - 664 sys sys 1068215525 11376
 sys/src/9/port/portmkfile - 664 sys sys 1067722766 2098
 sys/src/9/port/print.c - 664 sys sys 1014931178 227
-sys/src/9/port/proc.c - 664 sys sys 1068215525 24867
+sys/src/9/port/proc.c - 664 sys sys 1068393121 24882
 sys/src/9/port/qio.c - 664 sys sys 1067953182 23406
 sys/src/9/port/qlock.c - 664 sys sys 1067722765 3196
 sys/src/9/port/rdb.c - 664 sys sys 1018721202 1698
@@ -9952,7 +9955,7 @@ sys/src/cmd/rdbfs.c - 664 sys sys 1049426950 7952
 sys/src/cmd/read.c - 664 sys sys 1022047660 1278
 sys/src/cmd/replica - 20000000775 sys sys 1018321113 0
 sys/src/cmd/replica/all.h - 664 sys sys 1018323474 1181
-sys/src/cmd/replica/applychanges.c - 664 sys sys 1032060505 5858
+sys/src/cmd/replica/applychanges.c - 664 sys sys 1068417165 6123
 sys/src/cmd/replica/applylog.c - 664 sys sys 1053210813 17189
 sys/src/cmd/replica/avl.c - 664 sys sys 1018321111 6202
 sys/src/cmd/replica/compactdb.c - 664 sys sys 1018323475 652
@@ -10852,11 +10855,11 @@ sys/src/cmd/vt/mkfile - 664 sys sys 944961620 159
 sys/src/cmd/vt/termcap - 664 sys sys 944961620 278
 sys/src/cmd/vt/vt.c - 664 sys sys 1014926857 16841
 sys/src/cmd/wc.c - 664 sys sys 984717764 12652
-sys/src/cmd/webcookies.c - 664 sys sys 1042940803 23411
+sys/src/cmd/webcookies.c - 664 sys sys 1068411571 23687
 sys/src/cmd/webfs - 20000000775 sys sys 1015015823 0
 sys/src/cmd/webfs/buf.c - 664 sys sys 1032665987 1198
 sys/src/cmd/webfs/client.c - 664 sys sys 1045503603 6504
-sys/src/cmd/webfs/cookies.c - 664 sys sys 1045503603 21597
+sys/src/cmd/webfs/cookies.c - 664 sys sys 1068412965 21874
 sys/src/cmd/webfs/dat.h - 664 sys sys 1045503604 1600
 sys/src/cmd/webfs/fns.h - 664 sys sys 1032665987 1453
 sys/src/cmd/webfs/fs.c - 664 sys sys 1036000101 10942
@@ -10867,6 +10870,7 @@ sys/src/cmd/webfs/mkfile - 664 sys sys 1032665986 340
 sys/src/cmd/webfs/plumb.c - 664 sys sys 1015090008 2761
 sys/src/cmd/webfs/url.c - 664 sys sys 1019240175 24238
 sys/src/cmd/webfs/util.c - 664 sys sys 1015015823 1211
+sys/src/cmd/webfsget.c - 664 sys sys 1068413017 1595
 sys/src/cmd/wikifs - 20000000775 sys sys 1018211094 0
 sys/src/cmd/wikifs/fs.c - 664 sys sys 1019678648 15353
 sys/src/cmd/wikifs/io.c - 664 sys sys 1018387004 11469

+ 87 - 0
dist/replica/plan9.log

@@ -14202,3 +14202,90 @@
 1068336140 0 c sys/src/9/pc/sdata.c - 664 sys sys 1068336178 50325
 1068350543 0 c sys/src/cmd/upas/fs/fs.c - 664 sys sys 1068350246 27381
 1068350543 1 c sys/src/cmd/upas/fs/mbox.c - 664 sys sys 1068350247 28726
+1068386526 0 c 386/9loaddebug - 775 sys sys 1068385814 262014
+1068386526 1 c 386/9loadlitedebug - 775 sys sys 1068385814 184444
+1068386526 2 c 386/9pc - 775 sys sys 1068385819 1828006
+1068386526 3 c 386/9pccpu - 775 sys sys 1068385822 1471511
+1068386526 4 c 386/9pcdisk - 775 sys sys 1068385827 2037837
+1068386526 5 c 386/9pcf - 775 sys sys 1068385833 2363147
+1068386526 6 c 386/bin/8a - 775 sys sys 1068385789 113237
+1068386526 7 c 386/bin/8c - 775 sys sys 1068385790 299023
+1068386526 8 c 386/bin/acme - 775 sys sys 1068385791 417693
+1068386526 9 c 386/bin/cpu - 775 sys sys 1068385797 138633
+1068386526 10 c 386/bin/du - 775 sys sys 1068385799 69180
+1068386526 11 c 386/bin/hget - 775 sys sys 1068385800 222506
+1068386526 12 c 386/bin/png - 775 sys sys 1068385804 158641
+1068386526 13 c 386/bin/gif - 775 sys sys 1068385799 156607
+1068386526 14 c 386/bin/jpg - 775 sys sys 1068385803 173300
+1068386526 15 c 386/bin/ppm - 775 sys sys 1068385805 147658
+1068386526 16 c 386/bin/prof - 775 sys sys 1068385805 106495
+1068386526 17 c 386/bin/pwd - 775 sys sys 1068385805 37108
+1068386526 18 c 386/bin/snoopy - 775 sys sys 1068385806 153816
+1068386526 19 c 386/bin/webfs - 775 sys sys 1068385812 352221
+1068386526 20 c 386/bin/auth/factotum - 775 sys sys 1068385793 309877
+1068386526 21 c 386/bin/auth/secstore - 775 sys sys 1068385793 188789
+1068386526 22 c 386/bin/auth/secuser - 775 sys sys 1068385794 151909
+1068386526 23 c 386/bin/aux/nfsserver - 775 sys sys 1068385795 171155
+1068386526 24 c 386/bin/aux/olefs - 775 sys sys 1068385795 145454
+1068386526 25 c 386/bin/aux/pcnfsd - 775 sys sys 1068385796 126851
+1068386526 26 c 386/bin/aux/portmapper - 775 sys sys 1068385797 125739
+1068386526 27 c 386/bin/dial/at - 775 sys sys 1068385868 58987
+1068386526 28 c 386/bin/dial/drain - 775 sys sys 1068385869 4120
+1068386526 29 c 386/bin/dial/expect - 775 sys sys 1068385869 58283
+1068386526 30 c 386/bin/dial/pass - 775 sys sys 1068385869 39019
+1068386526 31 a 386/bin/ip/httpd/netlib_find - 775 sys sys 1068385801 114179
+1068386526 32 a 386/bin/ip/httpd/netlib_history - 775 sys sys 1068385801 112809
+1068386526 33 c 386/bin/ip/httpd/webls - 775 sys sys 1068385802 129726
+1068386526 34 c 386/bin/ip/ppp - 775 sys sys 1068385803 217036
+1068386526 35 c 386/bin/togif - 775 sys sys 1068385807 189563
+1068386526 36 c 386/bin/upas/filter - 775 sys sys 1068385808 146055
+1068386526 37 c 386/bin/upas/fs - 775 sys sys 1068385809 334468
+1068386526 38 c 386/bin/upas/marshal - 775 sys sys 1068385809 129234
+1068386526 39 c 386/bin/upas/nedmail - 775 sys sys 1068385810 149914
+1068386526 40 c 386/bin/upas/smtpd - 775 sys sys 1068385811 320232
+1068386526 41 a 386/bin/yuv - 775 sys sys 1068385813 148206
+1068386526 42 c 386/lib/lib9p.a - 664 sys sys 1068385833 80602
+1068386526 43 c 386/lib/libString.a - 664 sys sys 1068385833 22324
+1068386526 44 c 386/lib/libauth.a - 664 sys sys 1068385834 56258
+1068386526 45 c 386/lib/libauthsrv.a - 664 sys sys 1068385834 33962
+1068386526 46 c 386/lib/libbin.a - 664 sys sys 1068385834 2556
+1068386526 47 c 386/lib/libbio.a - 664 sys sys 1068385834 28408
+1068386526 48 c 386/lib/libc.a - 664 sys sys 1068385836 506616
+1068386526 49 c 386/lib/libcontrol.a - 664 sys sys 1068385837 243448
+1068386526 50 c 386/lib/libdisk.a - 664 sys sys 1068385837 43692
+1068386526 51 c 386/lib/libdraw.a - 664 sys sys 1068385838 372606
+1068386526 52 c 386/lib/libflate.a - 664 sys sys 1068385839 77880
+1068386526 53 c 386/lib/libframe.a - 664 sys sys 1068385839 65832
+1068386526 54 c 386/lib/libgeometry.a - 664 sys sys 1068385839 50806
+1068386526 55 c 386/lib/libhtml.a - 664 sys sys 1068385840 220944
+1068386526 56 c 386/lib/libhttpd.a - 664 sys sys 1068385841 98914
+1068386526 57 c 386/lib/libip.a - 664 sys sys 1068385841 34340
+1068386526 58 c 386/lib/libl.a - 664 sys sys 1068385841 5412
+1068386526 59 c 386/lib/libmach.a - 664 sys sys 1068385843 743792
+1068386526 60 c 386/lib/libmemdraw.a - 664 sys sys 1068385844 292604
+1068386526 61 c 386/lib/libmemlayer.a - 664 sys sys 1068385845 47650
+1068386526 62 c 386/lib/libmp.a - 664 sys sys 1068385845 77924
+1068386526 63 c 386/lib/libndb.a - 664 sys sys 1068385845 52946
+1068386526 64 c 386/lib/libplumb.a - 664 sys sys 1068385846 19000
+1068386526 65 c 386/lib/libregexp.a - 664 sys sys 1068385846 37616
+1068386526 66 c 386/lib/libscribble.a - 664 sys sys 1068385846 108138
+1068386526 67 c 386/lib/libsec.a - 664 sys sys 1068385848 647418
+1068386526 68 c 386/lib/libstdio.a - 664 sys sys 1068385849 128500
+1068386526 69 c 386/lib/libsunrpc.a - 664 sys sys 1068385850 357292
+1068386526 70 c 386/lib/libthread.a - 664 sys sys 1068385850 71406
+1068386526 71 c 386/lib/libventi.a - 664 sys sys 1068385851 98382
+1068393728 0 c sys/include/trace.h - 664 sys sys 1068393680 585
+1068393728 1 c sys/man/3/uart - 664 sys sys 1068393771 1651
+1068393728 2 c sys/src/9/bitsy/devµc.c - 664 sys sys 1068393562 8125
+1068393728 3 c sys/src/9/pc/dat.h - 664 sys sys 1068393384 6124
+1068393728 4 c sys/src/9/pc/fns.h - 664 sys sys 1068393346 4299
+1068393728 5 c sys/src/9/pc/pci.c - 664 sys sys 1068393407 24094
+1068393728 6 c sys/src/9/port/devproc.c - 664 sys sys 1068393158 28387
+1068393728 7 c sys/src/9/port/edf.c - 664 sys sys 1068393229 12343
+1068393728 8 c sys/src/9/port/proc.c - 664 sys sys 1068393121 24882
+1068395528 0 c sys/src/9/pc/l.s - 664 sys sys 1068394843 23295
+1068411732 0 c sys/src/cmd/webcookies.c - 664 sys sys 1068411571 23687
+1068413532 0 c sys/src/cmd/webfs/cookies.c - 664 sys sys 1068412965 21874
+1068413532 1 a sys/src/cmd/webfsget.c - 664 sys sys 1068413017 1595
+1068417133 0 c sys/src/cmd/replica/applychanges.c - 664 sys sys 1068417165 6123
+1068426169 0 c rc/bin/fshalt - 775 sys sys 1068425226 1092

+ 2 - 2
rc/bin/fshalt

@@ -14,7 +14,7 @@ for(i in $f){
 		echo fsys all sync
 		if(! dial/expect -qt 120 ': ')
 			echo -n 'not synced...' > /dev/cons
-	} < $f >> $f
+	} < $i >> $i
 }
 
 echo -n venti...
@@ -49,7 +49,7 @@ for(i in $f){
 		echo fsys all halt
 		if(! expect -qt 120 ': ')
 			echo -n 'not halted...' > /dev/cons
-	} < $f >> $f
+	} < $i >> $i
 }
 
 for (i in $k){

+ 1 - 0
sys/include/trace.h

@@ -11,6 +11,7 @@ typedef enum Tevent {
 	SExpel,		/* Edf expel */
 	SDead,		/* proc dies */
 	SUser,		/* user event */
+	Nevent,
 } Tevent;
 
 typedef struct Traceevent	Traceevent;

+ 13 - 3
sys/man/3/uart

@@ -60,10 +60,20 @@ is non-zero;
 else clear it.
 .TP
 .BI i n
-Enable input FIFO if
+Enable/disable the FIFOs.
+If
 .I n
-is non-zero;
-else disable.
+is zero the FIFOs are disabled;
+otherwise
+.I n
+is taken as a trigger level for the FIFOs.
+The trigger levels supported are device dependant,
+but usually include 1, 4 and 8.
+An unrecognised,
+but non-zero,
+value of
+.I n
+causes the maximum-supported trigger level to be set.
 .TP
 .BI p c
 Set parity to odd if

+ 1 - 1
sys/src/9/bitsy/devµc.c

@@ -288,7 +288,7 @@ static Chan*
 µcopen(Chan* c, int omode)
 {
 	omode = openmode(omode);
-	if(strcmp(up->user, eve)!=0)
+	if(!iseve())
 		error(Eperm);
 	return devopen(c, omode, µcdir, nelem(µcdir), devgen);
 }

+ 4 - 4
sys/src/9/pc/dat.h

@@ -288,8 +288,8 @@ typedef struct {
 
 struct DevConf
 {
-	ulong	intnum;	/* interrupt number */
-	char	*type;		/* card type, malloced */
-	int	nports;		/* Number of ports */
-	port_t	*ports;		/* The ports themselves */
+	ulong	intnum;			/* interrupt number */
+	char	*type;			/* card type, malloced */
+	int	nports;			/* Number of ports */
+	port_t	*ports;			/* The ports themselves */
 };

+ 5 - 4
sys/src/9/pc/fns.h

@@ -95,8 +95,8 @@ void	outs(int, ushort);
 void	outss(int, void*, int);
 void	outl(int, ulong);
 void	outsl(int, void*, int);
-int	pciscan(int, Pcidev **);
-ulong	pcibarsize(Pcidev *, int);
+int	pciscan(int, Pcidev**);
+ulong	pcibarsize(Pcidev*, int);
 int	pcicfgr8(Pcidev*, int);
 int	pcicfgr16(Pcidev*, int);
 int	pcicfgr32(Pcidev*, int);
@@ -104,12 +104,14 @@ void	pcicfgw8(Pcidev*, int, int);
 void	pcicfgw16(Pcidev*, int, int);
 void	pcicfgw32(Pcidev*, int, int);
 void	pciclrbme(Pcidev*);
+void	pciclrioe(Pcidev*);
 void	pcihinv(Pcidev*);
-uchar	pciipin(Pcidev *, uchar);
+uchar	pciipin(Pcidev*, uchar);
 Pcidev* pcimatch(Pcidev*, int, int);
 Pcidev* pcimatchtbdf(int);
 void	pcireset(void);
 void	pcisetbme(Pcidev*);
+void	pcisetioe(Pcidev*);
 void	pcmcisread(PCMslot*);
 int	pcmcistuple(int, int, int, void*, int);
 PCMmap*	pcmmap(int, ulong, int, int);
@@ -128,7 +130,6 @@ void	rdmsr(int, vlong*);
 void	screeninit(void);
 int	screenprint(char*, ...);			/* debugging */
 void	(*screenputs)(char*, int);
-void	sfence(void);
 void	syncclock(void);
 void	touser(void*);
 void	trapenable(int, void (*)(Ureg*, void*), void*, char*);

+ 89 - 113
sys/src/9/pc/l.s

@@ -10,11 +10,10 @@
 #define DELAY		BYTE $0xEB; BYTE $0x00	/* JMP .+2 */
 #define CPUID		BYTE $0x0F; BYTE $0xA2	/* CPUID, argument in AX */
 #define WRMSR		BYTE $0x0F; BYTE $0x30	/* WRMSR, argument in AX/DX (lo/hi) */
-#define RDMSR		BYTE $0x0F; BYTE $0x32	/* RDMSR, result in AX/DX (lo/hi) */
 #define RDTSC 		BYTE $0x0F; BYTE $0x31	/* RDTSC, result in AX/DX (lo/hi) */
+#define RDMSR		BYTE $0x0F; BYTE $0x32	/* RDMSR, result in AX/DX (lo/hi) */
 #define WBINVD		BYTE $0x0F; BYTE $0x09
 #define HLT		BYTE $0xF4
-#define SFENCE		BYTE $0x0F; BYTE $0xAE; BYTE $0xF8
 
 /*
  * Macros for calculating offsets within the page directory base
@@ -29,7 +28,7 @@
  * 9load currently sets up the mmu, however the first 16MB of memory is identity
  * mapped, so behave as if the mmu was not setup
  */
-TEXT _start0x80100020(SB),$0
+TEXT _start0x80100020(SB), $0
 	MOVL	$_start0x00100020(SB), AX
 	ANDL	$~KZERO, AX
 	JMP*	AX
@@ -44,7 +43,7 @@ TEXT _start0x80100020(SB),$0
  * identity mapping is removed once the MMU is going and the JMP has been made
  * to virtual memory.
  */
-TEXT _start0x00100020(SB),$0
+TEXT _start0x00100020(SB), $0
 	CLI					/* make sure interrupts are off */
 
 	/* set up the gdt so we have sane plan 9 style gdts. */
@@ -52,24 +51,52 @@ TEXT _start0x00100020(SB),$0
 	ANDL	$~KZERO, AX
 	MOVL	(AX), GDTR
 	MOVW	$1, AX
-	MOVW	AX,MSW
+	MOVW	AX, MSW
 
 	/* clear prefetch queue (weird code to avoid optimizations) */
 	DELAY
 
 	/* set segs to something sane (avoid traps later) */
-	MOVW	$(1<<3),AX
-	MOVW	AX,DS
-	MOVW	AX,SS
-	MOVW	AX,ES
-	MOVW	AX,FS
-	MOVW	AX,GS
+	MOVW	$(1<<3), AX
+	MOVW	AX, DS
+	MOVW	AX, SS
+	MOVW	AX, ES
+	MOVW	AX, FS
+	MOVW	AX, GS
 
 /*	JMP	$(2<<3):$mode32bit(SB) /**/
 	 BYTE	$0xEA
 	 LONG	$mode32bit-KZERO(SB)
 	 WORD	$(2<<3)
-TEXT	mode32bit(SB),$0
+
+/*
+ *  gdt to get us to 32-bit/segmented/unpaged mode
+ */
+TEXT tgdt(SB), $0
+
+	/* null descriptor */
+	LONG	$0
+	LONG	$0
+
+	/* data segment descriptor for 4 gigabytes (PL 0) */
+	LONG	$(0xFFFF)
+	LONG	$(SEGG|SEGB|(0xF<<16)|SEGP|SEGPL(0)|SEGDATA|SEGW)
+
+	/* exec segment descriptor for 4 gigabytes (PL 0) */
+	LONG	$(0xFFFF)
+	LONG	$(SEGG|SEGD|(0xF<<16)|SEGP|SEGPL(0)|SEGEXEC|SEGR)
+
+/*
+ *  pointer to initial gdt
+ *  Note the -KZERO which puts the physical address in the gdtptr. 
+ *  that's needed as we start executing in physical addresses. 
+ */
+TEXT tgdtptr(SB), $0
+
+	WORD	$(3*8)
+	LONG	$tgdt-KZERO(SB)
+
+TEXT mode32bit(SB), $0
 	/* At this point, the GDT setup is done. */
 
 	MOVL	$PADDR(CPU0PDB), DI		/* clear 4 pages for the tables etc. */
@@ -119,33 +146,6 @@ _setpte:
 	MOVL	DX, CR0				/* turn on paging */
 	JMP*	AX				/* jump to the virtual nirvana */
 
-/*
- *  gdt to get us to 32-bit/segmented/unpaged mode
- */
-TEXT	tgdt(SB),$0
-
-	/* null descriptor */
-	LONG	$0
-	LONG	$0
-
-	/* data segment descriptor for 4 gigabytes (PL 0) */
-	LONG	$(0xFFFF)
-	LONG	$(SEGG|SEGB|(0xF<<16)|SEGP|SEGPL(0)|SEGDATA|SEGW)
-
-	/* exec segment descriptor for 4 gigabytes (PL 0) */
-	LONG	$(0xFFFF)
-	LONG	$(SEGG|SEGD|(0xF<<16)|SEGP|SEGPL(0)|SEGEXEC|SEGR)
-
-/*
- *  pointer to initial gdt
- *  Note the -KZERO which puts the physical address in the gdtptr. 
- *  that's needed as we start executing in physical addresses. 
- */
-TEXT	tgdtptr(SB),$0
-
-	WORD	$(3*8)
-	LONG	$tgdt-KZERO(SB)
-
 /*
  * Basic machine environment set, can clear BSS and create a stack.
  * The stack starts at the top of the page containing the Mach structure.
@@ -248,7 +248,7 @@ TEXT outb(SB), $0
 	OUTB
 	RET
 
-TEXT outsb(SB),$0
+TEXT outsb(SB), $0
 	MOVL	port+0(FP), DX
 	MOVL	address+4(FP), SI
 	MOVL	count+8(FP), CX
@@ -332,29 +332,15 @@ TEXT putcr4(SB), $0
 
 TEXT cycles(SB), $0				/* time stamp counter; cycles since power up */
 	RDTSC
-	MOVL	vlong+0(FP), CX	/* &vlong */
+	MOVL	vlong+0(FP), CX			/* &vlong */
 	MOVL	AX, 0(CX)			/* lo */
 	MOVL	DX, 4(CX)			/* hi */
 	RET
 
-TEXT rd0(SB), $0
-	MOVL	vlong+0(FP), CX
-	MOVL	$0, 0(CX)
-	MOVL	$0, 4(CX)
-	RET
-
-TEXT rdmsr10(SB), $0
-	MOVL	$0x10, CX
-	RDMSR
-	MOVL	vlong+0(FP), CX
-	MOVL	AX, 0(CX)
-	MOVL	DX, 4(CX)
-	RET
-
 TEXT rdmsr(SB), $0				/* model-specific register */
 	MOVL	index+0(FP), CX
 	RDMSR
-	MOVL	vlong+4(FP), CX	/* &vlong */
+	MOVL	vlong+4(FP), CX			/* &vlong */
 	MOVL	AX, 0(CX)			/* lo */
 	MOVL	DX, 4(CX)			/* hi */
 	RET
@@ -370,10 +356,6 @@ TEXT wbinvd(SB), $0
 	WBINVD
 	RET
 
-TEXT sfence(SB), $0
-	SFENCE
-	RET
-
 /*
  * Try to determine the CPU type which requires fiddling with EFLAGS.
  * If the Id bit can be toggled then the CPUID instruciton can be used
@@ -515,7 +497,7 @@ TEXT splx(SB), $0
 	MOVL	$(MACHADDR+0x04), AX 		/* save PC in m->splpc */
 	MOVL	(SP), BX
 	MOVL	BX, (AX)
-	/* fall through */
+	/*FALLTHROUGH*/
 
 TEXT splxpc(SB), $0				/* for iunlock */
 	MOVL	s+0(FP), AX
@@ -541,21 +523,23 @@ TEXT tas(SB), $0
 	XCHGL	AX, (BX)			/* lock->key */
 	RET
 
-TEXT	_xinc(SB),$0	/* void _xinc(long *); */
-	MOVL	l+0(FP),AX
-	LOCK
-	INCL	0(AX)
+TEXT _xinc(SB), $0				/* void _xinc(long*); */
+	MOVL	l+0(FP), AX
+	LOCK;	INCL 0(AX)
 	RET
 
-TEXT	_xdec(SB),$0	/* long _xdec(long *); */
-	MOVL	l+0(FP),AX
-	LOCK
-	DECL	0(AX)
-	JZ	iszero
-	MOVL	$1, AX
+TEXT _xdec(SB), $0				/* long _xdec(long*); */
+	MOVL	l+0(FP), BX
+	XORL	AX, AX
+	LOCK;	DECL 0(BX)
+	JLT	_xdeclt
+	JGT	_xdecgt
 	RET
-iszero:
-	MOVL	$0, AX
+_xdecgt:
+	INCL	AX
+	RET
+_xdeclt:
+	DECL	AX
 	RET
 
 TEXT wbflush(SB), $0
@@ -569,54 +553,46 @@ TEXT xchgw(SB), $0
 	RET
 
 /*
-TEXT xchgl(SB), $0
-	MOVL	v+4(FP), AX
-	MOVL	p+0(FP), BX
-	XCHGL	AX, (BX)
-	RET
+ * mul64fract(uvlong* r, uvlong a, uvlong b)
+ *
+ * multiply uvlong a by uvlong b and return a uvlong result.
+ *
+ * One of the input arguments is a uvlong integer,
+ * the other represents a fractional number with
+ * the integer portion in the most significant word and
+ * the fractional portion in the least significant word.
+ *
+ * Example: mul64fract(&r, 2ULL, 3ULL << 31) returns 1ULL
+ *
+ * The uvlong integer result is returned through r
+ *
+ *	ignored		r0 = lo(a0*b0)
+ *	lsw of result	r1 = hi(a0*b0) +lo(a0*b1) +lo(a1*b0)
+ *	msw of result	r2 = 		hi(a0*b1) +hi(a1*b0) +lo(a1*b1)
+ *	ignored		r3 = hi(a1*b1)
  */
-
-TEXT	mul64fract(SB), $0
-	/* mul64fract(uvlong*r, uvlong a, uvlong b)
-	 *
-	 * multiply uvlong a by uvlong b and return a uvlong result.
-	 *
-	 * One of the input arguments is a uvlong integer,
-	 * the other represents a fractional number with
-	 * the integer portion in the most significant word and
-	 * the fractional portion in the least significant word.
-	 *
-	 * Example: mul64fract(&r, 2ULL, 3ULL << 31) returns 1ULL
-	 *
-	 * The uvlong integer result is returned through r
-	 *
-	 *	ignored		r0 = lo(a0*b0)
-	 *	lsw of result	r1 = hi(a0*b0) +lo(a0*b1) +	lo(a1*b0)
-	 *	msw of result	r2 = 		hi(a0*b1) +	hi(a1*b0) +	lo(a1*b1)
-	 *	ignored		r3 =						hi(a1*b1)
-	 */
-
+TEXT mul64fract(SB), $0
 	MOVL	r+0(FP), CX
-	XORL	BX, BX		/* BX = 0 */
+	XORL	BX, BX				/* BX = 0 */
 
-	MOVL	a+8(FP),AX
-	MULL	b+16(FP)	/* a1*b1 */
-	MOVL	AX, 4(CX)	/* r2 = lo(a1*b1) */
+	MOVL	a+8(FP), AX
+	MULL	b+16(FP)			/* a1*b1 */
+	MOVL	AX, 4(CX)			/* r2 = lo(a1*b1) */
 
 	MOVL	a+8(FP), AX
-	MULL	b+12(FP)	/* a1*b0 */
-	MOVL	AX, 0(CX)	/* r1 = lo(a1*b0) */
-	ADDL	DX, 4(CX)	/* r2 += hi(a1*b0) */
+	MULL	b+12(FP)			/* a1*b0 */
+	MOVL	AX, 0(CX)			/* r1 = lo(a1*b0) */
+	ADDL	DX, 4(CX)			/* r2 += hi(a1*b0) */
 
 	MOVL	a+4(FP), AX
-	MULL	b+16(FP)	/* a0*b1 */
-	ADDL	AX, 0(CX)	/* r1 += lo(a0*b1) */
-	ADCL	DX, 4(CX)	/* r2 += hi(a0*b1) + carry */
+	MULL	b+16(FP)			/* a0*b1 */
+	ADDL	AX, 0(CX)			/* r1 += lo(a0*b1) */
+	ADCL	DX, 4(CX)			/* r2 += hi(a0*b1) + carry */
 
 	MOVL	a+4(FP), AX
-	MULL	b+12(FP)	/* a0*b0 */
-	ADDL	DX, 0(CX)	/* r1 += hi(a0*b0) */
-	ADCL	BX, 4(CX)	/* r2 += carry */
+	MULL	b+12(FP)			/* a0*b0 */
+	ADDL	DX, 0(CX)			/* r1 += hi(a0*b0) */
+	ADCL	BX, 4(CX)			/* r2 += carry */
 	RET
 
 /*
@@ -694,7 +670,7 @@ TEXT forkret(SB), $0
 	POPL	FS
 	POPL	ES
 	POPL	DS
-	ADDL	$8, SP				/* pop error code and trap type */
+	ADDL	$8, SP			/* pop error code and trap type */
 	IRETL
 
 TEXT vectortable(SB), $0

+ 20 - 0
sys/src/9/pc/pci.c

@@ -1173,6 +1173,26 @@ pcireset(void)
 	}
 }
 
+void
+pcisetioe(Pcidev* p)
+{
+	int pcr;
+
+	pcr = pcicfgr16(p, PciPCR);
+	pcr |= IOen;
+	pcicfgw16(p, PciPCR, pcr);
+}
+
+void
+pciclrioe(Pcidev* p)
+{
+	int pcr;
+
+	pcr = pcicfgr16(p, PciPCR);
+	pcr &= ~IOen;
+	pcicfgw16(p, PciPCR, pcr);
+}
+
 void
 pcisetbme(Pcidev* p)
 {

+ 3 - 3
sys/src/9/port/devproc.c

@@ -155,7 +155,7 @@ static Lock tlock;
 static int topens;
 static int tproduced, tconsumed;
 static Rendez teventr;
-void	(*proctrace)(Proc*, int, vlong); 
+void (*proctrace)(Proc*, int, vlong);
 
 extern int unfair;
 
@@ -265,7 +265,7 @@ procgen(Chan *c, char *name, Dirtab *tab, int, int s, Dir *dp)
 }
 
 static void
-_proctrace(Proc*p, Tevent etype, vlong ts)
+_proctrace(Proc* p, Tevent etype, vlong ts)
 {
 	Traceevent *te;
 
@@ -1388,7 +1388,7 @@ procctlreq(Proc *p, char *va, int n)
 		procwired(p, atoi(cb->f[1]));
 		break;
 	case CMtrace:
-		p->trace = (p->trace + 1) & 1;
+		p->trace ^= 1;
 		break;
 	/* real time */
 	case CMperiod:

+ 5 - 5
sys/src/9/port/edf.c

@@ -15,7 +15,7 @@ int	edfprint = 0;
 static vlong	now;
 extern ulong	delayedscheds;
 extern Schedq	runq[Nrq];
-extern int		nrdy;
+extern int	nrdy;
 extern ulong	runvec;
 
 /* Statistics stuff */
@@ -23,10 +23,10 @@ ulong		nilcount;
 ulong		scheds;
 vlong		edfruntime;
 ulong		edfnrun;
-int			misseddeadlines;
+int		misseddeadlines;
 
 /* Edfschedlock protects modification of admission params */
-int			edfinited;
+int		edfinited;
 QLock		edfschedlock;
 static Lock	thelock;
 
@@ -41,8 +41,8 @@ static Proc *qschedulability;
 enum {
 	Onemicrosecond =	1000ULL,
 	Onemillisecond =	1000000ULL,
-	Onesecond =			1000000000ULL,
-	OneRound = 			Onemillisecond/2LL,
+	Onesecond =		1000000000ULL,
+	OneRound = 		Onemillisecond/2LL,
 	MilliRound = 		Onemicrosecond/2LL,
 };
 

+ 1 - 0
sys/src/9/port/proc.c

@@ -486,6 +486,7 @@ newproc(void)
 	p->errbuf1[0] = '\0';
 	p->nlocks.ref = 0;
 	p->delaysched = 0;
+	p->trace = 0;
 	kstrdup(&p->user, "*nouser");
 	kstrdup(&p->text, "*notext");
 	kstrdup(&p->args, "");

+ 22 - 10
sys/src/cmd/replica/applychanges.c

@@ -101,9 +101,10 @@ walk(char *new, char *old, Dir *pd, void*)
 				return;
 			}
 			od.mtime = d.mtime;
+			od.muid = "mark";
 			xlog('c', new, &od);
 			if(!justshow){
-				if(copyfile(new, old, &od, 0) == 0)
+				if(copyfile(newpath, oldpath, &od, 0) == 0)
 					insertdb(db, new, &od);
 			}
 		}
@@ -126,6 +127,7 @@ walk(char *new, char *old, Dir *pd, void*)
 				od.uid = d.uid;
 			od.gid = d.gid;
 			od.mode = d.mode;
+			od.muid = "mark";
 			xlog('m', new, &od);
 			if(!justshow){
 				if(metafile(oldpath, &od) == 0)
@@ -200,7 +202,7 @@ main(int argc, char **argv)
 				removedb(db, e->name);
 				continue;
 			}
-			if(xd->mtime != e->d.mtime){
+			if(xd->mtime != e->d.mtime && (e->d.mode&xd->mode&DMDIR)==0){
 				print("x %q remove/update conflict\n", e->name);
 				free(xd);
 				continue;
@@ -216,6 +218,7 @@ main(int argc, char **argv)
 				if(remove(oldpath) == 0)
 					removedb(db, e->name);
 			}
+			free(xd);
 		}
 	}
 
@@ -266,18 +269,27 @@ copyfile(char *from, char *to, Dir *d, int dowstat)
 		return -1;
 
 	didcreate = 0;
-	if((wfd = open(to, OTRUNC|OWRITE)) < 0){
-		if((wfd = create(to, OWRITE, 0)) < 0){
+	if(d->mode&DMDIR){
+		if((wfd = create(to, OREAD, DMDIR)) < 0){
+			fprint(2, "mkdir %q: %r\n", to);
 			close(rfd);
 			return -1;
 		}
-		didcreate = 1;
-	}
-	if(copy1(rfd, wfd, from, to) < 0){
-		close(rfd);
-		close(wfd);
-		return -1;
+	}else{
+		if((wfd = open(to, OTRUNC|OWRITE)) < 0){
+			if((wfd = create(to, OWRITE, 0)) < 0){
+				close(rfd);
+				return -1;
+			}
+			didcreate = 1;
+		}
+		if(copy1(rfd, wfd, from, to) < 0){
+			close(rfd);
+			close(wfd);
+			return -1;
+		}
 	}
+	close(rfd);
 	if(didcreate || dowstat){
 		nulldir(&nd);
 		nd.mode = d->mode;

+ 17 - 4
sys/src/cmd/webcookies.c

@@ -426,7 +426,10 @@ syncjar(Jar *jar)
 
 	jar->dirty = 0;
 	close(fd);
-	jar->qid = q;
+	if((d = dirstat(jar->file)) != nil){
+		jar->qid = d->qid;
+		free(d);
+	}
 	return 0;
 }
 
@@ -563,7 +566,7 @@ isbadcookie(Cookie *c, char *dom, char *path)
 	if(strncmp(c->path, path, strlen(c->path)) != 0)
 		return "cookie path is not a prefix of the request path";
 
-	if(c->dom[0] != '.')
+	if(c->explicitdom && c->dom[0] != '.')
 		return "cookie domain doesn't start with dot";
 
 	if(memchr(c->dom+1, '.', strlen(c->dom)-1-1) == nil)
@@ -756,7 +759,7 @@ isnetscape(char *hdr)
 
 /*
  * Parse HTTP response headers, adding cookies to jar.
- * Overwrites the headers.
+ * Overwrites the headers.  May overwrite path.
  */
 char* parsecookie(Cookie*, char*, char**, int, char*, char*);
 int
@@ -871,6 +874,7 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 	char *t, *u, *attr, *val;
 
 	memset(c, 0, sizeof *c);
+	c->expire = ~0;
 
 	/* NAME=VALUE */
 	t = skiptoken(p);
@@ -896,6 +900,10 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 		t = skiptoken(p);
 		u = skipspace(t);
 		switch(*u){
+		case '\0':
+			*t = '\0';
+			p = val = u;
+			break;
 		case ';':
 			*t = '\0';
 			val = "";
@@ -947,8 +955,13 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 		c->dom = dom;
 	if(c->path)
 		c->explicitpath = 1;
-	else
+	else{
 		c->path = path;
+		if((t = strchr(c->path, '?')) != 0)
+			*t = '\0';
+		if((t = strrchr(c->path, '/')) != 0)
+			*t = '\0';
+	}
 	c->netscapestyle = isns;
 	*e = p;
 

+ 17 - 4
sys/src/cmd/webfs/cookies.c

@@ -452,7 +452,10 @@ syncjar(Jar *jar)
 
 	jar->dirty = 0;
 	close(fd);
-	jar->qid = q;
+	if((d = dirstat(jar->file)) != nil){
+		jar->qid = d->qid;
+		free(d);
+	}
 	return 0;
 }
 
@@ -599,7 +602,7 @@ isbadcookie(Cookie *c, char *dom, char *path)
 	if(strncmp(c->path, path, strlen(c->path)) != 0)
 		return "cookie path is not a prefix of the request path";
 
-	if(c->dom[0] != '.')
+	if(c->explicitdom && c->dom[0] != '.')
 		return "cookie domain doesn't start with dot";
 
 	if(memchr(c->dom+1, '.', strlen(c->dom)-1-1) == nil)
@@ -792,7 +795,7 @@ isnetscape(char *hdr)
 
 /*
  * Parse HTTP response headers, adding cookies to jar.
- * Overwrites the headers.
+ * Overwrites the headers.  May overwrite path.
  */
 static char* parsecookie(Cookie*, char*, char**, int, char*, char*);
 static int
@@ -904,6 +907,7 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 	int i, done;
 	char *t, *u, *attr, *val;
 
+	c->expire = ~0;
 	memset(c, 0, sizeof *c);
 
 	/* NAME=VALUE */
@@ -930,6 +934,10 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 		t = skiptoken(p);
 		u = skipspace(t);
 		switch(*u){
+		case '\0':
+			*t = '\0';
+			val = p = u;
+			break;
 		case ';':
 			*t = '\0';
 			val = "";
@@ -981,8 +989,13 @@ parsecookie(Cookie *c, char *p, char **e, int isns, char *dom, char *path)
 		c->dom = dom;
 	if(c->path)
 		c->explicitpath = 1;
-	else
+	else{
 		c->path = path;
+		if((t = strchr(c->path, '?')) != 0)
+			*t = '\0';
+		if((t = strrchr(c->path, '/')) != 0)
+			*t = '\0';
+	}	
 	c->netscapestyle = isns;
 	*e = p;
 

+ 85 - 0
sys/src/cmd/webfsget.c

@@ -0,0 +1,85 @@
+/* Example of how to use webfs */
+#include <u.h>
+#include <libc.h>
+
+void
+xfer(int from, int to)
+{
+	char buf[12*1024];
+	int n;
+
+	while((n = read(from, buf, sizeof buf)) > 0)
+		if(write(to, buf, n) < 0)
+			sysfatal("write failed: %r");
+	if(n < 0)
+		sysfatal("read failed: %r");
+}
+
+void
+usage(void)
+{
+	fprint(2, "usage: webget [-b baseurl] [-m mtpt] [-p postbody] url\n");
+	exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+	int conn, ctlfd, fd, n;
+	char buf[128], *base, *mtpt, *post, *url;
+
+	mtpt = "/mnt/web";
+	post = nil;
+	base = nil;
+	ARGBEGIN{
+	default:
+		usage();
+	case 'b':
+		base = EARGF(usage());
+		break;
+	case 'm':
+		mtpt = EARGF(usage());
+		break;
+	case 'p':
+		post = EARGF(usage());
+		break;
+	}ARGEND;
+
+	if (argc != 1) 
+		usage();
+
+	url = argv[0];
+ 
+	snprint(buf, sizeof buf, "%s/clone", mtpt);
+	if((ctlfd = open(buf, ORDWR)) < 0)
+		sysfatal("couldn't open %s: %r", buf);
+	if((n = read(ctlfd, buf, sizeof buf-1)) < 0)
+		sysfatal("reading clone: %r");
+	if(n == 0)
+		sysfatal("short read on clone");
+	buf[n] = '\0';
+	conn = atoi(buf);
+
+	if(base)
+		if(fprint(ctlfd, "baseurl %s", base) < 0)
+			sysfatal("baseurl ctl write: %r");
+
+	if(fprint(ctlfd, "url %s", url) <= 0)
+		sysfatal("get ctl write: %r");
+
+	if(post){
+		snprint(buf, sizeof buf, "%s/%d/postbody", mtpt, conn);
+		if((fd = open(buf, OWRITE)) < 0)
+			sysfatal("open %s: %r", buf);
+		if(write(fd, post, strlen(post)) < 0)
+			sysfatal("post write failed: %r");
+		close(fd);
+	}
+
+	snprint(buf, sizeof buf, "%s/%d/body", mtpt, conn);
+	if((fd = open(buf, OREAD)) < 0)
+		sysfatal("open %s: %r", buf);
+
+	xfer(fd, 1);
+	exits(nil);
+}