Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jun 2002 23:38:50 -0700 (PDT)
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 13355 for review
Message-ID:  <200206240638.g5O6co225547@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=13355

Change 13355 by julian@julian_jules1 on 2002/06/23 23:38:19

	MFC

Affected files ...

... //depot/projects/kse/bin/ps/ps.c#10 integrate
... //depot/projects/kse/gnu/usr.bin/binutils/gdb/Makefile#5 integrate
... //depot/projects/kse/sys/alpha/alpha/support.s#7 integrate
... //depot/projects/kse/sys/alpha/include/runq.h#2 integrate
... //depot/projects/kse/sys/arm/include/types.h#3 integrate
... //depot/projects/kse/sys/boot/common/ufsread.c#2 integrate
... //depot/projects/kse/sys/boot/efi/libefi/bootinfo.c#4 integrate
... //depot/projects/kse/sys/boot/i386/Makefile#4 integrate
... //depot/projects/kse/sys/boot/i386/boot2/Makefile#4 integrate
... //depot/projects/kse/sys/boot/i386/boot2/boot2.c#11 integrate
... //depot/projects/kse/sys/boot/i386/libi386/Makefile#5 integrate
... //depot/projects/kse/sys/boot/i386/libi386/bootinfo.c#6 integrate
... //depot/projects/kse/sys/boot/i386/loader/Makefile#9 integrate
... //depot/projects/kse/sys/boot/ia64/libski/bootinfo.c#5 integrate
... //depot/projects/kse/sys/boot/sparc64/loader/Makefile#8 integrate
... //depot/projects/kse/sys/boot/sparc64/loader/metadata.c#5 integrate
... //depot/projects/kse/sys/conf/NOTES#8 integrate
... //depot/projects/kse/sys/conf/files#39 integrate
... //depot/projects/kse/sys/ddb/db_run.c#5 integrate
... //depot/projects/kse/sys/dev/hea/eni_receive.c#3 integrate
... //depot/projects/kse/sys/dev/hea/eni_transmit.c#3 integrate
... //depot/projects/kse/sys/dev/hfa/fore_buffer.c#3 integrate
... //depot/projects/kse/sys/dev/hfa/fore_command.c#3 integrate
... //depot/projects/kse/sys/dev/hfa/fore_if.c#2 integrate
... //depot/projects/kse/sys/dev/hfa/fore_init.c#3 integrate
... //depot/projects/kse/sys/dev/hfa/fore_load.c#6 integrate
... //depot/projects/kse/sys/dev/hfa/fore_output.c#4 integrate
... //depot/projects/kse/sys/dev/hfa/fore_receive.c#3 integrate
... //depot/projects/kse/sys/dev/hfa/fore_stats.c#2 integrate
... //depot/projects/kse/sys/dev/hfa/fore_transmit.c#2 integrate
... //depot/projects/kse/sys/dev/hfa/hfa_freebsd.c#4 integrate
... //depot/projects/kse/sys/dev/sio/sio.c#16 integrate
... //depot/projects/kse/sys/dev/wi/if_wavelan_ieee.h#5 integrate
... //depot/projects/kse/sys/dev/wi/if_wireg.h#11 integrate
... //depot/projects/kse/sys/dev/wi/wi_hostap.h#3 integrate
... //depot/projects/kse/sys/gnu/i386/fpemul/load_store.c#2 integrate
... //depot/projects/kse/sys/gnu/i386/fpemul/reg_ld_str.c#2 integrate
... //depot/projects/kse/sys/i386/Makefile#3 integrate
... //depot/projects/kse/sys/i386/conf/Makefile#4 integrate
... //depot/projects/kse/sys/i386/conf/OLDCARD#1 branch
... //depot/projects/kse/sys/i386/i386/in_cksum.c#3 integrate
... //depot/projects/kse/sys/i386/i386/math_emulate.c#6 integrate
... //depot/projects/kse/sys/i386/i386/support.s#8 integrate
... //depot/projects/kse/sys/i386/i386/vm86.c#9 integrate
... //depot/projects/kse/sys/i386/include/in_cksum.h#4 integrate
... //depot/projects/kse/sys/i386/include/runq.h#2 integrate
... //depot/projects/kse/sys/i386/include/specialreg.h#2 integrate
... //depot/projects/kse/sys/i386/include/types.h#4 integrate
... //depot/projects/kse/sys/i386/isa/clock.c#12 integrate
... //depot/projects/kse/sys/ia64/ia32/imgact_ia32.c#3 integrate
... //depot/projects/kse/sys/ia64/ia64/pmap.c#25 integrate
... //depot/projects/kse/sys/ia64/ia64/support.s#10 integrate
... //depot/projects/kse/sys/ia64/ia64/trap.c#22 integrate
... //depot/projects/kse/sys/ia64/include/runq.h#2 integrate
... //depot/projects/kse/sys/kern/kern_exec.c#29 integrate
... //depot/projects/kse/sys/kern/kern_proc.c#73 integrate
... //depot/projects/kse/sys/kern/kern_subr.c#13 integrate
... //depot/projects/kse/sys/kern/kern_switch.c#59 integrate
... //depot/projects/kse/sys/kern/kern_synch.c#72 integrate
... //depot/projects/kse/sys/kern/subr_disklabel.c#9 integrate
... //depot/projects/kse/sys/kern/subr_diskslice.c#10 integrate
... //depot/projects/kse/sys/kern/sys_generic.c#28 integrate
... //depot/projects/kse/sys/kern/tty.c#27 integrate
... //depot/projects/kse/sys/kern/uipc_socket.c#18 integrate
... //depot/projects/kse/sys/kern/uipc_syscalls.c#17 integrate
... //depot/projects/kse/sys/kern/vfs_bio.c#19 integrate
... //depot/projects/kse/sys/kern/vfs_cluster.c#8 integrate
... //depot/projects/kse/sys/kern/vfs_init.c#6 integrate
... //depot/projects/kse/sys/kern/vfs_subr.c#34 integrate
... //depot/projects/kse/sys/kern/vfs_syscalls.c#28 integrate
... //depot/projects/kse/sys/kern/vfs_vnops.c#26 integrate
... //depot/projects/kse/sys/net/bpf.h#4 integrate
... //depot/projects/kse/sys/net/bridge.c#10 integrate
... //depot/projects/kse/sys/net/if_ethersubr.c#14 integrate
... //depot/projects/kse/sys/net/if_ieee80211.h#4 integrate
... //depot/projects/kse/sys/netatm/atm_if.h#6 integrate
... //depot/projects/kse/sys/netgraph/ng_pppoe.c#8 integrate
... //depot/projects/kse/sys/netinet/ip_divert.c#15 integrate
... //depot/projects/kse/sys/netinet/ip_dummynet.c#7 integrate
... //depot/projects/kse/sys/netinet/ip_dummynet.h#6 integrate
... //depot/projects/kse/sys/netinet/ip_fw.c#16 integrate
... //depot/projects/kse/sys/netinet/ip_fw.h#8 integrate
... //depot/projects/kse/sys/netinet/ip_input.c#22 integrate
... //depot/projects/kse/sys/netinet/ip_output.c#23 integrate
... //depot/projects/kse/sys/netinet/ip_var.h#5 integrate
... //depot/projects/kse/sys/netinet/tcp_input.c#22 integrate
... //depot/projects/kse/sys/netinet/tcp_output.c#9 integrate
... //depot/projects/kse/sys/netinet/tcp_subr.c#16 integrate
... //depot/projects/kse/sys/netinet/udp_usrreq.c#17 integrate
... //depot/projects/kse/sys/pccard/i82365.h#5 integrate
... //depot/projects/kse/sys/pccard/pccard.c#10 integrate
... //depot/projects/kse/sys/pccard/pcic.c#14 integrate
... //depot/projects/kse/sys/pccard/pcic_pci.c#25 integrate
... //depot/projects/kse/sys/pccard/pcic_pci.h#7 integrate
... //depot/projects/kse/sys/pccard/plxcard.c#2 delete
... //depot/projects/kse/sys/pccard/plxcardreg.h#2 delete
... //depot/projects/kse/sys/powerpc/include/runq.h#2 integrate
... //depot/projects/kse/sys/powerpc/include/types.h#3 integrate
... //depot/projects/kse/sys/powerpc/powerpc/copyinout.c#5 integrate
... //depot/projects/kse/sys/sparc64/include/clock.h#4 integrate
... //depot/projects/kse/sys/sparc64/include/runq.h#2 integrate
... //depot/projects/kse/sys/sparc64/sparc64/critical.c#2 integrate
... //depot/projects/kse/sys/sparc64/sparc64/elf_machdep.c#5 integrate
... //depot/projects/kse/sys/sparc64/sparc64/pmap.c#30 integrate
... //depot/projects/kse/sys/sparc64/sparc64/support.s#12 integrate
... //depot/projects/kse/sys/sys/_sigset.h#2 integrate
... //depot/projects/kse/sys/sys/ktr.h#6 integrate
... //depot/projects/kse/sys/sys/mbuf.h#9 integrate
... //depot/projects/kse/sys/sys/mount.h#12 integrate
... //depot/projects/kse/sys/sys/socket.h#9 integrate
... //depot/projects/kse/sys/sys/stat.h#5 integrate
... //depot/projects/kse/sys/sys/systm.h#26 integrate
... //depot/projects/kse/sys/sys/tree.h#1 branch
... //depot/projects/kse/sys/sys/types.h#16 integrate
... //depot/projects/kse/sys/sys/uio.h#8 integrate
... //depot/projects/kse/sys/sys/vnode.h#25 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_alloc.c#11 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_balloc.c#6 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_extern.h#7 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_inode.c#10 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_snapshot.c#13 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_softdep.c#13 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_softdep_stub.c#5 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_subr.c#4 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_tables.c#3 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_vfsops.c#21 integrate
... //depot/projects/kse/sys/ufs/ffs/ffs_vnops.c#6 integrate
... //depot/projects/kse/sys/ufs/ffs/fs.h#8 integrate
... //depot/projects/kse/sys/ufs/ffs/softdep.h#3 integrate
... //depot/projects/kse/sys/ufs/ufs/dinode.h#4 integrate
... //depot/projects/kse/sys/ufs/ufs/inode.h#4 integrate
... //depot/projects/kse/sys/ufs/ufs/quota.h#5 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_acl.c#11 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_bmap.c#4 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_extattr.c#13 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_extern.h#7 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_inode.c#7 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_lookup.c#11 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_quota.c#10 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_readwrite.c#10 integrate
... //depot/projects/kse/sys/ufs/ufs/ufs_vnops.c#14 integrate
... //depot/projects/kse/sys/ufs/ufs/ufsmount.h#6 integrate
... //depot/projects/kse/sys/vm/device_pager.c#4 integrate
... //depot/projects/kse/sys/vm/phys_pager.c#4 integrate
... //depot/projects/kse/sys/vm/swap_pager.c#10 integrate
... //depot/projects/kse/sys/vm/vm_glue.c#32 integrate
... //depot/projects/kse/sys/vm/vm_kern.c#9 integrate
... //depot/projects/kse/sys/vm/vm_map.c#22 integrate
... //depot/projects/kse/sys/vm/vm_mmap.c#17 integrate
... //depot/projects/kse/sys/vm/vm_pager.c#7 integrate
... //depot/projects/kse/sys/vm/vm_unix.c#6 integrate
... //depot/projects/kse/sys/vm/vnode_pager.c#14 integrate

