Browse Source

Plan 9 from Bell Labs 2008-01-26

David du Colombier 16 years ago
parent
commit
d09340e998

+ 7 - 6
dist/replica/_plan9.db

@@ -405,7 +405,7 @@
 386/bin/seq - 775 sys sys 1162241047 38441
 386/bin/sha1sum - 775 sys sys 1196742523 62387
 386/bin/size - 775 sys sys 1188530186 79807
-386/bin/sleep - 775 sys sys 1158088708 3875
+386/bin/sleep - 775 sys sys 1201292693 4385
 386/bin/snap - 775 sys sys 1188530194 316182
 386/bin/snapfs - 775 sys sys 1188530202 390401
 386/bin/sniffer - 775 sys sys 1038443185 99028
@@ -5840,7 +5840,7 @@ sys/games - 20000000775 sys sys 1117225532 0
 sys/games/lib - 20000000775 sys sys 1165337608 0
 sys/games/lib/4scores - 10000000666 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000666 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1200437226 268083
+sys/games/lib/fortunes - 664 sys sys 1201296173 268188
 sys/games/lib/mahjongg - 20000000775 sys sys 1095792278 0
 sys/games/lib/mahjongg/backgrounds - 20000000775 sys sys 1095792293 0
 sys/games/lib/mahjongg/backgrounds/default.bit - 664 sys sys 1095792293 346803
@@ -8112,7 +8112,7 @@ sys/src/9/pc/etherelnk3.c - 664 sys sys 1158012427 48807
 sys/src/9/pc/etherga620.c - 664 sys sys 1185652495 29895
 sys/src/9/pc/etherga620fw.h - 664 sys sys 1026847642 222295
 sys/src/9/pc/etherif.h - 664 sys sys 1088178711 961
-sys/src/9/pc/etherigbe.c - 664 sys sys 1194796690 45327
+sys/src/9/pc/etherigbe.c - 664 sys sys 1201296869 45773
 sys/src/9/pc/etherm10g.c - 664 sys sys 1199912528 28463
 sys/src/9/pc/etherm10g2k.i - 664 sys sys 1174590360 957485
 sys/src/9/pc/etherm10g4k.i - 664 sys sys 1174590362 926959
@@ -8121,7 +8121,7 @@ sys/src/9/pc/ethermii.h - 664 sys sys 1086873891 3258
 sys/src/9/pc/ethersink.c - 664 sys sys 1048644103 1076
 sys/src/9/pc/ethersmc.c - 664 sys sys 1162951986 15116
 sys/src/9/pc/ethervgbe.c - 664 sys sys 1160066496 26838
-sys/src/9/pc/ethervt6102.c - 664 sys sys 1194556833 22388
+sys/src/9/pc/ethervt6102.c - 664 sys sys 1201296945 22600
 sys/src/9/pc/etherwavelan.c - 664 sys sys 1131290380 3747
 sys/src/9/pc/floppy.h - 664 sys sys 1055700609 3835
 sys/src/9/pc/fns.h - 664 sys sys 1190268439 4738
@@ -13388,7 +13388,7 @@ sys/src/cmd/seq.c - 664 sys sys 1161442158 1691
 sys/src/cmd/sh.C - 664 sys sys 1055701754 10303
 sys/src/cmd/sha1sum.c - 664 sys sys 1194215428 1098
 sys/src/cmd/size.c - 664 sys sys 944961619 717
-sys/src/cmd/sleep.c - 664 sys sys 1158061645 544
+sys/src/cmd/sleep.c - 664 sys sys 1201287728 550
 sys/src/cmd/snap - 20000000775 sys sys 1039727541 0
 sys/src/cmd/snap/mkfile - 664 sys sys 1023834477 257
 sys/src/cmd/snap/read.c - 664 sys sys 1141660969 4332
@@ -14235,7 +14235,7 @@ sys/src/cmd/upas/send/skipequiv.c - 664 sys sys 944961322 1747
 sys/src/cmd/upas/send/translate.c - 664 sys sys 944961322 804
 sys/src/cmd/upas/send/tryit - 664 sys sys 944961322 584
 sys/src/cmd/upas/smtp - 20000000775 sys sys 1067741333 0
-sys/src/cmd/upas/smtp/greylist.c - 664 sys sys 1200091418 6609
+sys/src/cmd/upas/smtp/greylist.c - 664 sys sys 1201288520 6935
 sys/src/cmd/upas/smtp/mkfile - 664 sys sys 1108910002 801
 sys/src/cmd/upas/smtp/mxdial.c - 664 sys sys 1188509395 6813
 sys/src/cmd/upas/smtp/rfc822.y - 664 sys sys 1064589606 13417
@@ -15857,3 +15857,4 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/upas/smtpd - 775 sys sys 1201321515 332115

