Date: Sat, 26 Jun 2010 03:08:12 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r209528 - in user/jmallett/octeon: . bin/pkill bin/sh cddl/contrib/opensolaris/lib/libdtrace/common contrib/binutils/binutils/doc etc/mtree gnu/usr.bin/binutils/ld lib lib/libc/mips/sys... Message-ID: <201006260308.o5Q38CxF098592@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jmallett Date: Sat Jun 26 03:08:12 2010 New Revision: 209528 URL: http://svn.freebsd.org/changeset/base/209528 Log: Merge from head and expand pte.h's description of cache coherency attributes at the same time. Added: user/jmallett/octeon/Makefile.mips - copied unchanged from r209526, head/Makefile.mips user/jmallett/octeon/share/man/man4/aibs.4 - copied unchanged from r209526, head/share/man/man4/aibs.4 user/jmallett/octeon/sys/conf/ldscript.mips.n32 - copied unchanged from r209526, head/sys/conf/ldscript.mips.n32 user/jmallett/octeon/sys/dev/acpi_support/atk0110.c - copied unchanged from r209526, head/sys/dev/acpi_support/atk0110.c user/jmallett/octeon/sys/kern/kern_et.c - copied unchanged from r209526, head/sys/kern/kern_et.c user/jmallett/octeon/sys/mips/conf/XLRN32 - copied unchanged from r209526, head/sys/mips/conf/XLRN32 user/jmallett/octeon/sys/modules/acpi/aibs/ - copied from r209526, head/sys/modules/acpi/aibs/ user/jmallett/octeon/sys/sys/timeet.h - copied unchanged from r209526, head/sys/sys/timeet.h user/jmallett/octeon/sys/x86/x86/timeevents.c - copied unchanged from r209526, head/sys/x86/x86/timeevents.c user/jmallett/octeon/tools/tools/netrate/tcpp/parallelism.csh - copied unchanged from r209526, head/tools/tools/netrate/tcpp/parallelism.csh user/jmallett/octeon/tools/tools/netrate/tcpp/runit.pl - copied unchanged from r209526, head/tools/tools/netrate/tcpp/runit.pl user/jmallett/octeon/usr.sbin/pc-sysinstall/ - copied from r209526, head/usr.sbin/pc-sysinstall/ Modified: user/jmallett/octeon/Makefile.inc1 user/jmallett/octeon/bin/pkill/pkill.1 user/jmallett/octeon/bin/pkill/pkill.c user/jmallett/octeon/bin/sh/parser.c user/jmallett/octeon/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l user/jmallett/octeon/contrib/binutils/binutils/doc/readelf.1 user/jmallett/octeon/etc/mtree/BSD.usr.dist user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh user/jmallett/octeon/lib/Makefile user/jmallett/octeon/lib/libc/mips/sys/brk.S user/jmallett/octeon/lib/libc/mips/sys/sbrk.S user/jmallett/octeon/lib/libc/nls/ru_RU.KOI8-R.msg (contents, props changed) user/jmallett/octeon/sbin/fsck_ffs/main.c user/jmallett/octeon/sbin/fsck_ffs/suj.c user/jmallett/octeon/sbin/fsck_msdosfs/Makefile user/jmallett/octeon/sbin/fsck_msdosfs/boot.c user/jmallett/octeon/sbin/fsck_msdosfs/check.c user/jmallett/octeon/sbin/fsck_msdosfs/dir.c user/jmallett/octeon/sbin/fsck_msdosfs/fat.c user/jmallett/octeon/sbin/geom/class/part/geom_part.c user/jmallett/octeon/sbin/geom/class/sched/gsched.8 user/jmallett/octeon/sbin/geom/core/geom.c user/jmallett/octeon/sbin/geom/core/geom.h user/jmallett/octeon/sbin/geom/misc/subr.c user/jmallett/octeon/sbin/geom/misc/subr.h user/jmallett/octeon/sbin/ping/ping.c user/jmallett/octeon/share/examples/perfmon/perfmon.c user/jmallett/octeon/share/man/man4/Makefile user/jmallett/octeon/sys/amd64/amd64/exception.S user/jmallett/octeon/sys/amd64/amd64/machdep.c user/jmallett/octeon/sys/amd64/amd64/mp_machdep.c user/jmallett/octeon/sys/amd64/ia32/ia32_exception.S user/jmallett/octeon/sys/amd64/include/apicvar.h user/jmallett/octeon/sys/amd64/include/asmacros.h user/jmallett/octeon/sys/boot/ficl/ficl.h user/jmallett/octeon/sys/boot/forth/loader.conf user/jmallett/octeon/sys/compat/x86bios/x86bios.c user/jmallett/octeon/sys/compat/x86bios/x86bios.h user/jmallett/octeon/sys/conf/files user/jmallett/octeon/sys/conf/files.amd64 user/jmallett/octeon/sys/conf/files.i386 user/jmallett/octeon/sys/dev/acpica/acpi_hpet.c user/jmallett/octeon/sys/dev/acpica/acpi_hpet.h user/jmallett/octeon/sys/dev/e1000/if_igb.c user/jmallett/octeon/sys/dev/fb/fbreg.h user/jmallett/octeon/sys/dev/fb/vesa.c user/jmallett/octeon/sys/dev/hptiop/hptiop.c user/jmallett/octeon/sys/dev/hptmv/entry.c user/jmallett/octeon/sys/dev/sound/usb/uaudio.c user/jmallett/octeon/sys/dev/sound/usb/uaudioreg.h user/jmallett/octeon/sys/dev/usb/controller/ehci.c user/jmallett/octeon/sys/dev/usb/controller/ohci.c user/jmallett/octeon/sys/dev/usb/controller/uhci.c user/jmallett/octeon/sys/dev/usb/net/if_rue.c user/jmallett/octeon/sys/dev/usb/quirk/usb_quirk.c user/jmallett/octeon/sys/dev/usb/usb_transfer.c user/jmallett/octeon/sys/dev/usb/usbdevs user/jmallett/octeon/sys/dev/usb/wlan/if_upgt.c user/jmallett/octeon/sys/fs/udf/udf_vnops.c user/jmallett/octeon/sys/i386/conf/NOTES user/jmallett/octeon/sys/i386/i386/apic_vector.s user/jmallett/octeon/sys/i386/i386/atpic_vector.s user/jmallett/octeon/sys/i386/i386/exception.s user/jmallett/octeon/sys/i386/i386/identcpu.c user/jmallett/octeon/sys/i386/i386/machdep.c user/jmallett/octeon/sys/i386/i386/mp_machdep.c user/jmallett/octeon/sys/i386/i386/support.s user/jmallett/octeon/sys/i386/i386/vm_machdep.c user/jmallett/octeon/sys/i386/include/apicvar.h user/jmallett/octeon/sys/i386/include/md_var.h user/jmallett/octeon/sys/i386/include/npx.h user/jmallett/octeon/sys/i386/include/pcb.h user/jmallett/octeon/sys/i386/isa/npx.c user/jmallett/octeon/sys/isa/rtc.h user/jmallett/octeon/sys/kern/kern_acct.c user/jmallett/octeon/sys/kern/kern_clock.c user/jmallett/octeon/sys/kern/kern_malloc.c user/jmallett/octeon/sys/kern/kern_mbuf.c user/jmallett/octeon/sys/kern/kern_module.c user/jmallett/octeon/sys/kern/kern_resource.c user/jmallett/octeon/sys/kern/kern_sdt.c user/jmallett/octeon/sys/kern/kern_sig.c user/jmallett/octeon/sys/kern/kern_tc.c user/jmallett/octeon/sys/kern/kern_umtx.c user/jmallett/octeon/sys/kern/makesyscalls.sh user/jmallett/octeon/sys/kern/subr_bus.c user/jmallett/octeon/sys/kern/subr_devstat.c user/jmallett/octeon/sys/kern/subr_fattime.c user/jmallett/octeon/sys/kern/subr_lock.c user/jmallett/octeon/sys/kern/subr_mchain.c user/jmallett/octeon/sys/kern/subr_module.c user/jmallett/octeon/sys/kern/subr_param.c user/jmallett/octeon/sys/kern/subr_trap.c user/jmallett/octeon/sys/kern/subr_witness.c user/jmallett/octeon/sys/kern/sys_process.c user/jmallett/octeon/sys/kern/systrace_args.c user/jmallett/octeon/sys/kern/uipc_mbuf.c user/jmallett/octeon/sys/kern/uipc_mbuf2.c user/jmallett/octeon/sys/kern/uipc_mqueue.c user/jmallett/octeon/sys/kern/uipc_syscalls.c user/jmallett/octeon/sys/kern/vfs_cache.c user/jmallett/octeon/sys/kern/vfs_subr.c user/jmallett/octeon/sys/mips/atheros/ar71xx_wdog.c user/jmallett/octeon/sys/mips/atheros/ar71xxreg.h user/jmallett/octeon/sys/mips/include/pte.h user/jmallett/octeon/sys/mips/include/vm.h user/jmallett/octeon/sys/mips/include/vmparam.h user/jmallett/octeon/sys/mips/mips/exception.S user/jmallett/octeon/sys/mips/mips/machdep.c user/jmallett/octeon/sys/mips/mips/pm_machdep.c user/jmallett/octeon/sys/mips/mips/pmap.c user/jmallett/octeon/sys/modules/acpi/Makefile user/jmallett/octeon/sys/modules/mqueue/Makefile user/jmallett/octeon/sys/netinet/sctp_pcb.c user/jmallett/octeon/sys/pc98/cbus/clock.c user/jmallett/octeon/sys/pc98/include/npx.h user/jmallett/octeon/sys/pc98/pc98/machdep.c user/jmallett/octeon/sys/powerpc/aim/mmu_oea.c user/jmallett/octeon/sys/powerpc/aim/nexus.c user/jmallett/octeon/sys/powerpc/booke/pmap.c user/jmallett/octeon/sys/powerpc/include/intr_machdep.h user/jmallett/octeon/sys/powerpc/include/openpicvar.h user/jmallett/octeon/sys/powerpc/mpc85xx/atpic.c user/jmallett/octeon/sys/powerpc/mpc85xx/ocpbus.c user/jmallett/octeon/sys/powerpc/mpc85xx/opic.c user/jmallett/octeon/sys/powerpc/mpc85xx/pci_ocp.c user/jmallett/octeon/sys/powerpc/powermac/cpcht.c user/jmallett/octeon/sys/powerpc/powermac/openpic_macio.c user/jmallett/octeon/sys/powerpc/powerpc/intr_machdep.c user/jmallett/octeon/sys/powerpc/powerpc/openpic.c user/jmallett/octeon/sys/powerpc/powerpc/pic_if.m user/jmallett/octeon/sys/sys/systm.h user/jmallett/octeon/sys/ufs/ufs/ufs_lookup.c user/jmallett/octeon/sys/vm/vm_page.c user/jmallett/octeon/sys/vm/vm_page.h user/jmallett/octeon/sys/vm/vm_pageout.c user/jmallett/octeon/sys/x86/cpufreq/est.c user/jmallett/octeon/sys/x86/isa/atrtc.c user/jmallett/octeon/sys/x86/isa/clock.c user/jmallett/octeon/sys/x86/x86/local_apic.c user/jmallett/octeon/tools/tools/netrate/tcpp/README user/jmallett/octeon/usr.bin/du/du.1 user/jmallett/octeon/usr.bin/du/du.c user/jmallett/octeon/usr.bin/ypwhich/ypwhich.c user/jmallett/octeon/usr.sbin/Makefile user/jmallett/octeon/usr.sbin/boot0cfg/boot0cfg.c user/jmallett/octeon/usr.sbin/cpucontrol/amd.c user/jmallett/octeon/usr.sbin/cpucontrol/intel.c user/jmallett/octeon/usr.sbin/mptutil/mptutil.8 user/jmallett/octeon/usr.sbin/sysinstall/Makefile user/jmallett/octeon/usr.sbin/sysinstall/dist.c user/jmallett/octeon/usr.sbin/sysinstall/index.c user/jmallett/octeon/usr.sbin/sysinstall/install.c user/jmallett/octeon/usr.sbin/sysinstall/misc.c user/jmallett/octeon/usr.sbin/sysinstall/sysinstall.8 user/jmallett/octeon/usr.sbin/sysinstall/sysinstall.h user/jmallett/octeon/usr.sbin/timed/timed/measure.c Directory Properties: user/jmallett/octeon/ (props changed) user/jmallett/octeon/share/mk/bsd.arch.inc.mk (props changed) user/jmallett/octeon/sys/arm/include/bootinfo.h (props changed) Modified: user/jmallett/octeon/Makefile.inc1 ============================================================================== --- user/jmallett/octeon/Makefile.inc1 Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/Makefile.inc1 Sat Jun 26 03:08:12 2010 (r209528) @@ -30,9 +30,7 @@ .include <bsd.own.mk> -.if ${MACHINE_ARCH} == "mips" -MK_RESCUE=no # not yet -.endif +.include <bsd.arch.inc.mk> # We must do share/info early so that installation of info `dir' # entries works correctly. Do it first since it is less likely to @@ -167,7 +165,7 @@ BUILD_ARCH!= uname -p .if ${MACHINE} == ${TARGET} && !defined(CROSS_BUILD_TESTING) OBJTREE= ${MAKEOBJDIRPREFIX} .else -OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET} +OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH} .endif WORLDTMP= ${OBJTREE}${.CURDIR}/tmp # /usr/games added for fortune which depend on strfile @@ -1110,10 +1108,10 @@ _prereq_libs= gnu/lib/libssp/libssp_nons # all shared libraries for ELF. # _startup_libs= gnu/lib/csu -.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-elf) -_startup_libs+= lib/csu/${MACHINE_ARCH}-elf +.if exists(${.CURDIR}/lib/csu/${MACHINE_CPUARCH}-elf) +_startup_libs+= lib/csu/${MACHINE_CPUARCH}-elf .else -_startup_libs+= lib/csu/${MACHINE_ARCH} +_startup_libs+= lib/csu/${MACHINE_CPUARCH} .endif _startup_libs+= gnu/lib/libgcc _startup_libs+= lib/libc Copied: user/jmallett/octeon/Makefile.mips (from r209526, head/Makefile.mips) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jmallett/octeon/Makefile.mips Sat Jun 26 03:08:12 2010 (r209528, copy of r209526, head/Makefile.mips) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# A bug in binutils prevents rescue from building, so override the user's +# choice. +MK_RESCUE=no Modified: user/jmallett/octeon/bin/pkill/pkill.1 ============================================================================== --- user/jmallett/octeon/bin/pkill/pkill.1 Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/bin/pkill/pkill.1 Sat Jun 26 03:08:12 2010 (r209528) @@ -156,14 +156,16 @@ The value matches processes not in jail. .It Fl l Long output. -Print the process name in addition to the process ID for each matching +For +.Nm pgrep , +print the process name in addition to the process ID for each matching process. If used in conjunction with .Fl f , print the process ID and the full argument list for each matching process. -This option can only be used with the -.Nm pgrep -command. +For +.Nm pkill , +display the kill command used for each process killed. .It Fl n Select only the newest (most recently started) of the matching processes. .It Fl o Modified: user/jmallett/octeon/bin/pkill/pkill.c ============================================================================== --- user/jmallett/octeon/bin/pkill/pkill.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/bin/pkill/pkill.c Sat Jun 26 03:08:12 2010 (r209528) @@ -128,7 +128,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int ancestors, debug_opt; + int ancestors, debug_opt, did_action; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -242,8 +242,6 @@ main(int argc, char **argv) criteria = 1; break; case 'l': - if (!pgrep) - usage(); longfmt = 1; break; case 'n': @@ -530,16 +528,24 @@ main(int argc, char **argv) /* * Take the appropriate action for each matched process, if any. */ + did_action = 0; for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) { if (PSKIP(kp)) continue; if (selected[i]) { + if (longfmt && !pgrep) { + did_action = 1; + printf("kill -%d %d\n", signum, kp->ki_pid); + } if (inverse) continue; } else if (!inverse) continue; rv |= (*action)(kp); } + if (!did_action && !pgrep && longfmt) + fprintf(stderr, + "No matching processes belonging to you were found\n"); exit(rv ? STATUS_MATCH : STATUS_NOMATCH); } @@ -552,7 +558,7 @@ usage(void) if (pgrep) ustr = "[-LSfilnoqvx] [-d delim]"; else - ustr = "[-signal] [-ILfinovx]"; + ustr = "[-signal] [-ILfilnovx]"; fprintf(stderr, "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n" Modified: user/jmallett/octeon/bin/sh/parser.c ============================================================================== --- user/jmallett/octeon/bin/sh/parser.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/bin/sh/parser.c Sat Jun 26 03:08:12 2010 (r209528) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include <stdlib.h> #include <unistd.h> +#include <stdio.h> #include "shell.h" #include "parser.h" Modified: user/jmallett/octeon/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l ============================================================================== --- user/jmallett/octeon/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l Sat Jun 26 03:08:12 2010 (r209528) @@ -67,8 +67,12 @@ * for all subsequent invocations, which is the effect desired. */ #undef unput -#define unput(c) \ - if (c != EOF) yyunput( c, yytext_ptr ) +#define unput(c) \ + do { \ + int _c = c; \ + if (_c != EOF) \ + yyunput(_c, yytext_ptr); \ + } while(0) #endif static int id_or_type(const char *); Modified: user/jmallett/octeon/contrib/binutils/binutils/doc/readelf.1 ============================================================================== --- user/jmallett/octeon/contrib/binutils/binutils/doc/readelf.1 Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/contrib/binutils/binutils/doc/readelf.1 Sat Jun 26 03:08:12 2010 (r209528) @@ -247,14 +247,6 @@ Displays the contents of the file's relo .PD Displays the contents of the file's unwind section, if it has one. Only the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -.PD 0 -.IP "\fB\-\-unwind\fR" 4 -.IX Item "--unwind" -.PD -Displays the contents of the file's unwind section, if it has one. Only -the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. .IP "\fB\-d\fR" 4 .IX Item "-d" .PD 0 Modified: user/jmallett/octeon/etc/mtree/BSD.usr.dist ============================================================================== --- user/jmallett/octeon/etc/mtree/BSD.usr.dist Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/etc/mtree/BSD.usr.dist Sat Jun 26 03:08:12 2010 (r209528) @@ -261,6 +261,8 @@ .. nwclient .. + pc-sysinstall + .. perfmon .. pf @@ -1226,6 +1228,20 @@ .. .. .. + pc-sysinstall + backend + .. + backend-partmanager + .. + backend-query + .. + conf + license + .. + .. + doc + .. + .. security .. sendmail Modified: user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32btsmipn32_fbsd.sh Sat Jun 26 03:08:12 2010 (r209528) @@ -2,3 +2,4 @@ . ${srcdir}/emulparams/elf32btsmipn32.sh . ${srcdir}/emulparams/elf_fbsd.sh GENERATE_PIE_SCRIPT=yes +ALIGNMENT=8 Modified: user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/gnu/usr.bin/binutils/ld/elf32ltsmipn32_fbsd.sh Sat Jun 26 03:08:12 2010 (r209528) @@ -2,3 +2,4 @@ . ${srcdir}/emulparams/elf32ltsmipn32.sh . ${srcdir}/emulparams/elf_fbsd.sh GENERATE_PIE_SCRIPT=yes +ALIGNMENT=8 Modified: user/jmallett/octeon/lib/Makefile ============================================================================== --- user/jmallett/octeon/lib/Makefile Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/lib/Makefile Sat Jun 26 03:08:12 2010 (r209528) @@ -138,7 +138,7 @@ _libsdp= libsdp _libbsnmp= libbsnmp .endif -.if ${MK_CLANG} != "no" +.if ${MK_CLANG} != "no" && !defined(COMPAT_32BIT) _clang= clang .endif Modified: user/jmallett/octeon/lib/libc/mips/sys/brk.S ============================================================================== --- user/jmallett/octeon/lib/libc/mips/sys/brk.S Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/lib/libc/mips/sys/brk.S Sat Jun 26 03:08:12 2010 (r209528) @@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$"); .data _C_LABEL(minbrk): - .word _C_LABEL(_end) + PTR_WORD _C_LABEL(_end) .text LEAF(__sys_brk) Modified: user/jmallett/octeon/lib/libc/mips/sys/sbrk.S ============================================================================== --- user/jmallett/octeon/lib/libc/mips/sys/sbrk.S Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/lib/libc/mips/sys/sbrk.S Sat Jun 26 03:08:12 2010 (r209528) @@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$"); .data _C_LABEL(__curbrk): - .word _C_LABEL(_end) + PTR_WORD _C_LABEL(_end) .text LEAF(__sys_sbrk) Modified: user/jmallett/octeon/lib/libc/nls/ru_RU.KOI8-R.msg ============================================================================== --- user/jmallett/octeon/lib/libc/nls/ru_RU.KOI8-R.msg Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/lib/libc/nls/ru_RU.KOI8-R.msg Sat Jun 26 03:08:12 2010 (r209528) @@ -183,6 +183,16 @@ $ ENOATTR 87 Атрибут не найден $ EDOOFUS 88 Ошибка программирования +$ EBADMSG +89 Плохой формат сообщения +$ EMULTIHOP +90 Попытка мультихопа +$ ENOLINK +91 Канал разорван +$ EPROTO +92 Ошибка протокола +$ ENOTCAPABLE +93 Недостаточно возможностей $ $ strsignal() support catalog $ Modified: user/jmallett/octeon/sbin/fsck_ffs/main.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_ffs/main.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_ffs/main.c Sat Jun 26 03:08:12 2010 (r209528) @@ -388,16 +388,18 @@ checkfilesys(char *filesys) /* * Determine if we can and should do journal recovery. */ - if ((sblock.fs_flags & (FS_SUJ | FS_NEEDSFSCK)) == FS_SUJ) { - if (preen || reply("USE JOURNAL?")) { - if (suj_check(filesys) == 0) { - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); + if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { + if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { + if (preen || reply("USE JOURNAL?")) { + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); + } } - /* suj_check failed, fall through. */ + printf("** Skipping journal, falling through to full fsck\n\n"); } - printf("** Skipping journal, falling through to full fsck\n"); /* * Write the superblock so we don't try to recover the * journal on another pass. Modified: user/jmallett/octeon/sbin/fsck_ffs/suj.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_ffs/suj.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_ffs/suj.c Sat Jun 26 03:08:12 2010 (r209528) @@ -37,12 +37,15 @@ __FBSDID("$FreeBSD$"); #include <ufs/ufs/dir.h> #include <ufs/ffs/fs.h> +#include <setjmp.h> +#include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <libufs.h> #include <string.h> #include <strings.h> +#include <sysexits.h> #include <err.h> #include <assert.h> @@ -141,7 +144,10 @@ uint64_t freedir; uint64_t jbytes; uint64_t jrecs; +static jmp_buf jmpbuf; + typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int); +static void err_suj(const char *, ...) __dead2; static void ino_trunc(ino_t, off_t); static void ino_decr(ino_t); static void ino_adjust(struct suj_ino *); @@ -155,11 +161,30 @@ errmalloc(size_t n) a = malloc(n); if (a == NULL) - errx(1, "malloc(%zu)", n); + err(EX_OSERR, "malloc(%zu)", n); return (a); } /* + * When hit a fatal error in journalling check, print out + * the error and then offer to fallback to normal fsck. + */ +static void +err_suj(const char * restrict fmt, ...) +{ + va_list ap; + + if (preen) + (void)fprintf(stdout, "%s: ", cdevname); + + va_start(ap, fmt); + (void)vfprintf(stdout, fmt, ap); + va_end(ap); + + longjmp(jmpbuf, -1); +} + +/* * Open the given provider, load superblock. */ static void @@ -169,9 +194,9 @@ opendisk(const char *devnam) return; disk = malloc(sizeof(*disk)); if (disk == NULL) - errx(1, "malloc(%zu)", sizeof(*disk)); + err(EX_OSERR, "malloc(%zu)", sizeof(*disk)); if (ufs_disk_fillout(disk, devnam) == -1) { - err(1, "ufs_disk_fillout(%s) failed: %s", devnam, + err(EX_OSERR, "ufs_disk_fillout(%s) failed: %s", devnam, disk->d_error); } fs = &disk->d_fs; @@ -203,9 +228,9 @@ closedisk(const char *devnam) fs->fs_time = time(NULL); fs->fs_mtime = time(NULL); if (sbwrite(disk, 0) == -1) - err(1, "sbwrite(%s)", devnam); + err(EX_OSERR, "sbwrite(%s)", devnam); if (ufs_disk_close(disk) == -1) - err(1, "ufs_disk_close(%s)", devnam); + err(EX_OSERR, "ufs_disk_close(%s)", devnam); free(disk); disk = NULL; fs = NULL; @@ -221,10 +246,8 @@ cg_lookup(int cgx) struct cghd *hd; struct suj_cg *sc; - if (cgx < 0 || cgx >= fs->fs_ncg) { - abort(); - errx(1, "Bad cg number %d", cgx); - } + if (cgx < 0 || cgx >= fs->fs_ncg) + err_suj("Bad cg number %d\n", cgx); if (lastcg && lastcg->sc_cgx == cgx) return (lastcg); hd = &cghash[SUJ_HASH(cgx)]; @@ -241,7 +264,7 @@ cg_lookup(int cgx) LIST_INSERT_HEAD(hd, sc, sc_next); if (bread(disk, fsbtodb(fs, cgtod(fs, sc->sc_cgx)), sc->sc_cgbuf, fs->fs_bsize) == -1) - err(1, "Unable to read cylinder group %d", sc->sc_cgx); + err_suj("Unable to read cylinder group %d\n", sc->sc_cgx); return (sc); } @@ -344,7 +367,7 @@ dblk_read(ufs2_daddr_t blk, int size) dblk->db_buf = errmalloc(size); dblk->db_size = size; if (bread(disk, fsbtodb(fs, blk), dblk->db_buf, size) == -1) - err(1, "Failed to read data block %jd", blk); + err_suj("Failed to read data block %jd\n", blk); } return (dblk->db_buf); } @@ -370,7 +393,7 @@ dblk_write(void) continue; if (bwrite(disk, fsbtodb(fs, dblk->db_blk), dblk->db_buf, dblk->db_size) == -1) - err(1, "Unable to write block %jd", + err_suj("Unable to write block %jd\n", dblk->db_blk); } } @@ -403,7 +426,7 @@ ino_read(ino_t ino) iblk->ib_blk = blk; LIST_INSERT_HEAD(hd, iblk, ib_next); if (bread(disk, fsbtodb(fs, blk), iblk->ib_buf, fs->fs_bsize) == -1) - err(1, "Failed to read inode block %jd", blk); + err_suj("Failed to read inode block %jd\n", blk); found: sc->sc_lastiblk = iblk; off = ino_to_fsbo(fs, ino); @@ -447,7 +470,7 @@ iblk_write(struct ino_blk *iblk) return; if (bwrite(disk, fsbtodb(fs, iblk->ib_blk), iblk->ib_buf, fs->fs_bsize) == -1) - err(1, "Failed to write inode block %jd", iblk->ib_blk); + err_suj("Failed to write inode block %jd\n", iblk->ib_blk); } static int @@ -679,9 +702,9 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i return (0); level = lbn_level(cur); if (level == -1) - errx(1, "Invalid indir lbn %jd", lbn); + err_suj("Invalid indir lbn %jd\n", lbn); if (level == 0 && lbn < 0) - errx(1, "Invalid lbn %jd", lbn); + err_suj("Invalid lbn %jd\n", lbn); bap2 = (void *)dblk_read(blk, fs->fs_bsize); bap1 = (void *)bap2; lbnadd = 1; @@ -693,7 +716,7 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i else i = (-lbn - base) / lbnadd; if (i < 0 || i >= NINDIR(fs)) - errx(1, "Invalid indirect index %d produced by lbn %jd", + err_suj("Invalid indirect index %d produced by lbn %jd\n", i, lbn); if (level == 0) cur = base + (i * lbnadd); @@ -705,10 +728,8 @@ indir_blkatoff(ufs2_daddr_t blk, ino_t i blk = bap2[i]; if (cur == lbn) return (blk); - if (level == 0) { - abort(); - errx(1, "Invalid lbn %jd at level 0", lbn); - } + if (level == 0) + err_suj("Invalid lbn %jd at level 0\n", lbn); return indir_blkatoff(blk, ino, cur, lbn); } @@ -762,7 +783,8 @@ ino_blkatoff(union dinode *ip, ino_t ino continue; return indir_blkatoff(DIP(ip, di_ib[i]), ino, -cur - i, lbn); } - errx(1, "lbn %jd not in ino", lbn); + err_suj("lbn %jd not in ino\n", lbn); + /* NOTREACHED */ } /* @@ -851,7 +873,7 @@ ino_isat(ino_t parent, off_t diroff, ino dpoff += dp->d_reclen; } while (dpoff <= doff); if (dpoff > fs->fs_bsize) - errx(1, "Corrupt directory block in dir ino %d", parent); + err_suj("Corrupt directory block in dir ino %d\n", parent); /* Not found. */ if (dpoff != doff) { if (debug) @@ -907,7 +929,7 @@ indir_visit(ino_t ino, ufs_lbn_t lbn, uf return; level = lbn_level(lbn); if (level == -1) - errx(1, "Invalid level for lbn %jd", lbn); + err_suj("Invalid level for lbn %jd\n", lbn); if ((flags & VISIT_ROOT) == 0 && blk_isindir(blk, ino, lbn) == 0) { if (debug) printf("blk %jd ino %d lbn %jd(%d) is not indir.\n", @@ -1203,7 +1225,7 @@ ino_reclaim(union dinode *ip, ino_t ino, uint32_t gen; if (ino == ROOTINO) - errx(1, "Attempting to free ROOTINO"); + err_suj("Attempting to free ROOTINO\n"); if (debug) printf("Truncating and freeing ino %d, nlink %d, mode %o\n", ino, DIP(ip, di_nlink), DIP(ip, di_mode)); @@ -1240,9 +1262,9 @@ ino_decr(ino_t ino) nlink = DIP(ip, di_nlink); mode = DIP(ip, di_mode); if (nlink < 1) - errx(1, "Inode %d link count %d invalid", ino, nlink); + err_suj("Inode %d link count %d invalid\n", ino, nlink); if (mode == 0) - errx(1, "Inode %d has a link of %d with 0 mode.", ino, nlink); + err_suj("Inode %d has a link of %d with 0 mode\n", ino, nlink); nlink--; if ((mode & IFMT) == IFDIR) reqlink = 2; @@ -1300,8 +1322,8 @@ ino_adjust(struct suj_ino *sino) ip = ino_read(ino); mode = DIP(ip, di_mode) & IFMT; if (nlink > LINK_MAX) - errx(1, - "ino %d nlink manipulation error, new link %d, old link %d", + err_suj( + "ino %d nlink manipulation error, new link %d, old link %d\n", ino, nlink, DIP(ip, di_nlink)); if (debug) printf("Adjusting ino %d, nlink %d, old link %d lastmode %o\n", @@ -1359,7 +1381,7 @@ indir_trunc(ino_t ino, ufs_lbn_t lbn, uf dirty = 0; level = lbn_level(lbn); if (level == -1) - errx(1, "Invalid level for lbn %jd", lbn); + err_suj("Invalid level for lbn %jd\n", lbn); lbnadd = 1; for (i = level; i > 0; i--) lbnadd *= NINDIR(fs); @@ -1488,7 +1510,7 @@ ino_trunc(ino_t ino, off_t size) bn = DIP(ip, di_db[visitlbn]); if (bn == 0) - errx(1, "Bad blk at ino %d lbn %jd\n", ino, visitlbn); + err_suj("Bad blk at ino %d lbn %jd\n", ino, visitlbn); oldspace = sblksize(fs, cursize, visitlbn); newspace = sblksize(fs, size, visitlbn); if (oldspace != newspace) { @@ -1512,7 +1534,7 @@ ino_trunc(ino_t ino, off_t size) bn = ino_blkatoff(ip, ino, visitlbn, &frags); if (bn == 0) - errx(1, "Block missing from ino %d at lbn %jd\n", + err_suj("Block missing from ino %d at lbn %jd\n", ino, visitlbn); clrsize = frags * fs->fs_fsize; buf = dblk_read(bn, clrsize); @@ -1555,7 +1577,7 @@ ino_check(struct suj_ino *sino) isat = ino_isat(rrec->jr_parent, rrec->jr_diroff, rrec->jr_ino, &mode, &isdot); if (isat && (mode & IFMT) != (rrec->jr_mode & IFMT)) - errx(1, "Inode mode/directory type mismatch %o != %o", + err_suj("Inode mode/directory type mismatch %o != %o\n", mode, rrec->jr_mode); if (debug) printf("jrefrec: op %d ino %d, nlink %d, parent %d, " @@ -1778,7 +1800,7 @@ cg_write(struct suj_cg *sc) fs->fs_cs(fs, sc->sc_cgx) = cgp->cg_cs; if (bwrite(disk, fsbtodb(fs, cgtod(fs, sc->sc_cgx)), sc->sc_cgbuf, fs->fs_bsize) == -1) - err(1, "Unable to write cylinder group %d", sc->sc_cgx); + err_suj("Unable to write cylinder group %d\n", sc->sc_cgx); } /* @@ -1970,6 +1992,7 @@ ino_build_ref(struct suj_ino *sino, stru continue; diroff = mvrec->jm_oldoff; TAILQ_REMOVE(&sino->si_movs, srn, sr_next); + free(srn); ino_dup_ref(sino, refrec, diroff); } } @@ -2026,7 +2049,7 @@ ino_build_ref(struct suj_ino *sino, stru TAILQ_REMOVE(&sino->si_newrecs, srn, sr_next); break; default: - errx(1, "ino_build_ref: Unknown op %d", + err_suj("ino_build_ref: Unknown op %d\n", srn->sr_rec->rec_jrefrec.jr_op); } } @@ -2056,7 +2079,7 @@ ino_build(struct suj_ino *sino) TAILQ_INSERT_TAIL(&sino->si_movs, srec, sr_next); break; default: - errx(1, "ino_build: Unknown op %d", + err_suj("ino_build: Unknown op %d\n", srec->sr_rec->rec_jrefrec.jr_op); } } @@ -2107,7 +2130,7 @@ blk_build(struct jblkrec *blkrec) blkrec->jb_blkno -= frag; blkrec->jb_oldfrags = frag; if (blkrec->jb_oldfrags + blkrec->jb_frags > fs->fs_frag) - errx(1, "Invalid fragment count %d oldfrags %d", + err_suj("Invalid fragment count %d oldfrags %d\n", blkrec->jb_frags, frag); /* * Detect dups. If we detect a dup we always discard the oldest @@ -2185,7 +2208,7 @@ suj_build(void) ino_build_trunc((struct jtrncrec *)rec); break; default: - errx(1, "Unknown journal operation %d (%d)", + err_suj("Unknown journal operation %d (%d)\n", rec->rec_jrefrec.jr_op, off); } i++; @@ -2233,9 +2256,10 @@ suj_prune(void) newseq = seg->ss_rec.jsr_seq; } - if (newseq != oldseq) - errx(1, "Journal file sequence mismatch %jd != %jd", + if (newseq != oldseq) { + err_suj("Journal file sequence mismatch %jd != %jd\n", newseq, oldseq); + } /* * The kernel may asynchronously write segments which can create * gaps in the sequence space. Throw away any segments after the @@ -2463,9 +2487,10 @@ restart: /* * Read 1MB at a time and scan for records within this block. */ - if (bread(disk, blk, &block, size) == -1) - err(1, "Error reading journal block %jd", + if (bread(disk, blk, &block, size) == -1) { + err_suj("Error reading journal block %jd\n", (intmax_t)blk); + } for (rec = (void *)block; size; size -= recsize, rec = (struct jsegrec *)((uintptr_t)rec + recsize)) { recsize = DEV_BSIZE; @@ -2544,7 +2569,7 @@ suj_find(ino_t ino, ufs_lbn_t lbn, ufs2_ return; bytes = lfragtosize(fs, frags); if (bread(disk, fsbtodb(fs, blk), block, bytes) <= 0) - err(1, "Failed to read ROOTINO directory block %jd", blk); + err_suj("Failed to read ROOTINO directory block %jd\n", blk); for (off = 0; off < bytes; off += dp->d_reclen) { dp = (struct direct *)&block[off]; if (dp->d_reclen == 0) @@ -2569,17 +2594,43 @@ suj_check(const char *filesys) union dinode *jip; union dinode *ip; uint64_t blocks; + int retval; + struct suj_seg *seg; + struct suj_seg *segn; opendisk(filesys); TAILQ_INIT(&allsegs); + + /* + * Set an exit point when SUJ check failed + */ + retval = setjmp(jmpbuf); + if (retval != 0) { + pwarn("UNEXPECTED SU+J INCONSISTENCY\n"); + TAILQ_FOREACH_SAFE(seg, &allsegs, ss_next, segn) { + TAILQ_REMOVE(&allsegs, seg, ss_next); + free(seg->ss_blk); + free(seg); + } + if (reply("FALLBACK TO FULL FSCK") == 0) { + ckfini(0); + exit(EEXIT); + } else + return (-1); + } + /* * Find the journal inode. */ ip = ino_read(ROOTINO); sujino = 0; ino_visit(ip, ROOTINO, suj_find, 0); - if (sujino == 0) - errx(1, "Journal inode removed. Use tunefs to re-create."); + if (sujino == 0) { + printf("Journal inode removed. Use tunefs to re-create.\n"); + sblock.fs_flags &= ~FS_SUJ; + sblock.fs_sujfree = 0; + return (-1); + } /* * Fetch the journal inode and verify it. */ @@ -2595,8 +2646,10 @@ suj_check(const char *filesys) DIP(jip, di_size), sujino); suj_jblocks = jblocks_create(); blocks = ino_visit(jip, sujino, suj_add_block, 0); - if (blocks != numfrags(fs, DIP(jip, di_size))) - errx(1, "Sparse journal inode %d.\n", sujino); + if (blocks != numfrags(fs, DIP(jip, di_size))) { + printf("Sparse journal inode %d.\n", sujino); + return (-1); + } suj_read(); jblocks_destroy(suj_jblocks); suj_jblocks = NULL; @@ -2612,7 +2665,7 @@ suj_check(const char *filesys) cg_apply(cg_check_blk); cg_apply(cg_check_ino); } - if (preen == 0 && reply("WRITE CHANGES") == 0) + if (preen == 0 && (jrecs > 0 || jbytes > 0) && reply("WRITE CHANGES") == 0) return (0); /* * To remain idempotent with partial truncations the free bitmaps @@ -2625,10 +2678,12 @@ suj_check(const char *filesys) cg_apply(cg_write_inos); /* Write back superblock. */ closedisk(filesys); - printf("** %jd journal records in %jd bytes for %.2f%% utilization\n", - jrecs, jbytes, ((float)jrecs / (float)(jbytes / JREC_SIZE)) * 100); - printf("** Freed %jd inodes (%jd dirs) %jd blocks, and %jd frags.\n", - freeinos, freedir, freeblocks, freefrags); + if (jrecs > 0 || jbytes > 0) { + printf("** %jd journal records in %jd bytes for %.2f%% utilization\n", + jrecs, jbytes, ((float)jrecs / (float)(jbytes / JREC_SIZE)) * 100); + printf("** Freed %jd inodes (%jd dirs) %jd blocks, and %jd frags.\n", + freeinos, freedir, freeblocks, freefrags); + } return (0); } Modified: user/jmallett/octeon/sbin/fsck_msdosfs/Makefile ============================================================================== --- user/jmallett/octeon/sbin/fsck_msdosfs/Makefile Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_msdosfs/Makefile Sat Jun 26 03:08:12 2010 (r209528) @@ -9,6 +9,6 @@ MAN= fsck_msdosfs.8 SRCS= main.c check.c boot.c fat.c dir.c fsutil.c CFLAGS+= -I${FSCK} -WARNS?= 0 +WARNS?= 2 .include <bsd.prog.mk> Modified: user/jmallett/octeon/sbin/fsck_msdosfs/boot.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_msdosfs/boot.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_msdosfs/boot.c Sat Jun 26 03:08:12 2010 (r209528) @@ -48,13 +48,14 @@ readboot(int dosfs, struct bootblock *bo int ret = FSOK; int i; - if ((size_t)read(dosfs, block, sizeof block) != sizeof block) { + if (read(dosfs, block, sizeof block) != sizeof block) { perror("could not read boot block"); return FSFATAL; } if (block[510] != 0x55 || block[511] != 0xaa) { - pfatal("Invalid signature in boot block: %02x%02x", block[511], block[510]); + pfatal("Invalid signature in boot block: %02x%02x", + block[511], block[510]); return FSFATAL; } @@ -72,8 +73,10 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFATsmall = block[22] + (block[23] << 8); boot->SecPerTrack = block[24] + (block[25] << 8); boot->bpbHeads = block[26] + (block[27] << 8); - boot->bpbHiddenSecs = block[28] + (block[29] << 8) + (block[30] << 16) + (block[31] << 24); - boot->bpbHugeSectors = block[32] + (block[33] << 8) + (block[34] << 16) + (block[35] << 24); + boot->bpbHiddenSecs = block[28] + (block[29] << 8) + + (block[30] << 16) + (block[31] << 24); + boot->bpbHugeSectors = block[32] + (block[33] << 8) + + (block[34] << 16) + (block[35] << 24); boot->FATsecs = boot->bpbFATsmall; @@ -97,10 +100,9 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFSInfo = block[48] + (block[49] << 8); boot->bpbBackup = block[50] + (block[51] << 8); - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) - != boot->bpbFSInfo * boot->bpbBytesPerSec - || read(dosfs, fsinfo, sizeof fsinfo) - != sizeof fsinfo) { + if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec + || read(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { perror("could not read fsinfo block"); return FSFATAL; } @@ -124,7 +126,8 @@ readboot(int dosfs, struct bootblock *bo fsinfo[0x3fc] = fsinfo[0x3fd] = 0; fsinfo[0x3fe] = 0x55; fsinfo[0x3ff] = 0xaa; - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbFSInfo * + boot->bpbBytesPerSec, SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec || write(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { @@ -144,7 +147,8 @@ readboot(int dosfs, struct bootblock *bo + (fsinfo[0x1ef] << 24); } - if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbBackup * boot->bpbBytesPerSec || read(dosfs, backup, sizeof backup) != sizeof backup) { perror("could not read backup bootblock"); @@ -172,11 +176,10 @@ readboot(int dosfs, struct bootblock *bo /* Check backup bpbFSInfo? XXX */ } - boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + boot->bpbBytesPerSec - 1) - / boot->bpbBytesPerSec - + boot->bpbResSectors - + boot->bpbFATs * boot->FATsecs - - CLUST_FIRST * boot->bpbSecPerClust; + boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + + boot->bpbBytesPerSec - 1) / boot->bpbBytesPerSec + + boot->bpbResSectors + boot->bpbFATs * boot->FATsecs - + CLUST_FIRST * boot->bpbSecPerClust; if (boot->bpbBytesPerSec % DOSBOOTBLOCKSIZE != 0) { pfatal("Invalid sector size: %u", boot->bpbBytesPerSec); @@ -191,7 +194,8 @@ readboot(int dosfs, struct bootblock *bo boot->NumSectors = boot->bpbSectors; } else boot->NumSectors = boot->bpbHugeSectors; - boot->NumClusters = (boot->NumSectors - boot->ClusterOffset) / boot->bpbSecPerClust; + boot->NumClusters = (boot->NumSectors - boot->ClusterOffset) / + boot->bpbSecPerClust; if (boot->flags&FAT32) boot->ClustMask = CLUST32_MASK; Modified: user/jmallett/octeon/sbin/fsck_msdosfs/check.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_msdosfs/check.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_msdosfs/check.c Sat Jun 26 03:08:12 2010 (r209528) @@ -98,7 +98,7 @@ checkfilesys(const char *fname) } if (boot.ValidFat < 0) - for (i = 1; i < (int)boot.bpbFATs; i++) { + for (i = 1; i < boot.bpbFATs; i++) { struct fatEntry *currentFat; mod |= readfat(dosfs, &boot, i, ¤tFat); Modified: user/jmallett/octeon/sbin/fsck_msdosfs/dir.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_msdosfs/dir.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_msdosfs/dir.c Sat Jun 26 03:08:12 2010 (r209528) @@ -242,7 +242,8 @@ resetDosDirSection(struct bootblock *boo memset(rootDir, 0, sizeof *rootDir); if (boot->flags & FAT32) { - if (boot->bpbRootClust < CLUST_FIRST || boot->bpbRootClust >= boot->NumClusters) { + if (boot->bpbRootClust < CLUST_FIRST || + boot->bpbRootClust >= boot->NumClusters) { pfatal("Root directory starts with cluster out of range(%u)", boot->bpbRootClust); return FSFATAL; @@ -356,7 +357,8 @@ removede(int f, struct bootblock *boot, pwarn("Invalid long filename entry for %s\n", path); break; case 1: - pwarn("Invalid long filename entry at end of directory %s\n", path); + pwarn("Invalid long filename entry at end of directory %s\n", + path); break; case 2: pwarn("Invalid long filename entry for volume label\n"); @@ -418,7 +420,8 @@ checksize(struct bootblock *boot, struct cl_t cl; u_int32_t sz = 0; - for (cl = dir->head; (sz += boot->ClusterSize) < dir->size;) + for (cl = dir->head; (sz += boot->ClusterSize) < + dir->size;) cl = fat[cl].next; clearchain(boot, fat, fat[cl].next); fat[cl].next = CLUST_EOF; @@ -462,7 +465,8 @@ readDosDirSection(int f, struct bootbloc do { if (!(boot->flags & FAT32) && !dir->parent) { last = boot->bpbRootDirEnts * 32; - off = boot->bpbResSectors + boot->bpbFATs * boot->FATsecs; + off = boot->bpbResSectors + boot->bpbFATs * + boot->FATsecs; } else { last = boot->bpbSecPerClust * boot->bpbBytesPerSec; off = cl * boot->bpbSecPerClust + boot->ClusterOffset; @@ -547,7 +551,8 @@ readDosDirSection(int f, struct bootbloc } lidx = *p & LRNOMASK; t = longName + --lidx * 13; - for (k = 1; k < 11 && t < longName + sizeof(longName); k += 2) { + for (k = 1; k < 11 && t < longName + + sizeof(longName); k += 2) { if (!p[k] && !p[k + 1]) break; *t++ = p[k]; Modified: user/jmallett/octeon/sbin/fsck_msdosfs/fat.c ============================================================================== --- user/jmallett/octeon/sbin/fsck_msdosfs/fat.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/fsck_msdosfs/fat.c Sat Jun 26 03:08:12 2010 (r209528) @@ -87,7 +87,8 @@ checkdirty(int fs, struct bootblock *boo goto err; } - if (read(fs, buffer, boot->bpbBytesPerSec) != boot->bpbBytesPerSec) { + if ((size_t)read(fs, buffer, boot->bpbBytesPerSec) != + boot->bpbBytesPerSec) { perror("Unable to read FAT"); goto err; } Modified: user/jmallett/octeon/sbin/geom/class/part/geom_part.c ============================================================================== --- user/jmallett/octeon/sbin/geom/class/part/geom_part.c Fri Jun 25 22:35:19 2010 (r209527) +++ user/jmallett/octeon/sbin/geom/class/part/geom_part.c Sat Jun 26 03:08:12 2010 (r209528) @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$"); #include <stdint.h> #include <stdio.h> #include <stdlib.h> +#include <limits.h> +#include <inttypes.h> #include <string.h> #include <strings.h> #include <unistd.h> @@ -60,6 +62,9 @@ static char autofill[] = "*"; static char optional[] = ""; static char flags[] = "C"; +static char sstart[32]; +static char ssize[32]; + static const char const bootcode_param[] = "bootcode"; static const char const index_param[] = "index"; static const char const partcode_param[] = "partcode"; @@ -68,8 +73,7 @@ static struct gclass *find_class(struct static struct ggeom * find_geom(struct gclass *, const char *); static const char *find_geomcfg(struct ggeom *, const char *); static const char *find_provcfg(struct gprovider *, const char *); -static struct gprovider *find_provider(struct ggeom *, - unsigned long long); +static struct gprovider *find_provider(struct ggeom *, off_t); static const char *fmtsize(int64_t); static int gpart_autofill(struct gctl_req *); static int gpart_autofill_resize(struct gctl_req *); @@ -84,8 +88,8 @@ static void gpart_write_partcode_vtoc8(s struct g_command PUBSYM(class_commands)[] = { { "add", 0, gpart_issue, { - { 'b', "start", autofill, G_TYPE_ASCLBA }, - { 's', "size", autofill, G_TYPE_ASCLBA }, + { 'b', "start", autofill, G_TYPE_STRING }, + { 's', "size", autofill, G_TYPE_STRING }, { 't', "type", NULL, G_TYPE_STRING }, { 'i', index_param, optional, G_TYPE_ASCNUM }, { 'l', "label", optional, G_TYPE_STRING }, @@ -149,7 +153,7 @@ struct g_command PUBSYM(class_commands)[ "geom", NULL }, { "resize", 0, gpart_issue, { - { 's', "size", autofill, G_TYPE_ASCLBA }, + { 's', "size", autofill, G_TYPE_STRING }, { 'i', index_param, NULL, G_TYPE_ASCNUM }, { 'f', "flags", flags, G_TYPE_STRING }, G_OPT_SENTINEL }, @@ -207,11 +211,11 @@ find_provcfg(struct gprovider *pp, const } static struct gprovider * -find_provider(struct ggeom *gp, unsigned long long minsector) +find_provider(struct ggeom *gp, off_t minsector) { struct gprovider *pp, *bestpp; const char *s; - unsigned long long sector, bestsector; + off_t sector, bestsector; bestpp = NULL; bestsector = 0; @@ -219,9 +223,10 @@ find_provider(struct ggeom *gp, unsigned s = find_provcfg(pp, "start"); if (s == NULL) { s = find_provcfg(pp, "offset"); - sector = atoll(s) / pp->lg_sectorsize; + sector = + (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else - sector = atoll(s); + sector = (off_t)strtoimax(s, NULL, 0); if (sector < minsector) continue; @@ -271,18 +276,12 @@ gpart_autofill_resize(struct gctl_req *r struct gclass *cp; struct ggeom *gp; struct gprovider *pp; - unsigned long long last, size, start, new_size; - unsigned long long lba, new_lba; + off_t last, size, start, new_size; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006260308.o5Q38CxF098592>