Differences ...

==== //depot/projects/kse/bin/ps/ps.c#10 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.54 2002/06/06 21:21:25 jmallett Exp $");
+__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.55 2002/06/20 14:55:53 sobomax Exp $");
 
 #ifndef lint
 static const char copyright[] =
@@ -114,6 +114,12 @@
 
 static kvm_t *kd;
 
+#if defined(LAZY_PS)
+#define PS_ARGS	"aCcefghjLlM:mN:O:o:p:rSTt:U:uvwxZ"
+#else
+#define PS_ARGS	"aCceghjLlM:mN:O:o:p:rSTt:U:uvwxZ"
+#endif
+
 int
 main(int argc, char *argv[])
 {
@@ -123,11 +129,11 @@
 	dev_t ttydev;
 	pid_t pid;
 	uid_t *uids;
-	int all, ch, flag, i, _fmt, lineno, nentries, dropgid;
+	int all, ch, flag, i, _fmt, lineno, nentries, nocludge, dropgid;
 	int prtheader, wflag, what, xflg, uid, nuids;
 	char *cols;
 	char errbuf[_POSIX2_LINE_MAX];
-	const char *nlistf, *memf;
+	const char *cp, *nlistf, *memf;
 
 	(void) setlocale(LC_ALL, "");
 	/* Set the time to what it is right now. */
@@ -143,8 +149,25 @@
 	else
 		termwidth = ws.ws_col - 1;
 
-	if (argc > 1)
-		argv[1] = kludge_oldps_options(argv[1]);
+	/*
+	 * Don't apply a kludge if the first argument is an option taking an
+	 * argument
+	 */
+	if (argc > 1) {
+		nocludge = 0;
+		if (argv[1][0] == '-') {
+			for (cp = PS_ARGS; *cp != '\0'; cp++) {
+				if (*cp != ':')
+					continue;
+				if (*(cp - 1) == argv[1][1]) {
+					nocludge = 1;
+					break;
+				}
+			}
+		}
+		if (nocludge == 0)
+			argv[1] = kludge_oldps_options(argv[1]);
+	}
 
 	all = _fmt = prtheader = wflag = xflg = 0;
 	pid = -1;
@@ -153,12 +176,7 @@
 	ttydev = NODEV;
 	dropgid = 0;
 	memf = nlistf = _PATH_DEVNULL;
-	while ((ch = getopt(argc, argv,
-#if defined(LAZY_PS)
-	    "aCcefghjLlM:mN:O:o:p:rSTt:U:uvwxZ")) != -1)
-#else
-	    "aCceghjLlM:mN:O:o:p:rSTt:U:uvwxZ")) != -1)
-#endif
+	while ((ch = getopt(argc, argv, PS_ARGS)) != -1)
 		switch((char)ch) {
 		case 'a':
 			all = 1;

==== //depot/projects/kse/gnu/usr.bin/binutils/gdb/Makefile#5 (text+ko) ====

@@ -1,9 +1,10 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.56 2002/05/19 18:25:40 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/gdb/Makefile,v 1.59 2002/06/22 17:07:45 obrien Exp $
 
 .include "../Makefile.inc0"
 
 .PATH: ${SRCDIR}/binutils
 
+NOSHARED?=yes
 PROG=	gdb
 XSRCS=	annotate.c ax-general.c ax-gdb.c bcache.c blockframe.c		\
 	breakpoint.c buildsym.c c-exp.y c-lang.c c-typeprint.c		\
@@ -40,18 +41,18 @@
 CFLAGS+=	-I${GDBDIR}/gdb/config
 DPADD=		${RELTOP}/libbfd/libbfd.a
 DPADD+=		${RELTOP}/libopcodes/libopcodes.a
-DPADD+=		${LIBREADLINE}
 DPADD+=		${LIBGNUREGEX}
 DPADD+=		${RELTOP}/libiberty/libiberty.a
+DPADD+=		${LIBREADLINE}
 DPADD+=		${LIBTERMCAP}
 LDADD+=		${RELTOP}/libbfd/libbfd.a
 LDADD+=		${RELTOP}/libopcodes/libopcodes.a
-LDADD+=		-lreadline
 LDADD+=		-lgnuregex
 LDADD+=		${RELTOP}/libiberty/libiberty.a
+LDADD+=		-lreadline
 LDADD+=		-ltermcap
 
-GDBDIR=	${.CURDIR}/../../../../contrib/gdb.291
+GDBDIR=	${.CURDIR}/../../../../contrib/gdb
 .PATH:	${GDBDIR}/gdb
 .PATH:	${SRCDIR}/opcodes
 

==== //depot/projects/kse/sys/alpha/alpha/support.s#7 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/alpha/support.s,v 1.10 2002/05/26 16:03:12 dfr Exp $
+ * $FreeBSD: src/sys/alpha/alpha/support.s,v 1.12 2002/06/20 07:40:53 peter Exp $
  */
 
 /*
@@ -150,11 +150,6 @@
 	RET
 	END(fubyte)
 	
-	LEAF(suibyte, 2)
-	ldiq	v0, -1
-	RET
-	END(suibyte)
-
 	LEAF(fusufault, 0)
 	ldq	t0, PC_CURTHREAD(pcpup)
 	ldq	t0, TD_PCB(t0)
@@ -164,8 +159,8 @@
 	END(fusufault)
 	
 LEAF(fswintrberr, 0)
-XLEAF(fuswintr, 2)				/* XXX what is a 'word'? */
-XLEAF(suswintr, 2)				/* XXX what is a 'word'? */
+XLEAF(fuswintr, 2)			/* XXX 16 bit short for profiling */
+XLEAF(suswintr, 2)			/* XXX 16 bit short for profiling */
 	LDGP(pv)
 	ldiq	v0, -1
 	RET

==== //depot/projects/kse/sys/alpha/include/runq.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/include/runq.h,v 1.1 2002/05/25 01:12:15 jake Exp $
+ * $FreeBSD: src/sys/alpha/include/runq.h,v 1.2 2002/06/20 06:21:19 peter Exp $
  */
 
 #ifndef	_MACHINE_RUNQ_H_
@@ -36,7 +36,7 @@
 #define	RQB_BIT(pri)	(1UL << ((pri) & (RQB_BPW - 1)))
 #define	RQB_WORD(pri)	((pri) >> RQB_L2BPW)
 
-#define	RQB_FFS(word)	(ffs64(word))
+#define	RQB_FFS(word)	(ffs64(word) - 1)
 
 /*
  * Type of run queue status word.

==== //depot/projects/kse/sys/arm/include/types.h#3 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)types.h	8.3 (Berkeley) 1/5/94
- * $FreeBSD: src/sys/arm/include/types.h,v 1.2 2002/03/20 18:22:19 alfred Exp $
+ * $FreeBSD: src/sys/arm/include/types.h,v 1.3 2002/06/23 21:57:17 iedowse Exp $
  */
 
 #ifndef _MACHINE_TYPES_H_
@@ -49,7 +49,7 @@
 
 typedef	unsigned int	vm_offset_t;
 typedef	__int64_t	vm_ooffset_t;
-typedef	unsigned int	vm_pindex_t;
+typedef	__uint64_t	vm_pindex_t;
 typedef	unsigned int	vm_size_t;
 
 typedef	__int32_t	register_t;

==== //depot/projects/kse/sys/boot/common/ufsread.c#2 (text+ko) ====

@@ -1,4 +1,13 @@
 /*
+ * Copyright (c) 2002 Networks Associates Technology, Inc.
+ * All rights reserved.
+ *
+ * This software was developed for the FreeBSD Project by Marshall
+ * Kirk McKusick and Network Associates Laboratories, the Security
+ * Research Division of Network Associates, Inc. under DARPA/SPAWAR
+ * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS
+ * research program
+ *
  * Copyright (c) 1998 Robert Nordier
  * All rights reserved.
  *
@@ -14,34 +23,36 @@
  */
 
 /*
- * $FreeBSD: src/sys/boot/common/ufsread.c,v 1.3 2002/06/05 12:00:49 phk Exp $
+ * $FreeBSD: src/sys/boot/common/ufsread.c,v 1.5 2002/06/21 22:33:56 jake Exp $
  */
 
+#include <ufs/ufs/dinode.h>
 #include <ufs/ffs/fs.h>
-#include <ufs/ufs/dinode.h>
 
 /*
  * We use 4k `virtual' blocks for filesystem data, whatever the actual
  * filesystem block size. FFS blocks are always a multiple of 4k.
  */
 #define VBLKSIZE	4096
+#define	VBLKSHIFT	12
 #define VBLKMASK	(VBLKSIZE - 1)
 #define DBPERVBLK	(VBLKSIZE / DEV_BSIZE)
-#define IPERVBLK	(VBLKSIZE / sizeof(struct dinode))
-#define INDIRPERVBLK	(VBLKSIZE / sizeof(ufs_daddr_t))
-#define INO_TO_VBA(fs, x) (fsbtodb(fs, ino_to_fsba(fs, x)) + \
-    (ino_to_fsbo(fs, x) / IPERVBLK) * DBPERVBLK)
-#define INO_TO_VBO(fs, x) (ino_to_fsbo(fs, x) % IPERVBLK)
+#define INDIRPERVBLK(fs) (NINDIR(fs) / ((fs)->fs_bsize / VBLKSIZE))
+#define IPERVBLK(fs)	(INOPB(fs) / ((fs)->fs_bsize / VBLKSIZE))
+#define INO_TO_VBA(fs, ipervblk, x) \
+    (fsbtodb(fs, cgimin(fs, ino_to_cg(fs, x))) + \
+    (((x) % (fs)->fs_ipg) / (ipervblk) * DBPERVBLK))
+#define INO_TO_VBO(ipervblk, x) ((x) % ipervblk)
 #define FS_TO_VBA(fs, fsb, off) (fsbtodb(fs, fsb) + \
     ((off) / VBLKSIZE) * DBPERVBLK)
 #define FS_TO_VBO(fs, fsb, off) ((off) & VBLKMASK)
 
 /* Buffers that must not span a 64k boundary. */
 struct dmadat {
-	char blkbuf[VBLKSIZE];				/* filesystem blocks */
-	ufs_daddr_t indbuf[VBLKSIZE / sizeof(ufs_daddr_t)]; /* indir blocks */
-	char sbbuf[SBSIZE];				/* superblock */
-	char secbuf[DEV_BSIZE];				/* for MBR/disklabel */
+	char blkbuf[VBLKSIZE];	/* filesystem blocks */
+	char indbuf[VBLKSIZE];	/* indir blocks */
+	char sbbuf[SBLOCKSIZE];	/* superblock */
+	char secbuf[DEV_BSIZE];	/* for MBR/disklabel */
 };
 static struct dmadat *dmadat;
 