+ 7 - 7
dist/replica/plan9.db

@@ -405,7 +405,7 @@
 386/bin/seq - 775 sys sys 1162241047 38441
 386/bin/sha1sum - 775 sys sys 1196742523 62387
 386/bin/size - 775 sys sys 1188530186 79807
-386/bin/sleep - 775 sys sys 1158088708 3875
+386/bin/sleep - 775 sys sys 1201292693 4385
 386/bin/snap - 775 sys sys 1188530194 316182
 386/bin/snapfs - 775 sys sys 1188530202 390401
 386/bin/sniffer - 775 sys sys 1038443185 99028
@@ -475,7 +475,7 @@
 386/bin/upas/scanmail - 775 sys sys 1200262789 128213
 386/bin/upas/send - 775 sys sys 1200262792 192180
 386/bin/upas/smtp - 775 sys sys 1188530218 275629
-386/bin/upas/smtpd - 775 sys sys 1200111584 332038
+386/bin/upas/smtpd - 775 sys sys 1201321515 332115
 386/bin/upas/spam - 775 sys sys 1064598366 36
 386/bin/upas/testscan - 775 sys sys 1200262795 83864
 386/bin/upas/token - 775 sys sys 1188447329 73042
@@ -5840,7 +5840,7 @@ sys/games - 20000000775 sys sys 1117225532 0
 sys/games/lib - 20000000775 sys sys 1165337608 0
 sys/games/lib/4scores - 10000000666 sys sys 1118680448 0
 sys/games/lib/5scores - 10000000666 sys sys 1118680453 0
-sys/games/lib/fortunes - 664 sys sys 1200437226 268083
+sys/games/lib/fortunes - 664 sys sys 1201296173 268188
 sys/games/lib/mahjongg - 20000000775 sys sys 1095792278 0
 sys/games/lib/mahjongg/backgrounds - 20000000775 sys sys 1095792293 0
 sys/games/lib/mahjongg/backgrounds/default.bit - 664 sys sys 1095792293 346803
@@ -8112,7 +8112,7 @@ sys/src/9/pc/etherelnk3.c - 664 sys sys 1158012427 48807
 sys/src/9/pc/etherga620.c - 664 sys sys 1185652495 29895
 sys/src/9/pc/etherga620fw.h - 664 sys sys 1026847642 222295
 sys/src/9/pc/etherif.h - 664 sys sys 1088178711 961
-sys/src/9/pc/etherigbe.c - 664 sys sys 1194796690 45327
+sys/src/9/pc/etherigbe.c - 664 sys sys 1201296869 45773
 sys/src/9/pc/etherm10g.c - 664 sys sys 1199912528 28463
 sys/src/9/pc/etherm10g2k.i - 664 sys sys 1174590360 957485
 sys/src/9/pc/etherm10g4k.i - 664 sys sys 1174590362 926959
@@ -8121,7 +8121,7 @@ sys/src/9/pc/ethermii.h - 664 sys sys 1086873891 3258
 sys/src/9/pc/ethersink.c - 664 sys sys 1048644103 1076
 sys/src/9/pc/ethersmc.c - 664 sys sys 1162951986 15116
 sys/src/9/pc/ethervgbe.c - 664 sys sys 1160066496 26838
-sys/src/9/pc/ethervt6102.c - 664 sys sys 1194556833 22388
+sys/src/9/pc/ethervt6102.c - 664 sys sys 1201296945 22600
 sys/src/9/pc/etherwavelan.c - 664 sys sys 1131290380 3747
 sys/src/9/pc/floppy.h - 664 sys sys 1055700609 3835
 sys/src/9/pc/fns.h - 664 sys sys 1190268439 4738
@@ -13388,7 +13388,7 @@ sys/src/cmd/seq.c - 664 sys sys 1161442158 1691
 sys/src/cmd/sh.C - 664 sys sys 1055701754 10303
 sys/src/cmd/sha1sum.c - 664 sys sys 1194215428 1098
 sys/src/cmd/size.c - 664 sys sys 944961619 717
-sys/src/cmd/sleep.c - 664 sys sys 1158061645 544
+sys/src/cmd/sleep.c - 664 sys sys 1201287728 550
 sys/src/cmd/snap - 20000000775 sys sys 1039727541 0
 sys/src/cmd/snap/mkfile - 664 sys sys 1023834477 257
 sys/src/cmd/snap/read.c - 664 sys sys 1141660969 4332
@@ -14235,7 +14235,7 @@ sys/src/cmd/upas/send/skipequiv.c - 664 sys sys 944961322 1747
 sys/src/cmd/upas/send/translate.c - 664 sys sys 944961322 804
 sys/src/cmd/upas/send/tryit - 664 sys sys 944961322 584
 sys/src/cmd/upas/smtp - 20000000775 sys sys 1067741333 0
