From owner-p4-projects Sun Jun 23 23:42:29 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 67DDD37B407; Sun, 23 Jun 2002 23:39:55 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 82C3037B437 for ; Sun, 23 Jun 2002 23:38:52 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g5O6co225547 for perforce@freebsd.org; Sun, 23 Jun 2002 23:38:50 -0700 (PDT) (envelope-from julian@freebsd.org) Date: Sun, 23 Jun 2002 23:38:50 -0700 (PDT) Message-Id: <200206240638.g5O6co225547@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer Subject: PERFORCE change 13355 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 -__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 #include -#include /* * 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 @@ -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 @@ -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 @@ -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 @@ -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