@@ -61,16 +72,16 @@
 
 	fs_off = 0;
 	while ((n = fsread(*ino, buf, DEV_BSIZE)) > 0)
-	for (s = buf; s < buf + DEV_BSIZE;) {
-		d = (void *)s;
-		if (ls)
-			printf("%s ", d->d_name);
-		else if (!strcmp(name, d->d_name)) {
-			*ino = d->d_fileno;
-			return d->d_type;
+		for (s = buf; s < buf + DEV_BSIZE;) {
+			d = (void *)s;
+			if (ls)
+				printf("%s ", d->d_name);
+			else if (!strcmp(name, d->d_name)) {
+				*ino = d->d_fileno;
+				return d->d_type;
+			}
+			s += d->d_reclen;
 		}
-		s += d->d_reclen;
-	}
 	if (n != -1 && ls)
 		printf("\n");
 	return 0;
@@ -95,8 +106,8 @@
 		if (!*path)
 			break;
 		for (s = path; *s && *s != '/'; s++);
-			if ((n = s - path) > MAXNAMLEN)
-				return 0;
+		if ((n = s - path) > MAXNAMLEN)
+			return 0;
 		ls = *path == '?' && n == 1 && !*s;
 		memcpy(name, path, n);
 		name[n] = 0;
@@ -111,28 +122,134 @@
 	return dt == DT_REG ? ino : 0;
 }
 