-sys/src/cmd/upas/smtp/greylist.c - 664 sys sys 1200091418 6609
+sys/src/cmd/upas/smtp/greylist.c - 664 sys sys 1201288520 6935
 sys/src/cmd/upas/smtp/mkfile - 664 sys sys 1108910002 801
 sys/src/cmd/upas/smtp/mxdial.c - 664 sys sys 1188509395 6813
 sys/src/cmd/upas/smtp/rfc822.y - 664 sys sys 1064589606 13417

+ 7 - 0
dist/replica/plan9.log

@@ -18346,3 +18346,10 @@
 1200893404 0 c sys/src/boot/pc/devsd.c - 664 sys sys 1200893250 11506
 1200893404 1 c sys/src/boot/pc/lib.h - 664 sys sys 1200893244 2925
 1201217404 0 c sys/man/1/tar - 664 sys sys 1201217504 3818
+1201287605 0 c sys/src/cmd/sleep.c - 664 sys sys 1201287728 550
+1201289405 0 c sys/src/cmd/upas/smtp/greylist.c - 664 sys sys 1201288520 6935
+1201293004 0 c 386/bin/sleep - 775 sys sys 1201292693 4385
+1201296605 0 c sys/games/lib/fortunes - 664 sys sys 1201296173 268188
+1201298403 0 c sys/src/9/pc/etherigbe.c - 664 sys sys 1201296869 45773
+1201298403 1 c sys/src/9/pc/ethervt6102.c - 664 sys sys 1201296945 22600
+1201321804 0 c 386/bin/upas/smtpd - 775 sys sys 1201321515 332115

+ 1 - 0
sys/games/lib/fortunes

@@ -4211,3 +4211,4 @@ The following recipient(s) could not be reached: OpenView Service Desk on 11/7/2
 Dear Valued Customer #88143191!
 rusty: kernel pseudo files are not the place for chit-chat
 I define UNIX as ``30 definitions of regular expressions living under one roof.''  - Don Knuth
+ADDITIONAL METAPHOR SPOILER ALERT: ``The Old Man and the Sea'' is not just about an old man and the sea.

+ 17 - 3
sys/src/9/pc/etherigbe.c

@@ -1,5 +1,5 @@
 /*
- * Intel 8254[340]NN Gigabit Ethernet Controller
+ * Intel 8254[340]NN Gigabit Ethernet PCI Controllers
  * as found on the Intel PRO/1000 series of adapters:
  *	82543GC	Intel PRO/1000 T
  *	82544EI Intel PRO/1000 XT
@@ -136,10 +136,15 @@ enum {					/* Ctrl */
 	Vme		= 0x40000000,	/* VLAN Mode Enable */
 };
 
