Plan 9 from Bell Labs’s /usr/web/sources/extra/changes/2005/0922

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


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 <file){
	+ 			if(/^;/) continue
	+ 			if(/^[0-9A-F]/){
	+ 				vid=lower($1)
	+ 				vendor[vid] = $2
	+ 			}
	+ 			if(/^	[0-9]/){
	+ 				did=lower($2)
	+ 				id[vid "/" did] = $3
	+ 			}
	+ 		}
	+ 		FS = " "
	+ 	}
	+ 
	+ 	{
	+ 		print $0
	+ 		vid = $4
	+ 		sub(/\/.*/, "", vid)
	+ 		if(vid in vendor){
	+ 			s = vendor[vid]
	+ 			if($4 in id)
	+ 				s = s " " id[$4]
	+ 			print "\t" s
	+ 		}
	+ 	}
	+ '
	+ }
	+ 
	+ filter=cat
	+ if(~ $1 -v){
	+ 	filter=verbose
	+ }
	+ cd '#$/pci' && grep . *ctl | sed '
	+ 	s/ctl:/:	/
	+ 	s/:	01/:	disk 01/
	+ 	s/:	02/:	net  02/
	+ 	s/:	03/:	vid  03/
	+ 	s/:	([0-9])/:	---  \1/
	+ ' | $filter
	+ 
 [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

Add amd64 code.  Various formatting changes.
 [rsc] --rw-rw-r-- M 191333 glenda sys 72374 Sep 22 12:10 386/lib/libthread.a
 [rsc] --rw-rw-r-- M 191333 rsc sys 579 Sep 22 12:10 sys/src/libthread/amd64.c
 [rsc] --rw-rw-r-- M 191333 glenda sys 1012 Sep 22 12:10 sys/src/libthread/mkfile
	/n/sourcesdump/2005/0922/plan9/sys/src/libthread/mkfile:32,37 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/libthread/mkfile:32,38
	  CFILES=\
	  	386.c\
	  	alpha.c\
	+ 	amd64.c\
	  	arm.c\
	  	channel.c\
	  	chanprint.c\
	/n/sourcesdump/2005/0922/plan9/sys/src/libthread/mkfile:61,72 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/libthread/mkfile:62,74
	  	test.c\
	  	tprimes.c\
	  	xincarm.c\
	- 	xincpower.c
	  
	  SFILES=\
	  	xinc386.s\
	  	xincalpha.s\
	- 	xincmips.s
	+ 	xincamd64.s\
	+ 	xincmips.s\
	+ 	xincpower.s\
	  
	  HFILES=\
	  	/sys/include/thread.h\
 [rsc] --rw-rw-r-- M 191333 rsc sys 292 Sep 22 12:10 sys/src/libthread/xincamd64.s
 [rsc] --rw-rw-r-- M 191333 glenda sys 211 Sep 22 12:10 sys/src/libthread/xincport.h
	/n/sourcesdump/2005/0922/plan9/sys/src/libthread/xincport.h:5,11 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/libthread/xincport.h:5,12
	  static Lock l;
	  
	  void
	- _xinc(long *p) {
	+ _xinc(long *p)
	+ {
	  
	  	lock(&l);
	  	(*p)++;
	/n/sourcesdump/2005/0922/plan9/sys/src/libthread/xincport.h:13,19 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/libthread/xincport.h:14,21
	  }
	  
	  long
	- _xdec(long *p) {
	+ _xdec(long *p)
	+ {
	  	long r;
	  
	  	lock(&l);

Pass arguments to troff.
 [rsc] --rwxrwxr-x M 191333 rsc sys 164 Sep 22 13:31 rc/bin/troff2gif
	/n/sourcesdump/2005/0922/plan9/rc/bin/troff2gif:1,2 - 
	/n/sourcesdump/2005/0923/plan9/rc/bin/troff2gif:1,2
	  #!/bin/rc
	- {/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
	+ {/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 <checkbuild.out
	  	}
	+ 	status=''
	  
	  scansources-mail:V:
	  	dd=`{date}
	/n/sourcesdump/2005/0922/plan9/sys/lib/dist/mkfile:123,126 - 
	/n/sourcesdump/2005/0923/plan9/sys/lib/dist/mkfile:124,140
	  		mail -s 'WRITABLE FILES ON SOURCES '^$dd 9trouble </sys/lib/dist/writable
	  	}
	  	status=''
	- 
	+ 	cd /n/sources/plan9; /usr/rsc/bin/$cputype/lsr -t -d /n/sources/plan9 | awk '$2 ~ /[2367][^2367].$/' >/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
	+ 	}
	+ 	status=''
	+ 	/usr/rsc/bin/$cputype/lsr -t -d /sys /lib | awk '$2 ~ /[2367][^2367].$/' >/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 </sys/lib/dist/writable
	+ 	}
	+ 	status=''

Call a pointer a pointer.
 [jmk] --rw-rw-r-- M 191333 glenda sys 1796 Sep 22 17:48 sys/src/cmd/vt/consctl.c
	/n/sourcesdump/2005/0922/plan9/sys/src/cmd/vt/consctl.c:10,24 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/cmd/vt/consctl.c:10,25
	  static void*
	  share(int len)
	  {
	- 	ulong vastart;
	+ 	uchar *vastart;
	  
	- 	vastart = ((ulong)sbrk(0)) + 2*1024*1024;
	+ 	vastart = sbrk(0);
	+ 	vastart += 2*1024*1024;
	  
	- 	if(segattach(0, "shared", (void *)vastart, len) < 0)
	+ 	if(segattach(0, "shared", vastart, len) < 0)
	  		return 0;
	- 	memset((void*)vastart, 0, len);
	+ 	memset(vastart, 0, len);
	  
	- 	return (void*)vastart;
	+ 	return vastart;
	  }
	  
	  /*
 [sys] --rwxrwxr-x M 191333 glenda sys 173660 Sep 22 23:10 386/bin/vt
	/sys/src/cmd/vt/consctl.c:share

Fix timing computations, increase precision.
 [rsc] --rw-rw-r-- M 191333 glenda sys 9669 Sep 22 19:31 sys/src/cmd/iostats/iostats.c
	/n/sourcesdump/2005/0922/plan9/sys/src/cmd/iostats/iostats.c:144,150 - 
	/n/sourcesdump/2005/0923/plan9/sys/src/cmd/iostats/iostats.c:144,150
	  	stats->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


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.