+#ifndef __sparc64__
+#define UFS1_ONLY
+#endif
+#ifdef UFS1_ONLY
+
 static ssize_t
 fsread(ino_t inode, void *buf, size_t nbyte)
 {
-	static struct dinode din;
+	static struct ufs1_dinode dp1;
 	static ino_t inomap;
-	static daddr_t blkmap, indmap;
 	char *blkbuf;
-	ufs_daddr_t *indbuf;
+	caddr_t indbuf;
 	struct fs *fs;
 	char *s;
-	ufs_daddr_t lbn, addr;
-	daddr_t vbaddr;
-	size_t n, nb, off, vboff;
+	size_t n, nb, size, off, vboff;
+	long lbn;
+	ufs1_daddr_t addr, vbaddr;
+	static ufs1_daddr_t blkmap, indmap;
 
 	blkbuf = dmadat->blkbuf;
 	indbuf = dmadat->indbuf;
 	fs = (struct fs *)dmadat->sbbuf;
 	if (!dsk_meta) {
 		inomap = 0;
-		if (dskread(fs, SBOFF / DEV_BSIZE, SBSIZE / DEV_BSIZE))
+		if (dskread(fs, SBLOCK_UFS1 / DEV_BSIZE, SBLOCKSIZE / DEV_BSIZE))
+			return -1;
+		if (fs->fs_magic != FS_UFS1_MAGIC) {
+			printf("Not ufs\n");
+			return -1;
+		}
+		dsk_meta++;
+	}
+	if (!inode)
+		return 0;
+	if (inomap != inode) {
+		n = IPERVBLK(fs);
+		if (dskread(blkbuf, INO_TO_VBA(fs, n, inode), DBPERVBLK))
 			return -1;
-		if (fs->fs_magic != FS_MAGIC) {
+		dp1 = ((struct ufs1_dinode *)blkbuf)[INO_TO_VBO(n, inode)];
+		inomap = inode;
+		fs_off = 0;
+		blkmap = indmap = 0;
+	}
+	s = buf;
+	size = dp1.di_size;
+	n = size - fs_off;
+	if (nbyte > n)
+		nbyte = n;
+	nb = nbyte;
+	while (nb) {
+		lbn = lblkno(fs, fs_off);
+		off = blkoff(fs, fs_off);
+		if (lbn < NDADDR) {
+			addr = dp1.di_db[lbn];
+		} else {
+			n = INDIRPERVBLK(fs);
+			addr = dp1.di_ib[0];
+			vbaddr = fsbtodb(fs, addr) +
+			    (lbn - NDADDR) / n * DBPERVBLK;
+			if (indmap != vbaddr) {
+				if (dskread(indbuf, vbaddr, DBPERVBLK))
+					return -1;
+				indmap = vbaddr;
+			}
+			addr = ((ufs1_daddr_t *)indbuf)[(lbn - NDADDR) % n];
+		}
+		vbaddr = fsbtodb(fs, addr) + (off >> VBLKSHIFT) * DBPERVBLK;
+		vboff = off & VBLKMASK;
+		n = sblksize(fs, size, lbn) - (off & ~VBLKMASK);
+		if (n > VBLKSIZE)
+			n = VBLKSIZE;
+		if (blkmap != vbaddr) {
+			if (dskread(blkbuf, vbaddr, n >> DEV_BSHIFT))
+				return -1;
+			blkmap = vbaddr;
+		}
+		n -= vboff;
+		if (n > nb)
+			n = nb;
+		memcpy(s, blkbuf + vboff, n);
+		s += n;
+		fs_off += n;
+		nb -= n;
+	}
+	return nbyte;
+}
+
+#else /* UFS1_AND_UFS2 */
+
+/*
+ * Possible superblock locations ordered from most to least likely.
+ */
+static int sblock_try[] = SBLOCKSEARCH;
+
+#define DIP(field) fs->fs_magic == FS_UFS1_MAGIC ? dp1.field : dp2.field
+
+static ssize_t
+fsread(ino_t inode, void *buf, size_t nbyte)
+{
+	static struct ufs1_dinode dp1;
+	static struct ufs2_dinode dp2;
+	static ino_t inomap;
+	char *blkbuf;
+	caddr_t indbuf;
+	struct fs *fs;
+	char *s;
+	size_t n, nb, size, off, vboff;
+	ufs_lbn_t lbn;
+	ufs2_daddr_t addr, vbaddr;
+	static ufs2_daddr_t blkmap, indmap;
+
+	blkbuf = dmadat->blkbuf;
+	indbuf = dmadat->indbuf;
+	fs = (struct fs *)dmadat->sbbuf;
+	if (!dsk_meta) {
+		inomap = 0;
+		for (n = 0; sblock_try[n] != -1; n++) {
+			if (dskread(fs, sblock_try[n] / DEV_BSIZE,
+			    SBLOCKSIZE / DEV_BSIZE))
+				return -1;
+			if ((fs->fs_magic == FS_UFS1_MAGIC ||
+			    (fs->fs_magic == FS_UFS2_MAGIC &&
+			    fs->fs_sblockloc == numfrags(fs, sblock_try[n]))) &&
+			    fs->fs_bsize <= MAXBSIZE &&
+			    fs->fs_bsize >= sizeof(struct fs))
+				break;
+		}
+		if (sblock_try[n] == -1) {
 			printf("Not ufs\n");
 			return -1;
 		}
@@ -141,35 +258,51 @@
 	if (!inode)
 		return 0;
 	if (inomap != inode) {
-		if (dskread(blkbuf, INO_TO_VBA(fs, inode), DBPERVBLK))
+		n = IPERVBLK(fs);
+		if (dskread(blkbuf, INO_TO_VBA(fs, n, inode), DBPERVBLK))
 			return -1;
-		din = ((struct dinode *)blkbuf)[INO_TO_VBO(fs, inode)];
+		n = INO_TO_VBO(n, inode);
+		if (fs->fs_magic == FS_UFS1_MAGIC)
+			dp1 = ((struct ufs1_dinode *)blkbuf)[n];
+		else
+			dp2 = ((struct ufs2_dinode *)blkbuf)[n];
 		inomap = inode;
 		fs_off = 0;
 		blkmap = indmap = 0;
 	}
 	s = buf;
-	if (nbyte > (n = din.di_size - fs_off))
+	size = DIP(di_size);
+	n = size - fs_off;
+	if (nbyte > n)
 		nbyte = n;
 	nb = nbyte;
 	while (nb) {
 		lbn = lblkno(fs, fs_off);
 		off = blkoff(fs, fs_off);
-		if (lbn < NDADDR)
-			addr = din.di_db[lbn];
-		else {
-			vbaddr = FS_TO_VBA(fs, din.di_ib[0], sizeof(indbuf[0]) *
-			((lbn - NDADDR) % NINDIR(fs)));
+		if (lbn < NDADDR) {
+			addr = DIP(di_db[lbn]);
+		} else if (lbn < NDADDR + NINDIR(fs)) {
+			n = INDIRPERVBLK(fs);
+			addr = DIP(di_ib[0]);
+			vbaddr = fsbtodb(fs, addr) +
+			    (lbn - NDADDR) / n * DBPERVBLK;
 			if (indmap != vbaddr) {
 				if (dskread(indbuf, vbaddr, DBPERVBLK))
 					return -1;
 				indmap = vbaddr;
 			}
-			addr = indbuf[(lbn - NDADDR) % INDIRPERVBLK];
+			n = (lbn - NDADDR) % n;
+			if (fs->fs_magic == FS_UFS1_MAGIC)
+				addr = ((ufs1_daddr_t *)indbuf)[n];
+			else
+				addr = ((ufs2_daddr_t *)indbuf)[n];
+		} else {
+			printf("file too big\n");
+			return -1;
 		}
-		vbaddr = FS_TO_VBA(fs, addr, off);
-		vboff = FS_TO_VBO(fs, addr, off);
-		n = dblksize(fs, &din, lbn) - (off & ~VBLKMASK);
+		vbaddr = fsbtodb(fs, addr) + (off >> VBLKSHIFT) * DBPERVBLK;
+		vboff = off & VBLKMASK;
+		n = sblksize(fs, size, lbn) - (off & ~VBLKMASK);
 		if (n > VBLKSIZE)
 			n = VBLKSIZE;
 		if (blkmap != vbaddr) {
@@ -187,3 +320,5 @@
 	}
 	return nbyte;
 }
+
+#endif /* UFS1_AND_UFS2 */

==== //depot/projects/kse/sys/boot/efi/libefi/bootinfo.c#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/efi/libefi/bootinfo.c,v 1.5 2001/11/19 07:09:47 peter Exp $
+ * $FreeBSD: src/sys/boot/efi/libefi/bootinfo.c,v 1.6 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -55,6 +55,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/kse/sys/boot/i386/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/Makefile,v 1.16 2002/05/11 21:41:03 peter Exp $
+# $FreeBSD: src/sys/boot/i386/Makefile,v 1.18 2002/06/21 10:59:57 phk Exp $
 
 SUBDIR=		mbr boot0 btx boot2 cdboot kgzldr libi386 loader
 

==== //depot/projects/kse/sys/boot/i386/boot2/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.29 2002/06/05 12:30:41 phk Exp $
+# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.31 2002/06/21 11:00:00 phk Exp $
 
 PROG=		boot2
 NOMAN=

==== //depot/projects/kse/sys/boot/i386/boot2/boot2.c#11 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 /*
- * $FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.42 2002/06/05 11:10:38 phk Exp $
+ * $FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.43 2002/06/21 06:18:01 mckusick Exp $
  */
 
 #include <sys/param.h>
@@ -73,9 +73,10 @@
 
 #define TYPE_AD		0
 #define TYPE_WD		1
-#define TYPE_WFD 	2
-#define TYPE_FD		3
-#define TYPE_DA		4
+#define TYPE_DA		2
+#define TYPE_MAXHARD	TYPE_DA
+#define TYPE_WFD 	3
+#define TYPE_FD		4
 
 extern uint32_t _end;
 
@@ -97,8 +98,8 @@
     RBX_VERBOSE
 };
 
-static const char *const dev_nm[] = {"ad", "wd", "  ", "fd", "da"};
-static const unsigned dev_maj[] = {30, 0, 1, 2, 4};
+static const char *const dev_nm[NDEV] = {"ad", "wd", "da", "  ", "fd"};
+static const unsigned char dev_maj[NDEV] = {30, 0, 4, 1, 2};
 
 static struct dsk {
     unsigned drive;
@@ -111,16 +112,14 @@
 } dsk;
 static char cmd[512];
 static char kname[1024];
-static uint32_t opts;
+static uint32_t opts = RB_BOOTINFO;
 static struct bootinfo bootinfo;
 static uint8_t ioctrl = IO_KEYBOARD;
 
 void exit(int);
 static void load(const char *);
 static int parse(char *);
-static ino_t lookup(const char *);
 static int xfsread(ino_t, void *, size_t);
-static ssize_t fsread(ino_t, void *, size_t);
 static int dskread(void *, unsigned, unsigned);
 static int printf(const char *,...);
 static int putchar(int);
@@ -131,16 +130,17 @@
 static int xgetc(int);
 static int getc(int);
 
+#if 1
 #define memcpy __builtin_memcpy
-
-static inline void
-readfile(const char *fname, void *buf, size_t size)
+#else
+static void memcpy(char *, const char *, int);
+static void
+memcpy(char *dst, const char *src, int len)
 {
-    ino_t ino;
-
-    if ((ino = lookup(fname)))
-	fsread(ino, buf, size);
+    while (len--)
+	*dst++ = *src++;
 }
+#endif
 
 static inline int
 strcmp(const char *s1, const char *s2)
@@ -151,15 +151,14 @@
 
 #include "ufsread.c"
 
-static inline int
-getchar(void)
+static int
+xfsread(ino_t inode, void *buf, size_t nbyte)
 {
-    int c;
-
-    c = xgetc(0);
-    if (c == '\r')
-	c = '\n';
-    return c;
+    if (fsread(inode, buf, nbyte) != nbyte) {
+	printf("Invalid %s\n", "format");
+	return -1;
+    }
+    return 0;
 }
 
 static inline void
@@ -169,12 +168,13 @@
     int c;
 
     s = str;
-    do {
-	switch (c = getchar()) {
+    for (;;) {
+	switch (c = xgetc(0)) {
 	case 0:
 	    break;
+	case '\177':
+	    c = '\b';
 	case '\b':
-	case '\177':
 	    if (s > str) {
 		s--;
 		putchar('\b');
@@ -183,15 +183,16 @@
 		c = 0;
 	    break;
 	case '\n':
+	case '\r':
 	    *s = 0;
-	    break;
+	    return;
 	default:
 	    if (s - str < size - 1)
 		*s++ = c;
 	}
 	if (c)
 	    putchar(c);
-    } while (c != '\n');
+    }
 }
 
 static inline uint32_t
@@ -220,6 +221,7 @@
 main(void)
 {
     int autoboot, i;
+    ino_t ino;
 
     dmadat = (void *)(roundup2(__base + _end, 0x10000) - __base);
     v86.ctl = V86_FLAGS;
@@ -238,7 +240,10 @@
     /* Process configuration file */
 
     autoboot = 1;
-    readfile(PATH_CONFIG, cmd, sizeof(cmd));
+
+    if ((ino = lookup(PATH_CONFIG)))
+	fsread(ino, cmd, sizeof(cmd));
+
     if (*cmd) {
 	printf("%s: %s", PATH_CONFIG, cmd);
 	if (parse(cmd))
@@ -328,7 +333,7 @@
 	    return;
 	p += hdr.ex.a_data + roundup2(hdr.ex.a_bss, PAGE_SIZE);
 	bootinfo.bi_symtab = VTOP(p);
-	memcpy(p, &hdr.ex.a_syms, sizeof(hdr.ex.a_syms));
+	memcpy(p, (char *)&hdr.ex.a_syms, sizeof(hdr.ex.a_syms));
 	p += sizeof(hdr.ex.a_syms);
 	if (hdr.ex.a_syms) {
 	    if (xfsread(ino, p, hdr.ex.a_syms))
@@ -365,7 +370,7 @@
 	    if (xfsread(ino, &es, sizeof(es)))
 		return;
 	    for (i = 0; i < 2; i++) {
-		memcpy(p, &es[i].sh_size, sizeof(es[i].sh_size));
+		memcpy(p, (char *)&es[i].sh_size, sizeof(es[i].sh_size));
 		p += sizeof(es[i].sh_size);
 		fs_off = es[i].sh_offset;
 		if (xfsread(ino, p, es[i].sh_size))
@@ -378,7 +383,7 @@
     bootinfo.bi_esymtab = VTOP(p);
     bootinfo.bi_kernelname = VTOP(fname);
     bootinfo.bi_bios_dev = dsk.drive;
-    __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),
+    __exec((caddr_t)addr, opts & RBX_MASK,
 	   MAKEBOOTDEV(dev_maj[dsk.type], 0, dsk.slice, dsk.unit, dsk.part),
 	   0, 0, 0, VTOP(&bootinfo));
 }
@@ -449,9 +454,8 @@
 		arg += 2;
 		if (drv == -1)
 		    drv = dsk.unit;
-		dsk.drive = (dsk.type == TYPE_WD ||
-			     dsk.type == TYPE_AD ||
-			     dsk.type == TYPE_DA ? DRV_HARD : 0) + drv;
+		dsk.drive = (dsk.type <= TYPE_MAXHARD
+			     ? DRV_HARD : 0) + drv;
 		dsk_meta = 0;
 		fsread(0, NULL, 0);
 	    }
@@ -467,16 +471,6 @@
 }
 
 static int
-xfsread(ino_t inode, void *buf, size_t nbyte)
-{
-    if (fsread(inode, buf, nbyte) != nbyte) {
-	printf("Invalid %s\n", "format");
-	return -1;
-    }
-    return 0;
-}
-
-static int
 dskread(void *buf, unsigned lba, unsigned nblk)
 {
     struct dos_partition *dp;

==== //depot/projects/kse/sys/boot/i386/libi386/Makefile#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.25 2002/05/13 11:09:06 ru Exp $
+# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.27 2002/06/21 11:00:00 phk Exp $
 #
 LIB=			i386
 INTERNALLIB=		true

==== //depot/projects/kse/sys/boot/i386/libi386/bootinfo.c#6 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/i386/libi386/bootinfo.c,v 1.32 2002/01/04 07:59:27 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/libi386/bootinfo.c,v 1.33 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -53,6 +53,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/kse/sys/boot/i386/loader/Makefile#9 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/loader/Makefile,v 1.57 2002/05/10 00:53:45 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/loader/Makefile,v 1.59 2002/06/21 11:00:00 phk Exp $
 
 BASE=		loader
 PROG=		${BASE}

==== //depot/projects/kse/sys/boot/ia64/libski/bootinfo.c#5 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/ia64/libski/bootinfo.c,v 1.5 2001/11/19 07:05:09 peter Exp $
+ * $FreeBSD: src/sys/boot/ia64/libski/bootinfo.c,v 1.6 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -54,6 +54,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/kse/sys/boot/sparc64/loader/Makefile#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/sparc64/loader/Makefile,v 1.8 2002/05/28 23:09:59 jake Exp $
+# $FreeBSD: src/sys/boot/sparc64/loader/Makefile,v 1.9 2002/06/21 22:34:51 jake Exp $
 
 BASE=		loader
 PROG=		${BASE}
@@ -13,7 +13,7 @@
 
 LOADER_DISK_SUPPORT?=	yes
 LOADER_UFS_SUPPORT?=	yes
-LOADER_CD9660_SUPPORT?=	no
+LOADER_CD9660_SUPPORT?=	yes
 LOADER_NET_SUPPORT?=	no

>>> TRUNCATED FOR MAIL (1000 lines) <<<

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206240638.g5O6co225547>