Browse Source

Plan 9 from Bell Labs 2009-02-21

David du Colombier 15 years ago
parent
commit
06f2367a47

+ 1 - 0
lib/face/48x48x8/.dict

@@ -9,6 +9,7 @@ alcatel-lucent.be/unknown a/alu-be.1
 alcatel-lucent.de/unknown a/alu-de.1
 alcatel-lucent.fr/unknown a/alu-fr.1
 alcatel-lucent.nl/unknown a/alu-nl.1
+alcatel-lucent.co.uk/unknown a/alu-uk.1
 alchar.org/aedil k/kris.1
 aprote.ee/t.lankots t/tiit.1
 ar/unknown u/unknown.ar

+ 2 - 4
rc/bin/ps2pdf

@@ -1,9 +1,9 @@
 #!/bin/rc
-
+# ps2pdf - convert PostScript to PDF
 rfork e
 
 fn usage {
-	echo 'usage: ps2pdf [gs-options] [input.ps] [output.pdf]' >[1=2]
+	echo 'usage: ps2pdf [gs-options] [input.ps [output.pdf]]' >[1=2]
 	exit usage
 }
 
@@ -41,5 +41,3 @@ gscmd=( gs $opt -dSAFER -dNOPAUSE -dBATCH -q -s'DEVICE=pdfwrite' \
 	$opt $compat \
 	-s'OutputFile='$fout -c .setpdfwrite -f $fin)
 exec $gscmd
-
-

+ 5 - 5
sys/lib/tmac/tmac.cs

@@ -172,7 +172,7 @@
 .ds y!
 .ds z!
 '''			\" initialize proprietary notice
-.ds o) "Lucent Technologies \(em PROPRIETARY
+.ds o) "Alcatel-Lucent \(em PROPRIETARY
 .ds p) "Use pursuant to Company Instructions
 .ds q)
 .ds r)
@@ -451,7 +451,7 @@
 .if '\\$1'BP' .nr p 1
 .if '\\$1'BR' \{\
 .	nr p 2
-.	ds o) "Lucent Technologies \(em PROPRIETARY (RESTRICTED)
+.	ds o) "Alcatel-Lucent \(em PROPRIETARY (RESTRICTED)
 .	ds p) "Solely for authorized persons having a need to know
 .	ds q) "     pursuant to Company Instructions \}
 .if '\\$1'0' .nr p 0
@@ -924,13 +924,13 @@ Initial Distribution Specifications	\\*(N1\f2 (page ii of \\n(tc)\f3
 .	ft 1
 .	sp -0.05i
 .	TK \}
-\f3Future Lucent Technologies Distribution by ITDS\f1
+\f3Future Alcatel-Lucent Distribution by ITDS\f1
 .ti 0.5i
 .sp 0.05i
 .ie \\n(ra=2 \{\
-\f3DO NOT RELEASE\f1 to any Lucent Technologies employee without appropriate approval for each request. \}
+\f3DO NOT RELEASE\f1 to any Alcatel-Lucent employee without appropriate approval for each request. \}
 .el \{\
-\f3RELEASE\f1 to any Lucent Technologies employee (excluding contract employees). \}
+\f3RELEASE\f1 to any Alcatel-Lucent employee (excluding contract employees). \}
 .TK
 '''\"					put out author signature section
 .ft 3

+ 30 - 30
sys/lib/tmac/tmac.mcs