+/*
+ * can't find Tckok nor Rbcok in any Intel docs,
+ * but even 82543gc docs define Lanid.
+ */
 enum {					/* Status */
 	Lu		= 0x00000002,	/* Link Up */
-	Tckok		= 0x00000004,	/* Transmit clock is running */
-	Rbcok		= 0x00000008,	/* Receive clock is running */
+	Lanid		= 0x0000000C,	/* mask for Lan ID. (function id) */
+//	Tckok		= 0x00000004,	/* Transmit clock is running */
+//	Rbcok		= 0x00000008,	/* Receive clock is running */
 	Txoff		= 0x00000010,	/* Transmission Paused */
 	Tbimode		= 0x00000020,	/* TBI Mode Indication */
 	LspeedMASK	= 0x000000C0,	/* Link Speed Setting */
@@ -1639,6 +1644,7 @@ at93c46r(Ctlr* ctlr)
 	case i82545gmc:
 	case i82546gb:
 	case i82546eb:
+	case i82547ei:
 		areq = 1;
 		csr32w(ctlr, Eecd, eecd|Areq);
 		for(i = 0; i < 1000; i++){
@@ -1775,10 +1781,18 @@ igbereset(Ctlr* ctlr)
 	if ((ctlr->id == i82546gb || ctlr->id == i82546eb) &&
 	    BUSFNO(ctlr->pcidev->tbdf) == 1)
 		ctlr->eeprom[Ea+2] += 0x100;		/* second interface */
+	if(ctlr->id == i82541gi && ctlr->eeprom[Ea] == 0xFFFF)
+		ctlr->eeprom[Ea] = 0xD000;
 	for(i = Ea; i < Eaddrlen/2; i++){
 		ctlr->ra[2*i] = ctlr->eeprom[i];
 		ctlr->ra[2*i+1] = ctlr->eeprom[i]>>8;
 	}
+	/* lan id seems to vary on 82543gc; don't use it */
+	if (ctlr->id != i82543gc) {
+		r = (csr32r(ctlr, Status) & Lanid) >> 2;
+		ctlr->ra[5] += r;		/* ea ctlr[1] = ea ctlr[0]+1 */
+	}
+
 	r = (ctlr->ra[3]<<24)|(ctlr->ra[2]<<16)|(ctlr->ra[1]<<8)|ctlr->ra[0];
 	csr32w(ctlr, Ral, r);
 	r = 0x80000000|(ctlr->ra[5]<<8)|ctlr->ra[4];

+ 7 - 2
sys/src/9/pc/ethervt6102.c

@@ -28,6 +28,8 @@ enum {
 	Cr		= 0x08,		/* Control */
 	Isr		= 0x0C,		/* Interrupt Status */
 	Imr		= 0x0E,		/* Interrupt Mask */
+	Mcfilt0		= 0x10,		/* Multicast Filter 0 */
+	Mcfilt1		= 0x14,		/* Multicast Filter 1 */
 	Rxdaddr		= 0x18,		/* Current Rx Descriptor Address */
 	Txdaddr		= 0x1C,		/* Current Tx Descriptor Address */
 	Phyadr		= 0x6C,		/* Phy Address */
@@ -840,7 +842,8 @@ vt6102detach(Ctlr* ctlr)
 	/*
 	 * Soft reset the controller.
 	 */
-	csr16w(ctlr, Cr, Sfrst);
+	csr16w(ctlr, Cr, Stop);
+	csr16w(ctlr, Cr, Stop|Sfrst);
 	for(timeo = 0; timeo < 10000; timeo++){
 		if(!(csr16r(ctlr, Cr) & Sfrst))
 			break;
@@ -890,6 +893,8 @@ vt6102reset(Ctlr* ctlr)
 
 	r = csr8r(ctlr, Rcr) & ~(RrftMASK|Prom|Ar|Sep);
 	csr8w(ctlr, Rcr, r|Ab|Am);
+	csr32w(ctlr, Mcfilt0, ~0UL);	/* accept all multicast */
+	csr32w(ctlr, Mcfilt1, ~0UL);
 
 	r = csr8r(ctlr, Tcr) & ~(RtsfMASK|Ofset|Lb1|Lb0);
 	csr8w(ctlr, Tcr, r);
@@ -931,7 +936,7 @@ vt6102pci(void)
 		switch((p->did<<16)|p->vid){
 		default:
 			continue;
-		case (0x3053<<16)|0x1106:	/* Rhine III in Soekris */
+		case (0x3053<<16)|0x1106:	/* Rhine III vt6105m (Soekris) */
 		case (0x3065<<16)|0x1106:	/* Rhine II */
 		case (0x3106<<16)|0x1106:	/* Rhine III */
 			break;

+ 9 - 9
sys/src/cmd/sleep.c

@@ -4,33 +4,33 @@
 void
 main(int argc, char *argv[])
 {
-	char *p;
-	long secs;
+	long n;
+	char *p, *q;
 
 	if(argc>1){
-		for(secs = atol(argv[1]); secs > 0; secs--)
+		for(n = strtol(argv[1], &p, 0); n > 0; n--)
 			sleep(1000);
 		/*
 		 * no floating point because it is useful to
 		 * be able to run sleep when bootstrapping
 		 * a machine.
 		 */
-		if(p = strchr(argv[1], '.')){
-			p++;
-			switch(strlen(p)){
+		if(*p++ == '.' && (n = strtol(p, &q, 10)) > 0){
+			switch(q - p){
 			case 0:
 				break;
 			case 1:
-				sleep(atoi(p)*100);
+				n *= 100;
 				break;
 			case 2:
-				sleep(atoi(p)*10);
+				n *= 10;
 				break;
 			default:
 				p[3] = 0;
-				sleep(atoi(p));
+				n = strtol(p, 0, 10);
 				break;
 			}
+			sleep(n);
 		}
 	}
 	exits(0);

+ 10 - 0
sys/src/cmd/upas/smtp/greylist.c

@@ -142,6 +142,15 @@ getmtime(char *file)
 
 	if (ds != nil) {
 		mtime = ds->mtime;
+		/*
+		 * new twist: update file's mtime after reading it,
+		 * so each call resets the future time after which
+		 * we'll accept calls.  thus spammers who keep pounding
+		 * us lose, but just pausing for a few minutes and retrying
+		 * will succeed.
+		 */
+		ds->mtime = time(0);
+		dirwstat(file, ds);
 		free(ds);
 	}
 	return mtime;
@@ -156,6 +165,7 @@ tryaddgrey(char *file, Greysts *gsp)
 	if (fd >= 0) {
 		close(fd);
 		gsp->existed = 0;  /* just created; couldn't have existed */
+		gsp->mtime = time(0);
 	} else {
 		/*
 		 * why couldn't we create file? it must have existed