Remove unused OI variable, unindent better. [rsc] --rw-rw-r-- M 191333 glenda sys 23027 Sep 22 08:58 sys/lib/tmac/tmac.s /n/sourcesdump/2005/0922/plan9/sys/lib/tmac/tmac.s:827,833 - /n/sourcesdump/2005/0923/plan9/sys/lib/tmac/tmac.s:827,832 . .de P1 .nr P1 .4i \" program indent in .P1 - .nr OI .4i .if \\n(.$ .nr P1 \\$1 .br .nr v \\n(.v /n/sourcesdump/2005/0922/plan9/sys/lib/tmac/tmac.s:847,853 - /n/sourcesdump/2005/0923/plan9/sys/lib/tmac/tmac.s:846,852 .vs \\n(VSp .vs \\nvu .ft 1 - .in + .in -\\n(P1u .di .br .sp \\n(DVu Update man page, usage. [rsc] --rw-rw-r-- M 191333 glenda sys 1447 Sep 22 08:43 sys/man/4/ramfs /n/sourcesdump/2005/0922/plan9/sys/man/4/ramfs:4,21 - /n/sourcesdump/2005/0923/plan9/sys/man/4/ramfs:4,19 .SH SYNOPSIS .B ramfs [ - .B -i + .B -Dips ] [ - .B -s - ] - [ - .B -p - ] - [ .B -m .I mountpoint ] + [ + .B -S + .I srvname + ] .SH DESCRIPTION .I Ramfs starts a process that mounts itself (see /n/sourcesdump/2005/0922/plan9/sys/man/4/ramfs:32,37 - /n/sourcesdump/2005/0923/plan9/sys/man/4/ramfs:30,39 Initially the file tree is empty. .PP The + .B -D + option enables a trace of general debugging messages. + .PP + The .B -i flag tells .I ramfs /n/sourcesdump/2005/0922/plan9/sys/man/4/ramfs:43,54 - /n/sourcesdump/2005/0923/plan9/sys/man/4/ramfs:45,68 and 1 will be the network channel from .I ramfs to the client machine. + .PP The + .B -p + flag causes + .I ramfs + to make its memory `private' + (see + .IR proc (3)) + so that its files are not accessible through the debugging interface. + .PP + The .B -s + .RB ( -S ) flag causes .I ramfs to post its channel on .B /srv/ramfs + .RB ( /srv/ \fIsrvname\fR) rather than mounting it on .IR mountpoint , enabling multiple clients to access its files. /n/sourcesdump/2005/0922/plan9/sys/man/4/ramfs:55,69 - /n/sourcesdump/2005/0923/plan9/sys/man/4/ramfs:69,74 However, it does not authenticate its clients and its implementation of groups is simplistic, so it should not be used for precious data. - .PP - The - .B -p - flag causes - .I ramfs - to make its memory `private' - (see - .IR proc (3)) - so that its files are not accessible through the debugging interface. .PP This program is useful mainly as an example of how to write a user-level file server. [rsc] --rw-rw-r-- M 191333 glenda sys 15950 Sep 22 08:43 sys/src/cmd/ramfs.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ramfs.c:172,178 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ramfs.c:172,178 defmnt = 0; break; case 'm': - defmnt = ARGF(); + defmnt = EARGF(usage()); break; case 'p': private++; /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ramfs.c:887,892 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ramfs.c:887,892 void usage(void) { - fprint(2, "usage: %s [-is] [-m mountpoint]\n", argv0); + fprint(2, "usage: %s [-Dips] [-m mountpoint] [-S srvname]\n", argv0); exits("usage"); } [sys] --rwxrwxr-x M 191333 glenda sys 89822 Sep 22 23:10 386/bin/ramfs /sys/src/cmd/ramfs.c:main /sys/src/cmd/ramfs.c:usage /sys/src/libc/port/rune.c:chartorune Acid routines for poking around inside sam. [rsc] --rw-rw-r-- M 191333 rsc sys 1536 Sep 22 08:47 sys/src/cmd/sam/acid.lib Add 82545GM copper. [rsc] --rw-rw-r-- M 191333 jmk sys 44412 Sep 22 08:45 sys/src/9/pc/etherigbe.c /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:35,40 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:35,41 i82547ei = (0x1019<<16)|0x8086, i82540em = (0x100E<<16)|0x8086, i82540eplp = (0x101E<<16)|0x8086, + i82545gmc = (0x1026<<16)|0x8086, i82547gi = (0x1075<<16)|0x8086, i82541gi = (0x1076<<16)|0x8086, i82546gb = (0x1079<<16)|0x8086, /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:44,49 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:45,51 enum { Ctrl = 0x00000000, /* Device Control */ + Ctrldup = 0x00000004, /* Device Control Duplicate */ Status = 0x00000008, /* Device Status */ Eecd = 0x00000010, /* EEPROM/Flash Control/Data */ Ctrlext = 0x00000018, /* Extended Device Control */ /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:880,885 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:882,888 case i82540eplp: case i82541gi: case i82541pi: + case i82545gmc: case i82546gb: case i82546eb: case i82547gi: /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:916,921 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:919,925 case i82540em: case i82540eplp: case i82547gi: + case i82545gmc: case i82546gb: case i82546eb: case i82541gi: /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1049,1054 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1053,1059 case i82540eplp: case i82541gi: case i82541pi: + case i82545gmc: case i82546gb: case i82546eb: case i82547gi: /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1444,1449 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1449,1455 case i82547gi: case i82541gi: case i82541pi: + case i82545gmc: case i82546gb: case i82546eb: ctrl &= ~(Frcdplx|Frcspd); /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1475,1480 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1481,1487 case i82547gi: case i82541gi: case i82541pi: + case i82545gmc: case i82546gb: case i82546eb: break; /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1607,1612 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1614,1620 case i82541gi: case i82541pi: case i82547gi: + case i82545gmc: case i82546gb: case i82546eb: areq = 1; /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1690,1695 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1698,1704 case i82541gi: case i82541pi: case i82547gi: + case i82545gmc: case i82546gb: case i82546eb: r = csr32r(ctlr, Manc); /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/etherigbe.c:1859,1864 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/etherigbe.c:1868,1874 case i82547gi: case i82541gi: case i82541pi: + case i82545gmc: case i82546gb: case i82546eb: break; [rsc] --rw-rw-r-- M 191333 glenda sys 51702 Sep 22 12:01 sys/src/9/pc/sdata.c /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/sdata.c:1909,1915 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/sdata.c:1909,1921 * This can probably be lumped in with the 768 above. */ /*FALLTHROUGH*/ + case (0x01BC<<16)|0x10DE: /* nVidia nForce1 */ + case (0x0065<<16)|0x10DE: /* nVidia nForce2 */ + case (0x0085<<16)|0x10DE: /* nVidia nForce2 MCP */ case (0x00D5<<16)|0x10DE: /* nVidia nForce3 */ + case (0x00E5<<16)|0x10DE: /* nVidia nForce3 Pro */ + case (0x0035<<16)|0x10DE: /* nVidia nForce3 MCP */ + case (0x0053<<16)|0x10DE: /* nVidia nForce4 */ /* * Ditto, although it may have a different base * address for the registers (0x50?). [rsc] --rw-rw-r-- M 191333 glenda sys 1408 Sep 22 13:48 sys/src/9/pc/pc /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pc:43,49 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pc:43,50 ether589 etherelnk3 ether79c970 pci ether8003 ether8390 - ether8139 + ether8139 pci + ether8169 pci ethermii ether82543gc pci ether82557 pci ether83815 pci /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pc:65,75 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pc:66,77 archmp mp apic sdata pci sdscsi - sd53c8xx pci sdscsi + sd53c8xx pci sdscsi sdmylex pci sdscsi uarti8250 uartpci pci + uartisa vga3dfx +cur vgaark2000pv +cur /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pc:100,105 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pc:102,108 ipifc icmp icmp6 + gre port int cpuserver = 0; [rsc] --rw-rw-r-- M 191333 glenda sys 835 Sep 22 13:48 sys/src/9/pc/pccpu /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pccpu:25,30 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pccpu:25,31 floppy dma uart + usb link ether2000 ether8390 /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pccpu:32,37 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pccpu:33,39 ether79c970 pci ether8003 ether8390 ether8139 pci + ether8169 pci ethermii ether82543gc pci ether82557 pci ether83815 pci [rsc] --rw-rw-r-- M 191333 presotto sys 1467 Sep 22 13:48 sys/src/9/pc/pccpuf /n/sourcesdump/2005/0922/plan9/sys/src/9/pc/pccpuf:32,50 - /n/sourcesdump/2005/0923/plan9/sys/src/9/pc/pccpuf:32,57 usb link + devpccard + devi82365 ether2000 ether8390 ether2114x pci + ether589 etherelnk3 ether79c970 pci ether8003 ether8390 ether8139 pci + ether8169 pci ethermii ether82543gc pci ether82557 pci ether83815 pci + etherec2t ether8390 etherelnk3 pci etherga620 pci etherigbe pci ethermii etherrhine pci ethermii ethersink + ethersmc devi82365 cis + etherwavelan wavelan devi82365 cis pci ethermedium netdevmedium loopbackmedium Add string+number. [rsc] --rw-rw-r-- M 191333 glenda sys 4389 Sep 22 08:47 sys/src/cmd/acid/acid.h /n/sourcesdump/2005/0922/plan9/sys/src/cmd/acid/acid.h:232,237 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/acid/acid.h:232,238 int scmp(String*, String*); void sproc(int); String* stradd(String*, String*); + String* straddrune(String*, Rune); String* strnode(char*); String* strnodlen(char*, int); char* system(void); [rsc] --rw-rw-r-- M 191333 glenda sys 15220 Sep 22 08:48 sys/src/cmd/acid/expr.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/acid/expr.c:362,367 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/acid/expr.c:362,373 res->string = stradd(l.string, r.string); break; } + if(r.type == TINT) { + res->type = TSTRING; + res->fmt = 's'; + res->string = straddrune(l.string, r.ival); + break; + } error("bad rhs for +"); case TLIST: res->type = TLIST; [rsc] --rw-rw-r-- M 191333 glenda sys 4616 Sep 22 08:47 sys/src/cmd/acid/util.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/acid/util.c:267,272 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/acid/util.c:267,290 return s; } + String* + straddrune(String *l, Rune r) + { + int len; + String *s; + + len = l->len+runelen(r); + s = gmalloc(sizeof(String)+len+1); + s->gclink = gcl; + gcl = s; + s->len = len; + s->string = (char*)s+sizeof(String); + memmove(s->string, l->string, l->len); + runetochar(s->string+l->len, &r); + s->string[s->len] = 0; + return s; + } + int scmp(String *sr, String *sl) { [rsc] --rw-rw-r-- M 191333 glenda sys 65062 Sep 22 13:46 sys/doc/acid.ms /n/sourcesdump/2005/0922/plan9/sys/doc/acid.ms:807,814 - /n/sourcesdump/2005/0923/plan9/sys/doc/acid.ms:807,816 .I string or .I list - type then addition is defined as concatenation. Subtraction is undefined for - these two types. + type then addition is defined as concatenation. + Adding a string and an integer is treated as concatenation + with the Unicode character corresponding to the integer. + Subtraction is undefined for strings and lists. .DS shift-expression: additive-expression [sys] --rwxrwxr-x M 191333 rsc sys 390487 Sep 22 23:10 386/bin/acid /sys/src/cmd/acid/expr.c:oadd /sys/src/cmd/acid/lex.c:yylex /sys/src/cmd/acid/util.c:straddrune Add more DNS types. [rsc] --rw-rw-r-- M 191333 glenda sys 27986 Sep 22 08:37 sys/src/cmd/ndb/dn.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dn.c:42,53 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dn.c:42,89 [Tmx] "mx", [Ttxt] "txt", [Trp] "rp", - [Tkey] "key", - [Tcert] "cert", + [Tafsdb] "afsdb", + [Tx25] "x.25", + [Tisdn] "isdn", + [Trt] "rt", + [Tnsap] "nsap", + [Tnsapptr] "nsap-ptr", [Tsig] "sig", + [Tkey] "key", + [Tpx] "px", + [Tgpos] "gpos", [Taaaa] "ipv6", + [Tloc] "loc", + [Tnxt] "nxt", + [Teid] "eid", + [Tnimloc] "nimrod", + [Tsrv] "srv", + [Tatma] "atma", + [Tnaptr] "naptr", + [Tkx] "kx", + [Tcert] "cert", + [Ta6] "a6", + [Tdname] "dname", + [Tsink] "sink", + [Topt] "opt", + [Tapl] "apl", + [Tds] "ds", + [Tsshfp] "sshfp", + [Tipseckey] "ipseckey", + [Trrsig] "rrsig", + [Tnsec] "nsec", + [Tdnskey] "dnskey", + [Tspf] "spf", + [Tuinfo] "uinfo", + [Tuid] "uid", + [Tgid] "gid", + [Tunspec] "unspec", + [Ttkey] "tkey", + [Ttsig] "tsig", [Tixfr] "ixfr", [Taxfr] "axfr", + [Tmailb] "mailb", + [Tmaila] "maila", [Tall] "all", 0, }; /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dn.c:61,66 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dn.c:97,114 [Rname] "bad name", [Runimplimented] "unimplemented", [Rrefused] "we don't like you", + [Ryxdomain] "name should not exist", + [Ryxrrset] "rr set should not exist", + [Rnxrrset] "rr set should exist", + [Rnotauth] "not authorative", + [Rnotzone] "not in zone", + [Rbadvers] "bad opt version", + /* [Rbadsig] "bad signature", */ + [Rbadkey] "bad key", + [Rbadtime] "bad signature time", + [Rbadmode] "bad mode", + [Rbadname] "duplicate key name", + [Rbadalg] "bad algorithm", }; /* names of op codes */ /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dn.c:67,74 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dn.c:115,123 char *opname[] = { [Oquery] "query", - [Oinverse] "inverse", + [Oinverse] "inverse query (retired)", [Ostatus] "status", + [Oupdate] "update", }; Lock dnlock; [rsc] --rw-rw-r-- M 191333 glenda sys 10141 Sep 22 08:37 sys/src/cmd/ndb/dns.h /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dns.h:2,34 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dns.h:2,70 enum { - /* RR types */ - Ta= 1, - Tns= 2, - Tmd= 3, - Tmf= 4, - Tcname= 5, - Tsoa= 6, - Tmb= 7, - Tmg= 8, - Tmr= 9, - Tnull= 10, - Twks= 11, - Tptr= 12, - Thinfo= 13, - Tminfo= 14, - Tmx= 15, - Ttxt= 16, - Trp= 17, - Tsig= 24, - Tkey= 25, - Taaaa= 28, - Tcert= 37, + /* RR types; see: http://www.iana.org/assignments/dns-parameters */ + Ta= 1, + Tns= 2, + Tmd= 3, + Tmf= 4, + Tcname= 5, + Tsoa= 6, + Tmb= 7, + Tmg= 8, + Tmr= 9, + Tnull= 10, + Twks= 11, + Tptr= 12, + Thinfo= 13, + Tminfo= 14, + Tmx= 15, + Ttxt= 16, + Trp= 17, + Tafsdb= 18, + Tx25= 19, + Tisdn= 20, + Trt= 21, + Tnsap= 22, + Tnsapptr= 23, + Tsig= 24, + Tkey= 25, + Tpx= 26, + Tgpos= 27, + Taaaa= 28, + Tloc= 29, + Tnxt= 30, + Teid= 31, + Tnimloc= 32, + Tsrv= 33, + Tatma= 34, + Tnaptr= 35, + Tkx= 36, + Tcert= 37, + Ta6= 38, + Tdname= 39, + Tsink= 40, + Topt= 41, + Tapl= 42, + Tds= 43, + Tsshfp= 44, + Tipseckey= 45, + Trrsig= 46, + Tnsec= 47, + Tdnskey= 48, + Tspf= 99, + Tuinfo= 100, + Tuid= 101, + Tgid= 102, + Tunspec= 103, + /* query types (all RR types are also queries) */ + Ttkey= 249, /* transaction key */ + Ttsig= 250, /* transaction signature */ Tixfr= 251, /* incremental zone transfer */ Taxfr= 252, /* zone transfer */ Tmailb= 253, /* { Tmb, Tmg, Tmr } */ + Tmaila= 254, /* obsolete */ Tall= 255, /* all records */ /* classes */ /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dns.h:43,51 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dns.h:79,88 /* opcodes */ Oquery= 0<<11, /* normal query */ - Oinverse= 1<<11, /* inverse query */ + Oinverse= 1<<11, /* inverse query (retired) */ Ostatus= 2<<11, /* status request */ Onotify= 4<<11, /* notify slaves of updates */ + Oupdate= 5<<11, Omask= 0xf<<11, /* mask for opcode */ /* response codes */ /n/sourcesdump/2005/0922/plan9/sys/src/cmd/ndb/dns.h:55,62 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/ndb/dns.h:92,111 Rname= 3, /* bad name */ Runimplimented= 4, /* unimplemented */ Rrefused= 5, /* we don't like you */ - Rmask= 0xf, /* mask for response */ - Rtimeout= 0x10, /* timeout sending (for internal use only) */ + Ryxdomain= 6, /* name exists when it should not */ + Ryxrrset= 7, /* rr set exists when it should not */ + Rnxrrset= 8, /* rr set that should exist does not */ + Rnotauth= 9, /* not authoritative */ + Rnotzone= 10, /* name not in zone */ + Rbadvers= 16, /* bad opt version */ + /* Rbadsig= 16, */ /* also tsig signature failure */ + Rbadkey= 17, /* key not recognized */ + Rbadtime= 18, /* signature out of time window */ + Rbadmode= 19, /* bad tkey mode */ + Rbadname= 20, /* duplicate key name */ + Rbadalg= 21, /* algorithm not supported */ + Rmask= 0x1f, /* mask for response */ + Rtimeout= 0x20, /* timeout sending (for internal use only) */ /* bits in flag word (other than opcode and response) */ Fresp= 1<<15, /* message is a response */ [sys] --rwxrwxr-x M 191333 glenda sys 245101 Sep 22 23:10 386/bin/ndb/dns /sys/src/cmd/ndb/dn.c:dnage /sys/src/cmd/ndb/dn.c:dnageall /sys/src/cmd/ndb/dn.c:dncheck /sys/src/cmd/ndb/dn.c:dndump /sys/src/cmd/ndb/dn.c:dnlookup /sys/src/cmd/ndb/dn.c:dnptr /sys/src/cmd/ndb/dn.c:getactivity /sys/src/cmd/ndb/dn.c:putactivity /sys/src/cmd/ndb/dn.c:rrattach1 /sys/src/cmd/ndb/dn.c:rravfmt /sys/src/cmd/ndb/dn.c:rrfmt /sys/src/cmd/ndb/dn.c:rrfree /sys/src/cmd/ndb/dn.c:rrlookup /sys/src/cmd/ndb/dn.c:rrname /sys/src/cmd/ndb/dn.c:rrtype /sys/src/cmd/ndb/dn.c:sencodefmt /sys/src/cmd/ndb/dn.c:warning /sys/src/cmd/ndb/dnresolve.c:netquery1 /sys/src/cmd/ndb/dnresolve.c:serveraddrs [sys] --rwxrwxr-x M 191333 glenda sys 219717 Sep 22 23:10 386/bin/ndb/dnsdebug /sys/src/cmd/ndb/dn.c:dnage /sys/src/cmd/ndb/dn.c:dnageall /sys/src/cmd/ndb/dn.c:dncheck /sys/src/cmd/ndb/dn.c:dndump /sys/src/cmd/ndb/dn.c:dnlookup /sys/src/cmd/ndb/dn.c:dnptr /sys/src/cmd/ndb/dn.c:getactivity /sys/src/cmd/ndb/dn.c:putactivity /sys/src/cmd/ndb/dn.c:rrattach1 /sys/src/cmd/ndb/dn.c:rravfmt /sys/src/cmd/ndb/dn.c:rrfmt /sys/src/cmd/ndb/dn.c:rrfree /sys/src/cmd/ndb/dn.c:rrlookup /sys/src/cmd/ndb/dn.c:rrname /sys/src/cmd/ndb/dn.c:rrtype /sys/src/cmd/ndb/dn.c:sencodefmt /sys/src/cmd/ndb/dn.c:warning /sys/src/cmd/ndb/dnresolve.c:netquery1 /sys/src/cmd/ndb/dnresolve.c:serveraddrs /sys/src/cmd/ndb/dnsdebug.c:logreply /sys/src/libc/port/pool.c:poolmsize [sys] --rwxrwxr-x M 191333 glenda sys 218358 Sep 22 23:10 386/bin/ndb/dnstcp /sys/src/cmd/ndb/dn.c:dnage /sys/src/cmd/ndb/dn.c:dnageall /sys/src/cmd/ndb/dn.c:dncheck /sys/src/cmd/ndb/dn.c:dndump /sys/src/cmd/ndb/dn.c:dnlookup /sys/src/cmd/ndb/dn.c:dnptr /sys/src/cmd/ndb/dn.c:getactivity /sys/src/cmd/ndb/dn.c:putactivity /sys/src/cmd/ndb/dn.c:rrattach1 /sys/src/cmd/ndb/dn.c:rravfmt /sys/src/cmd/ndb/dn.c:rrfmt /sys/src/cmd/ndb/dn.c:rrfree /sys/src/cmd/ndb/dn.c:rrlookup /sys/src/cmd/ndb/dn.c:rrname /sys/src/cmd/ndb/dn.c:rrtype /sys/src/cmd/ndb/dn.c:sencodefmt /sys/src/cmd/ndb/dn.c:warning /sys/src/cmd/ndb/dnresolve.c:netquery1 /sys/src/cmd/ndb/dnresolve.c:serveraddrs More heuristics. [rsc] --rw-rw-r-- M 191333 presotto sys 18523 Sep 22 08:38 sys/src/cmd/cb/cb.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/cb/cb.c:466,471 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/cb/cb.c:466,476 gotop(c); continue; case ':': + if ((cc = getch()) == ':') { + putch(c,NO); + putch(cc,NO); + continue; + } if (question == 1){ question = 0; gotop(c); /n/sourcesdump/2005/0922/plan9/sys/src/cmd/cb/cb.c:796,802 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/cb/cb.c:801,807 lbegin = 0; if (split == 1){ split = 0; - if (clev->tabs > 0)Bprint(output, " "); + if (clev->tabs > 0)Bprint(output, "\t"); } } *p = '\0'; [sys] --rwxrwxr-x M 191333 presotto sys 77589 Sep 22 23:10 386/bin/cb /sys/src/cmd/cb/cb.c:error /sys/src/cmd/cb/cb.c:outs /sys/src/cmd/cb/cb.c:puttmp /sys/src/cmd/cb/cb.c:work Don't plumb the pipeto messages. [rsc] --rw-rw-r-- M 191333 rsc sys 3342 Sep 22 09:09 mail/lib/pipeto.lib /n/sourcesdump/2005/0922/plan9/mail/lib/pipeto.lib:75,81 - /n/sourcesdump/2005/0923/plan9/mail/lib/pipeto.lib:75,81 } >$TMP.msg2 || exit $status mv $TMP.msg2 $TMP.msg || exit $status unmount /mail/fs - upas/fs -f $TMP.msg || exit $status + upas/fs -pf $TMP.msg || exit $status } # classify message according to token-based white list /n/sourcesdump/2005/0922/plan9/mail/lib/pipeto.lib:150,154 - /n/sourcesdump/2005/0923/plan9/mail/lib/pipeto.lib:150,154 # save and parse the mail file sed '/^$/,$ s/^From / From /' >$TMP.msg - upas/fs -f $TMP.msg || exit $status + upas/fs -pf $TMP.msg || exit $status Move server lookup into switch so can specify just server= if desired. [rsc] --rwxrwxr-x M 191333 glenda sys 855 Sep 22 09:17 rc/bin/C /n/sourcesdump/2005/0922/plan9/rc/bin/C:16,32 - /n/sourcesdump/2005/0923/plan9/rc/bin/C:16,37 } switch($1){ + case fs + server=edith + case ella + exec C office0 + exit case erika exec C office1 exit - } - - # look for server in /lib/ndb - server=`{ndb/query sys $1 console} - switch($server){ - case '' - echo C: unknown console server for $1 - exit 1 + case * + # look for server in /lib/ndb + server=`{ndb/query sys $1 console} + switch($server){ + case '' + echo C: unknown console server for $1 + exit 1 + } } # can't cpu to old servers any more No need for this - bell-labs specific and smtpd.conf is just as good an example. Use "fax" as machine name. [rsc] --rwxrwxr-x M 191333 glenda sys 2385 Sep 22 09:11 rc/bin/fax /n/sourcesdump/2005/0922/plan9/rc/bin/fax:120,126 - /n/sourcesdump/2005/0923/plan9/rc/bin/fax:120,126 switch($view){ case no upas/qer $files /mail/faxoutqueue fax $user $telno < /dev/null - rx boundary /sys/lib/fax/faxgoose + rx fax /sys/lib/fax/faxgoose case yes page $header.* $g3files } - [rsc] --rw-rw-r-- M 191333 glenda sys 256007 Sep 22 09:01 sys/games/lib/fortunes /n/sourcesdump/2005/0922/plan9/sys/games/lib/fortunes:4083,4085 - /n/sourcesdump/2005/0923/plan9/sys/games/lib/fortunes:4083,4087 A C, an E-flat, and a G walk into a bar. The bartender says, "Sorry, but we don't serve minors." exhausted("sleep"); /// The ForTo class avoids confusing syntax of "for (int i=1;i<=4;i++) {...}". This can be replaced with "foreach (int i in new ForTo(1,4)) {...}". + Linux is for people who hate Windows. BSD is for people who love UNIX. + If plan9 was a village then I'd probably be the village idiot, but it would still be better than living in the city. - Dave Lukes Use "fs" as file server name. [rsc] --rwxrwxr-x M 191333 glenda sys 132 Sep 22 09:11 sys/lib/fax/faxgoose /n/sourcesdump/2005/0922/plan9/sys/lib/fax/faxgoose:1,4 - /n/sourcesdump/2005/0923/plan9/sys/lib/fax/faxgoose:1,4 #!/bin/rc - 9fs emelie - bind /n/emelie/mail /mail + 9fs fs + bind -c /n/fs/mail /mail exec upas/runq -t3 /mail/faxoutqueue /sys/lib/fax/faxtry < /dev/null > /dev/null >[2=1] & [rsc] --rwxrwxr-x M 191333 glenda sys 121 Sep 22 09:10 sys/lib/fax/faxtickle /n/sourcesdump/2005/0922/plan9/sys/lib/fax/faxtickle:1,4 - /n/sourcesdump/2005/0923/plan9/sys/lib/fax/faxtickle:1,4 #!/bin/rc - 9fs emelie - bind -c /n/emelie/mail/faxoutqueue /mail/faxoutqueue + 9fs fs + bind -c /n/fs/mail/faxoutqueue /mail/faxoutqueue upas/runq -t3 -a /mail/faxoutqueue /sys/lib/fax/faxtry [rsc] --rwxrwxr-x M 191333 glenda sys 1094 Sep 22 09:10 sys/lib/fax/receiverc /n/sourcesdump/2005/0922/plan9/sys/lib/fax/receiverc:2,11 - /n/sourcesdump/2005/0923/plan9/sys/lib/fax/receiverc:2,11 spool=/mail/faxqueue recipients=/mail/faxqueue/faxrecipients - # run mail as if we're on emelie - rm /srv/emelie - 9fs emelie - bind -c /n/emelie/mail/faxqueue /mail/faxqueue + # run mail as if we're on fs + rm /srv/fs + 9fs fs + bind -c /n/fs/mail/faxqueue /mail/faxqueue # # Arguments should be /n/sourcesdump/2005/0922/plan9/sys/lib/fax/receiverc:43,51 - /n/sourcesdump/2005/0923/plan9/sys/lib/fax/receiverc:43,51 case ??? ext=$i } - cp $spool/$1.$ext /n/emelie/lib/nyt/nyt.$to($i) + cp $spool/$1.$ext /n/fs/lib/nyt/nyt.$to($i) } - cp $spool/$1.1 /n/emelie/lib/nyt/nyt.$3 + cp $spool/$1.1 /n/fs/lib/nyt/nyt.$3 rm -f $spool/$1.* case * {echo $*; echo FAX: page -w $spool/$1.'*'} | mail `{cat $recipients} Handle DMDIR bit correctly. [rsc] --rw-rw-r-- M 191333 glenda sys 6284 Sep 22 09:04 sys/src/cmd/aux/9pcon.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/aux/9pcon.c:127,133 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/aux/9pcon.c:127,133 { f->fid = atoi(argv[0]); f->name = argv[1]; - f->perm = strtol(argv[2], 0, 8); + f->perm = strtoul(argv[2], 0, 8); f->mode = atoi(argv[3]); return nil; } [sys] --rwxrwxr-x M 191333 glenda sys 94916 Sep 22 23:10 386/bin/aux/9pcon /sys/src/cmd/aux/9pcon.c:tcreate Better timeout handling during mxdial. [rsc] --rw-rw-r-- M 191333 glenda sys 6422 Sep 22 09:03 sys/src/cmd/upas/smtp/mxdial.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/upas/smtp/mxdial.c:48,53 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/upas/smtp/mxdial.c:48,61 return fd; } + static int + timeout(void *x, char *msg) + { + if(strstr(msg, "alarm")) + return 1; + return 0; + } + /* * take an address and return all the mx entries for it, * most preferred first /n/sourcesdump/2005/0922/plan9/sys/src/cmd/upas/smtp/mxdial.c:90,96 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/upas/smtp/mxdial.c:98,108 mx[i].host, ds->service); if(debug) fprint(2, "mxdial trying %s\n", addr); + atnotify(timeout, 1); + alarm(10*1000); fd = dial(addr, 0, 0, 0); + alarm(0); + atnotify(timeout, 0); if(fd >= 0) return fd; } [rsc] --rw-rw-r-- M 191333 glenda sys 20091 Sep 22 09:03 sys/src/cmd/upas/smtp/smtp.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/upas/smtp/smtp.c:198,209 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/upas/smtp/smtp.c:198,209 exits(0); } - /* 10 minutes to get through the initial handshake */ - atnotify(timeout, 1); - - alarm(10*alarmscale); + /* mxdial uses its own timeout handler */ if((rv = connect(addr)) != 0) exits(rv); + + /* 10 minutes to get through the initial handshake */ + atnotify(timeout, 1); alarm(10*alarmscale); if((rv = hello(hellodomain, 0)) != 0) goto error; [sys] --rwxrwxr-x M 191333 glenda sys 275242 Sep 22 23:10 386/bin/upas/smtp /sys/src/cmd/upas/smtp/mxdial.c:callmx /sys/src/cmd/upas/smtp/mxdial.c:dial_string_parse /sys/src/cmd/upas/smtp/mxdial.c:expand_meta /sys/src/cmd/upas/smtp/mxdial.c:mxlookup /sys/src/cmd/upas/smtp/mxdial.c:mxlookup1 /sys/src/cmd/upas/smtp/mxdial.c:timeout /sys/src/cmd/upas/smtp/smtp.c:main Add PCI database from web, accessed with pci -v. [rsc] --rw-rw-r-- M 191333 rsc sys 193035 Sep 22 10:09 lib/pci [rsc] --rwxrwxr-x M 191333 glenda sys 752 Sep 22 10:53 rc/bin/pci /n/sourcesdump/2005/0922/plan9/rc/bin/pci:1,3 - /n/sourcesdump/2005/0923/plan9/rc/bin/pci:1,56 #!/bin/rc - cd '#$/pci' && grep . *ctl | sed 's/ctl:/: /' + fn verbose { awk ' + + function lower(s) { + gsub(/A/, "a", s) + gsub(/B/, "b", s) + gsub(/C/, "c", s) + gsub(/D/, "d", s) + gsub(/E/, "e", s) + gsub(/F/, "f", s) + return s + } + BEGIN{ + file="/lib/pci" + FS="\t" + while(getline [2] /dev/null + {/bin/troff $*|/bin/lp -dstdout|/bin/gs -dNOPAUSE -dQUIET '-sOUTPUTFILE='/fd/1 '-sDEVICE=plan9bm' - quit.ps| crop -c 255 255 255 | togif} >[2] /dev/null This is what we use, for what it's worth. [rsc] --rw-rw-r-- M 191333 glenda sys 4409 Sep 22 13:30 sys/lib/dist/mkfile /n/sourcesdump/2005/0922/plan9/sys/lib/dist/mkfile:109,114 - /n/sourcesdump/2005/0923/plan9/sys/lib/dist/mkfile:109,115 dd=$"date mail -s 'nightly build differences '^$dd 9trouble /sys/lib/dist/writable + if(test -s /sys/lib/dist/writable){ + dd=`{date} + dd=$"date + mail -s 'non-group-writable files on sources'^$dd 9trouble /sys/lib/dist/writable + if(test -s /sys/lib/dist/writable){ + dd=`{date} + dd=$"date + mail -s 'non-group-writable files on fs '^$dd 9trouble rpc[Twstat].name = "wstat"; for(n = 0; n < Maxrpc; n++) - stats->rpc[n].loms = 10000000; + stats->rpc[n].lo = 10000000000LL; fmtinstall('F', fcallfmt); /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:191,200 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:191,200 postnote(PNPROC, m->pid, "kill"); rpc = &stats->rpc[Tread]; - brpsec = (float)stats->totread / (((float)rpc->time/1000.0)+.000001); + brpsec = (float)stats->totread / (((float)rpc->time/1e9)+.000001); rpc = &stats->rpc[Twrite]; - bwpsec = (float)stats->totwrite / (((float)rpc->time/1000.0)+.000001); + bwpsec = (float)stats->totwrite / (((float)rpc->time/1e9)+.000001); ttime = 0; for(n = 0; n < Maxrpc; n++) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:204,210 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:204,210 ttime += rpc->time; } - bppsec = (float)stats->nproto / ((ttime/1000.0)+.000001); + bppsec = (float)stats->nproto / ((ttime/1e9)+.000001); fprint(2, "\nread %lud bytes, %g Kb/sec\n", stats->totread, brpsec/1024.0); fprint(2, "write %lud bytes, %g Kb/sec\n", stats->totwrite, bwpsec/1024.0); /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:211,217 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:211,217 fprint(2, "protocol %lud bytes, %g Kb/sec\n", stats->nproto, bppsec/1024.0); fprint(2, "rpc %lud count\n\n", stats->nrpc); - fprint(2, "%-10s %5s %5s %5s %5s %5s in out\n", + fprint(2, "%-10s %5s %5s %5s %5s %5s T R\n", "Message", "Count", "Low", "High", "Time", "Averg"); for(n = 0; n < Maxrpc; n++) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:218,230 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:218,230 rpc = &stats->rpc[n]; if(rpc->count == 0) continue; - fprint(2, "%-10s %5lud %5lud %5lud %5lud %5lud ms %8lud %8lud bytes\n", + fprint(2, "%-10s %5lud %5llud %5llud %5llud %5llud ms %8lud %8lud bytes\n", rpc->name, rpc->count, - rpc->loms, - rpc->hims, - rpc->time, - rpc->time/rpc->count, + rpc->lo/1000000, + rpc->hi/1000000, + rpc->time/1000000, + rpc->time/1000000/rpc->count, rpc->bin, rpc->bout); } /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:524,535 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:524,529 exits("exit"); noted(NDFLT); - } - - ulong - msec(void) - { - return nsec()/1000000; } void [rsc] --rw-rw-r-- M 191333 glenda sys 2617 Sep 22 19:31 sys/src/cmd/iostats/statfs.h /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statfs.h:37,45 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statfs.h:37,45 { char *name; ulong count; - ulong time; - ulong loms; - ulong hims; + vlong time; + vlong lo; + vlong hi; ulong bin; ulong bout; }; [rsc] --rw-rw-r-- M 191333 glenda sys 10745 Sep 22 19:31 sys/src/cmd/iostats/statsrv.c /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:32,51 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:32,51 } void - update(Rpc *rpc, ulong t) + update(Rpc *rpc, vlong t) { - ulong t2; + vlong t2; - t2 = msec(); - t -= t2; - if((long)t < 0) + t2 = nsec(); + t = t2 - t; + if(t < 0) t = 0; rpc->time += t; - if(t < rpc->loms) - rpc->loms = t; - if(t > rpc->hims) - rpc->hims = t; + if(t < rpc->lo) + rpc->lo = t; + if(t > rpc->hi) + rpc->hi = t; } void /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:52,60 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:52,60 Xversion(Fsrpc *r) { Fcall thdr; - ulong t; + vlong t; - t = msec(); + t = nsec(); if(r->work.msize > IOHDRSZ+Maxfdata) thdr.msize = IOHDRSZ+Maxfdata; /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:78,86 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:78,86 Xauth(Fsrpc *r) { Fcall thdr; - ulong t; + vlong t; - t = msec(); + t = nsec(); reply(&r->work, &thdr, Enoauth); r->busy = 0; /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:120,128 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:120,128 { Fcall thdr; Fid *f; - ulong t; + vlong t; - t = msec(); + t = nsec(); f = newfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:146,155 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:146,155 Fcall thdr; Fid *f, *n; File *nf; - ulong t; + vlong t; int i; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:217,226 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:217,226 { Fcall thdr; Fid *f; - ulong t; + vlong t; int fid; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:252,260 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:252,260 Fcall thdr; Fid *f; int s; - ulong t; + vlong t; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:296,304 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:296,304 Fcall thdr; Fid *f; File *nf; - ulong t; + vlong t; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:342,350 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:342,350 char err[ERRMAX], path[128]; Fcall thdr; Fid *f; - ulong t; + vlong t; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:381,389 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:381,389 Fcall thdr; Fid *f; int s; - ulong t; + vlong t; - t = msec(); + t = nsec(); f = getfid(r->work.fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:502,512 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:502,512 char err[ERRMAX], path[128]; Fcall *work, thdr; Fid *f; - ulong t; + vlong t; work = &p->work; - t = msec(); + t = nsec(); f = getfid(work->fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:556,566 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:556,566 Fcall *work, thdr; Fid *f; int n, r; - ulong t; + vlong t; work = &p->work; - t = msec(); + t = nsec(); f = getfid(work->fid); if(f == 0) { /n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/statsrv.c:618,628 - /n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/statsrv.c:618,628 Fcall *work, thdr; Fid *f; int n; - ulong t; + vlong t; work = &p->work; - t = msec(); + t = nsec(); f = getfid(work->fid); if(f == 0) { [sys] --rwxrwxr-x M 191333 glenda sys 98431 Sep 22 23:10 386/bin/iostats /sys/src/cmd/iostats/iostats.c:catcher /sys/src/cmd/iostats/iostats.c:fatal /sys/src/cmd/iostats/iostats.c:fidreport /sys/src/cmd/iostats/iostats.c:file /sys/src/cmd/iostats/iostats.c:getsbuf /sys/src/cmd/iostats/iostats.c:initroot /sys/src/cmd/iostats/iostats.c:main /sys/src/cmd/iostats/iostats.c:makepath /sys/src/cmd/iostats/iostats.c:msec /sys/src/cmd/iostats/iostats.c:newfid /sys/src/cmd/iostats/iostats.c:reply /sys/src/cmd/iostats/iostats.c:runprog /sys/src/cmd/iostats/iostats.c:strcatalloc /sys/src/cmd/iostats/statsrv.c:Xattach /sys/src/cmd/iostats/statsrv.c:Xauth /sys/src/cmd/iostats/statsrv.c:Xclunk /sys/src/cmd/iostats/statsrv.c:Xcreate /sys/src/cmd/iostats/statsrv.c:Xremove /sys/src/cmd/iostats/statsrv.c:Xstat /sys/src/cmd/iostats/statsrv.c:Xversion /sys/src/cmd/iostats/statsrv.c:Xwalk /sys/src/cmd/iostats/statsrv.c:Xwstat /sys/src/cmd/iostats/statsrv.c:slaveopen /sys/src/cmd/iostats/statsrv.c:slaveread /sys/src/cmd/iostats/statsrv.c:slavewrite /sys/src/cmd/iostats/statsrv.c:update /sys/src/libc/fmt/fmt.c:_fmtinstall /sys/src/libc/fmt/sprint.c:sprint /sys/src/libc/port/pool.c:blocksetdsize /sys/src/libc/port/pool.c:trim /sys/src/libc/port/rune.c:chartorune