@@ -343,9 +343,9 @@
 .ie \n(dv=5 .ds lG \s10\f(ATx\fP\f\\nv\fP\s0
 .el .ds lG \s36\(LH\s0
 '''\" initialize entity strings
-.ds e1 "LUCENT-BL
-.ds e2 "LUCENT
-.ds e3 "LUCENT BELL LABORATORIES
+.ds e1 "ALCATEL-LUCENT-BL
+.ds e2 "ALCATEL-LUCENT
+.ds e3 "ALCATEL-LUCENT BELL LABORATORIES
 .ds e4 "Department Head
 '''\" initialize trademark symbol string
 .if t .ds Tm \v'-0.5m'\s-4TM\s+4\v'0.5m'
@@ -377,27 +377,27 @@
 .if '\\$1'TI' .nr en 3
 .if '\\$1'CH' .nr en 4
 .if \\n(en=1 \{\
-.ds e1 "LUCENT-BL
-.ds e2 "LUCENT
-.ds e3 "LUCENT BELL LABORATORIES
+.ds e1 "ALCATEL-LUCENT-BL
+.ds e2 "ALCATEL-LUCENT
+.ds e3 "ALCATEL-LUCENT BELL LABORATORIES
 .ds e4 "Department Head
 .br\}
 .if \\n(en=2 \{\
-.ds e1 "LUCENT-IS
-.ds e2 "LUCENT
-.ds e3 "LUCENT INFORMATION SYSTEMS
+.ds e1 "ALCATEL-LUCENT-IS
+.ds e2 "ALCATEL-LUCENT
+.ds e3 "ALCATEL-LUCENT INFORMATION SYSTEMS
 .ds e4 "Department Head
 .br\}
 .if \\n(en=3 \{\
-.ds e1 "Lucent Technologies, Inc.
-.ds e2 "Lucent
-.ds e3 "LUCENT TECHNOLOGIES, INC.
+.ds e1 "Alcatel-Lucent, Inc.
+.ds e2 "Alcatel-Lucent
+.ds e3 "ALCATEL-LUCENT, INC.
 .ds e4 "Manager
 .br\}
 .if \\n(en=4 \{\
-.ds e1 "Lucent
-.ds e2 "Lucent
-.ds e3 "        Lucent
+.ds e1 "Alcatel-Lucent
+.ds e2 "Alcatel-Lucent
+.ds e3 "        Alcatel-Lucent
 .ds e4 "Department Head
 .br \}
 .rm aC
@@ -815,9 +815,9 @@
 '''\"						Future Lucent Distribution handling
 .if ((\\n(ra<2)&(\\np=2)) \{\
 .nr ra 2
-.tm WARNING: Future Lucent Distribution by ITDS - PROPRIETARY (RESTRICTED) document     MAY NOT BE RELEASED without appropriate approval for each request;                coversheet has been modified accordingly\}
+.tm WARNING: Future Alcatel-Lucent Distribution by ITDS - PROPRIETARY (RESTRICTED) document     MAY NOT BE RELEASED without appropriate approval for each request;                coversheet has been modified accordingly\}
 .if \\n(ra=0 \{\
-.tm WARNING: Future Lucent Distribution by ITDS: missing or invalid .fA macro;          indicate desired action by checking yes or no box on page 2 of coversheet;        next time include .fA macro with y or n argument \}
+.tm WARNING: Future Alcatel-Lucent Distribution by ITDS: missing or invalid .fA macro;          indicate desired action by checking yes or no box on page 2 of coversheet;        next time include .fA macro with y or n argument \}
 '''\"						at least 3 lines for Future Lucent Distribution section (more for nroff negative and ra=0)
 '''\"					\" next 2 lines for yes/no boxes; remove when .fA macro becomes mandatory
 .if t .if \\n(ra=0 .nr e \\ne-4
@@ -1704,7 +1704,7 @@ Supersedes or amends document number \\*(e(. \}
 .if n .sp 4
 '''\"					output proprietary notice if it exists
 .if \\np=1 \{\
-.ds o) LUCENT \- PROPRIETARY
+.ds o) ALCATEL-LUCENT \- PROPRIETARY
 .ds p) "Use pursuant to Company Instructions
 .ds q)
 .ds r)
@@ -1717,7 +1717,7 @@ Supersedes or amends document number \\*(e(. \}
 .if t .ti 1.25i
 \\*(p) \}
 .if \\np=2 \{\
-.ds o) LUCENT \- PROPRIETARY (RESTRICTED)
+.ds o) ALCATEL-LUCENT \- PROPRIETARY (RESTRICTED)
 .ds p) "Solely for authorized persons having a need to know
 .ds q) "pursuant to Company Instructions
 .ft 2
@@ -1808,19 +1808,19 @@ Initial Distribution Specifications	\\*(n)\f2 (page ii of \\n(tc)\f3
 .ft 1
 .if t .sp -0.05i
 .tK \}
-\f3Future Lucent Distribution by ITDS\f1
+\f3Future Alcatel-Lucent Distribution by ITDS\f1
 .if \\n(ra>0 \{\
 .ti 0.5i
 .if t .sp 0.05i
 .ie \\n(ra=2 \{\
-.if t \f3DO NOT RELEASE\f1 to any Lucent employee without appropriate approval for each request.
+.if t \f3DO NOT RELEASE\f1 to any Alcatel-Lucent employee without appropriate approval for each request.
 .if n \{\
-\f3DO NOT RELEASE\f1 to any Lucent employee without appropriate approval
+\f3DO NOT RELEASE\f1 to any Alcatel-Lucent employee without appropriate approval
 .br
 .ti 1.0i
 for each request.\}\}
 .el \{\
-\f3RELEASE\f1 to any Lucent employee (excluding contract employees).
+\f3RELEASE\f1 to any Alcatel-Lucent employee (excluding contract employees).
 .br \}\}
 '''\"					next 41 lines for yes/no boxes; remove when .fA macro becomes mandatory
 .if \\n(ra=0 \{\
@@ -1830,13 +1830,13 @@ for each request.\}\}
 .bE
 .sp|\\nzu
 .ti 0.25i
-Yes, \f3RELEASE\f1 to any Lucent employee (excluding
+Yes, \f3RELEASE\f1 to any Alcatel-Lucent employee (excluding
 .sp|\\nzu
 .ti 4.1i
 .bE
 .sp|\\nzu
 .ti 4.25i
-No, \f3DO NOT RELEASE\f1 to any Lucent employee
+No, \f3DO NOT RELEASE\f1 to any Alcatel-Lucent employee
 .mk z
 .ti 0.35i
 contract employees).
@@ -1849,13 +1849,13 @@ without obtaining appropriate approval.\}
 .bE
 .sp|\\nzu
 .ti 0.4i
-Yes, \f3RELEASE\f1 to any Lucent employee
+Yes, \f3RELEASE\f1 to any Alcatel-Lucent employee
 .sp|\\nzu
 .ti 4.1i
 .bE
 .sp|\\nzu
 .ti 4.4i
-No, \f3DO NOT RELEASE\f1 to any Lucent
+No, \f3DO NOT RELEASE\f1 to any Alcatel-Lucent
 .mk z
 .ti 0.5i
 (except contract employees).
@@ -1944,7 +1944,7 @@ For Use by Recipient of Cover Sheet:
 .sp1
 .rn fo xx
   Otherwise:
-   Enter PAN if Lucent-BL (or SS# if non-Lucent-BL). \l'1.5i'
+   Enter PAN if Alcatel-Lucent-BL (or SS# if non-Alcatel-Lucent-BL). \l'1.5i'
    Return this sheet to any ITDS location. 
 .sp|\\nzu
 .in 4.0i
@@ -1963,8 +1963,8 @@ Internal Technical Document Service
 .sp1
 .mk z
 .rn fo xx
-1 Enter PAN if Lucent-BL (or SS# if
-  non-Lucent-BL).
+1 Enter PAN if Alcatel-Lucent-BL (or SS# if
+  non-Alcatel-Lucent-BL).
                \l'2.0i'
 2 Return this sheet to any
   ITDS location. 

+ 1 - 1
sys/src/ape/lib/ap/386/main9p.s

@@ -4,7 +4,7 @@ GLOBL	_tos(SB), $4
 GLOBL	_privates(SB), $4
 GLOBL	_nprivates(SB), $4
 
-TEXT	_mainp(SB), 1, $(8+NPRIVATES*4)
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 
 	/* _tos = arg */
 	MOVL	AX, _tos(SB)

+ 23 - 4
sys/src/ape/lib/ap/68020/main9p.s

@@ -1,11 +1,30 @@
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
+
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 	MOVL	$a6base(SB), A6
-	MOVL	R0, _clock(SB)		/* return value of sys exec!! */
+
+	/* _tos = arg */
+	MOVL	R0, _tos(SB)		/* return value of sys exec!! */
+	LEA	private+8(SP), _privates(SB)
+	MOVL	$NPRIVATES, _nprivates(SB)
+
+	/* _profmain(); */
 	BSR	_profmain(SB)
-	MOVL	__prof+4(SB), __prof+0(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVL	_tos+0(SB),A1
+	MOVL	4(A1),(A1)
+
+	BSR	_envsetup(SB)
+
+	/* main(argc, argv, environ); */
+	MOVL	environ(SB), TOS
 	PEA	inargv+0(FP)
 	MOVL	inargc-4(FP), TOS
-	BSR	_envsetup(SB)
 	BSR	main(SB)
 
 loop:

+ 25 - 4
sys/src/ape/lib/ap/alpha/main9p.s

@@ -1,15 +1,36 @@
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
 
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 	MOVQ	$setSB(SB), R29
-	MOVL	R0, _clock(SB)
+
+	/* _tos = arg */
+	MOVL	R0, _tos(SB)
+	MOVQ	$8(SP), R1
+	MOVL	R1, _privates(SB)
+	MOVQ	$NPRIVATES, R1
+	MOVL	R1, _nprivates(SB)
+
+	/* _profmain(); */
 	JSR	_profmain(SB)
-	MOVL	__prof+4(SB), R0
-	MOVL	R0, __prof+0(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVL	_tos+0(SB), R1
+	MOVL	4(R1), R2
+	MOVL	R2, 0(R1)
+
 	JSR	_envsetup(SB)
+
+	/* main(argc, argv, environ); */
 	MOVL	inargc-4(FP), R0
 	MOVL	$inargv+0(FP), R1
+	MOVL	environ(SB), R2
 	MOVL	R0, 8(R30)
 	MOVL	R1, 12(R30)
+	MOVL	R2, 16(R30)
 	JSR	main(SB)
 loop:
 	MOVL	R0, 8(R30)

+ 27 - 5
sys/src/ape/lib/ap/arm/main9p.s

@@ -2,22 +2,44 @@ arg=0
 sp=13
 sb=12
 
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
+
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
+
 	MOVW	$setR12(SB), R(sb)
-	MOVW	R(arg), _clock(SB)
 
+	/* _tos = arg */
+	MOVW	R(arg), _tos(SB)
+	MOVW	$private+8(SP), R1
+	MOVW	R1, _privates(SB)
+	MOVW	$NPRIVATES, R1
+	MOVW	R1, _nprivates(SB)
+
+	/* _profmain(); */
 	BL	_profmain(SB)
-	MOVW	__prof+4(SB), R(arg)
-	MOVW	R(arg), __prof+0(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVW	_tos+0(SB),R1
+	MOVW	4(R1), R2
+	MOVW	R2, 0(R1)
+
 	BL	_envsetup(SB)
+
+	/* main(argc, argv, environ); */
 	MOVW	$inargv+0(FP), R(arg)
 	MOVW	R(arg), 8(R(sp))
 	MOVW	inargc-4(FP), R(arg)
 	MOVW	R(arg), 4(R(sp))
+	MOVW	environ(SB), R(arg)
+	MOVW	R(arg), 8(R(sp))
 	BL	main(SB)
 loop:
 	MOVW	R(arg), 4(R(sp))
-	BL	exits(SB)
+	BL	exit(SB)
 	MOVW	$_div(SB), R(arg)	/* force loading of div */
 	MOVW	$_profin(SB), R(arg)	/* force loading of profile */
 	B	loop

+ 26 - 4
sys/src/ape/lib/ap/mips/main9p.s

@@ -1,6 +1,14 @@
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
+
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 	MOVW	$setR30(SB), R30
-	MOVW	R1, _clock(SB)
+
+	/* _tos = arg */
+	MOVW	R1, _tos(SB)
 /*
 	MOVW	$0,FCR31
 	NOR	R0,R0
@@ -9,14 +17,28 @@ TEXT	_mainp(SB), 1, $16
 	ADDD	F26, F26, F28
 	ADDD	F28, F28, F30
 */
+	MOVW	$8(SP), R1
+	MOVW	R1, _privates(SB)
+	MOVW	$NPRIVATES, R1
+	MOVW	R1, _nprivates(SB)
+
+	/* _profmain(); */
 	JAL	_profmain(SB)
-	MOVW	__prof+4(SB), R1
-	MOVW	R1, __prof+0(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVW	_tos+0(SB),R1
+	MOVW	4(R1),R2
+	MOVW	R2,(R1)
+
 	JAL	_envsetup(SB)
+
+	/* main(argc, argv, environ); */
 	MOVW	inargc-4(FP), R1
 	MOVW	$inargv+0(FP), R2
+	MOVW	environ(SB), R3
 	MOVW	R1, 4(R29)
 	MOVW	R2, 8(R29)
+	MOVW	R3, 12(R29)
 	JAL	main(SB)
 loop:
 	MOVW	R1, 4(R29)

+ 34 - 2
sys/src/ape/lib/ap/power/main9p.s

@@ -1,14 +1,46 @@
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
+
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 
 	MOVW	$setSB(SB), R2
 
-	BL		_envsetup(SB)
+	/* _tos = arg */
+	MOVW	R3, _tos(SB)
+	MOVW	$8(SP), R1
+	MOVW	R1, _privates(SB)
+	MOVW	$NPRIVATES, R1
+	MOVW	R1, _nprivates(SB)
+
+	/* _profmain(); */
+	BL	_envsetup(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVW	_tos+0(SB),R1
+	MOVW	4(R1),R2
+	MOVW	R2,(R1)
+
+	/* main(argc, argv, environ); */
 	MOVW	inargc-4(FP), R3
 	MOVW	$inargv+0(FP), R4
+	MOVW	environ(SB), R5
 	MOVW	R3, 4(R1)
 	MOVW	R4, 8(R1)
+	MOVW	R5, 12(R1)
 	BL	main(SB)
 loop:
 	MOVW	R3, 4(R1)
 	BL	exit(SB)
+	MOVW	$_profin(SB), R4	/* force loading of profile */
 	BR	loop
+
+TEXT	_savearg(SB), 1, $0
+	RETURN
+
+TEXT	_callpc(SB), 1, $0
+	MOVW	argp+0(FP), R3
+	MOVW	4(R3), R3
+	RETURN

+ 26 - 4
sys/src/ape/lib/ap/sparc/main9p.s

@@ -1,6 +1,14 @@
-TEXT	_mainp(SB), 1, $16
+#define NPRIVATES	16
+
+GLOBL	_tos(SB), $4
+GLOBL	_privates(SB), $4
+GLOBL	_nprivates(SB), $4
+
+TEXT	_mainp(SB), 1, $(3*4+NPRIVATES*4)
 	MOVW	$setSB(SB), R2
-	MOVW	R7, _clock(SB)
+
+	/* _tos = arg */
+	MOVW	R7, _tos(SB)
 /*
 	MOVW	_fpsr+0(SB), FSR
 	FMOVD	$0.5, F26
@@ -8,13 +16,27 @@ TEXT	_mainp(SB), 1, $16
 	FADDD	F26, F26, F28
 	FADDD	F28, F28, F30
 */
+	MOVW	$8(SP), R1
+	MOVW	R1, _privates(SB)
+	MOVW	$NPRIVATES, R1
+	MOVW	R1, _nprivates(SB)
+
+	/* _profmain(); */
 	JMPL	_profmain(SB)
-	MOVW	__prof+4(SB), R7
-	MOVW	R7, __prof+0(SB)
+
+	/* _tos->prof.pp = _tos->prof.next; */
+	MOVW	_tos+0(SB),R7
+	MOVW	4(R7),R8
+	MOVW	R8,(R7)
+
 	JMPL	_envsetup(SB)
+
+	/* main(argc, argv, environ); */
 	MOVW	inargc-4(FP), R7
 	MOVW	$inargv+0(FP), R8
+	MOVW	environ(SB), R9
 	MOVW	R8, 8(R1)
+	MOVW	R9, 12(R1)
 	JMPL	main(SB)
 
 loop:

+ 6 - 2
sys/src/boot/pc/boot.c

@@ -7,6 +7,10 @@
 
 #include "/sys/src/libmach/elf.h"
 
+enum {
+	Maxkernel = 4*1024*1024,
+};
+
 static uchar elfident[7] = {
 	'\177', 'E', 'L', 'F', '\1', '\1', '\1'
 };
@@ -296,9 +300,9 @@ bootpass(Boot *b, void *vbuf, int nbuf)
 			/* check for gzipped kernel */
 			if(b->bp[0] == 0x1F && (uchar)b->bp[1] == 0x8B && b->bp[2] == 0x08) {
 				b->state = READGZIP;
-				b->bp = (char*)malloc(1440*1024);
+				b->bp = (char*)malloc(Maxkernel);
 				b->wp = b->bp;
-				b->ep = b->wp + 1440*1024;
+				b->ep = b->wp + Maxkernel;
 				memmove(b->bp, &b->exec, sizeof(Exec));
 				b->wp += sizeof(Exec);
 				print("gz...");

+ 6 - 2
sys/src/boot/pc/bootld.c

@@ -5,6 +5,10 @@
 #include "fns.h"
 #include "io.h"
 
+enum {
+	Max9load = 1024*1024,
+};
+
 static int
 addbytes(char **dbuf, char *edbuf, char **sbuf, char *esbuf)
 {
@@ -46,7 +50,7 @@ bootpass(Boot *b, void *vbuf, int nbuf)
 			b->state = READ9LOAD;
 			b->bp = (char*)0x10000;
 			b->wp = b->bp;
-			b->ep = b->bp + 256*1024;
+			b->ep = b->bp + Max9load;
 			break;
 
 		case READ9LOAD:
@@ -75,7 +79,7 @@ Endofinput:
 			b->state = FAILED;
 			return FAIL;
 		}
-		if(size < 32*1024 || size > 256*1024) {
+		if(size < 32*1024 || size > Max9load) {
 			print("got %lud byte loader; not likely\n", size);
 			b->state = FAILED;
 			return FAIL;

+ 26 - 44
sys/src/cmd/ndb/dn.c

@@ -337,7 +337,10 @@ dnpurge(void)
 	unlock(&dnlock);
 }
 
-/* delete rp from *l, free rp */
+/*
+ *  delete rp from *l, free rp.
+ *  call with dnlock held.
+ */
 static void
 rrdelete(RR **l, RR *rp)
 {
@@ -347,7 +350,8 @@ rrdelete(RR **l, RR *rp)
 }
 
 /*
- *  check the age of resource records, free any that have timed out
+ *  check the age of resource records, free any that have timed out.
+ *  call with dnlock held.
  */
 void
 dnage(DN *dp)
@@ -383,55 +387,16 @@ dnagenever(void)
 
 	lock(&dnlock);
 
-	/* mark all referenced domain names */
+	/* mark referenced domain names in NS RRs */
 	for(i = 0; i < HTLEN; i++)
 		for(dp = ht[i]; dp; dp = dp->next) {
-			MARK(dp);
+//			MARK(dp);
 			for(rp = dp->rr; rp; rp = rp->next){
 				MARK(rp->owner);
-				if(rp->negative){
-					MARK(rp->negsoaowner);
-					continue;
-				}
 				switch(rp->type){
-				case Thinfo:
-					MARK(rp->cpu);
-					MARK(rp->os);
-					break;
-				case Ttxt:
-					break;
-				case Tcname:
-				case Tmb:
-				case Tmd:
-				case Tmf:
 				case Tns:
-				case Tmx:
-				case Tsrv:
 					MARK(rp->host);
 					break;
-				case Tmg:
-				case Tmr:
-					MARK(rp->mb);
-					break;
-				case Tminfo:
-					MARK(rp->rmb);
-					MARK(rp->mb);
-					break;
-				case Trp:
-					MARK(rp->rmb);
-					MARK(rp->rp);
-					break;
-				case Ta:
-				case Taaaa:
-					MARK(rp->ip);
-					break;
-				case Tptr:
-					MARK(rp->ptr);
-					break;
-				case Tsoa:
-					MARK(rp->host);
-					MARK(rp->rmb);
-					break;
 				}
 			}
 		}
@@ -690,6 +655,17 @@ putactivity(int recursive)
 	dnvars.mutex = 0;
 }
 
+int
+rrlistlen(RR *rp)
+{
+	int n;
+
+	n = 0;
+	for(; rp; rp = rp->next)
+		++n;
+	return n;
+}
+
 /*
  *  Attach a single resource record to a domain name (new->owner).
  *	- Avoid duplicates with already present RR's
@@ -797,18 +773,24 @@ void
 rrattach(RR *rp, int auth)
 {
 	RR *next;
+	DN *dp;
 
 	lock(&dnlock);
 	for(; rp; rp = next){
 		next = rp->next;
 		rp->next = nil;
+		dp = rp->owner;
 
 		/* avoid any outside spoofing */
 //		dnslog("rrattach: %s", rp->owner->name);
 		if(cfg.cachedb && !rp->db && inmyarea(rp->owner->name))
 			rrfree(rp);
-		else
+		else {
 			rrattach1(rp, auth);
+			if (rrlistlen(dp->rr) % 100 == 0)
+				dnslog("rrlookup(%s): rr list len is multiple"
+					" of 100", dp->name);
+		}
 	}
 	unlock(&dnlock);
 }

+ 4 - 3
sys/src/cmd/venti/srv/venti.c

@@ -172,8 +172,9 @@ threadmain(int argc, char *argv[])
 			blmsize = 0;
 		avail = ((vlong)stfree * mempcnt) / 100 - blmsize;
 		if (avail <= (1 + 2 + 6) * 1024 * 1024)
-			fprint(2, "bloom filter bigger than mem pcnt; "
-				"resorting to minimum values (9MB total)\n");
+			fprint(2, "%s: bloom filter bigger than mem pcnt; "
+				"resorting to minimum values (9MB total)\n",
+				argv0);
 		else {
 			if (avail >= 3840UL * 1024 * 1024)
 				avail = 3840UL * 1024 * 1024;	/* sanity */
@@ -200,7 +201,7 @@ threadmain(int argc, char *argv[])
 		bcmem = config.bcmem;
 	if(icmem == 0)
 		icmem = config.icmem;
-//	fprint(2, "mem %d bcmem %d icmem %d...", mem, bcmem, icmem);
+	fprint(2, "%s: mem %d bcmem %d icmem %d...", argv0, mem, bcmem, icmem);
 
 	if(haddr == nil)
 		haddr = config.haddr;