Date: Mon, 14 Dec 2009 23:49:06 +0000 (UTC) From: Luigi Rizzo <luigi@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r200559 - in user/luigi/ipfw3-head: . cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/lib/libzfs/common contrib/top etc etc/mtree etc/rc.d gnu/lib/libgcc lib lib/libexpat lib/... Message-ID: <200912142349.nBENn6ch042590@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: luigi Date: Mon Dec 14 23:49:06 2009 New Revision: 200559 URL: http://svn.freebsd.org/changeset/base/200559 Log: sync with head r200555 Added: user/luigi/ipfw3-head/sys/boot/common/md.c - copied unchanged from r200555, head/sys/boot/common/md.c user/luigi/ipfw3-head/tools/regression/kqueue/ - copied from r200555, head/tools/regression/kqueue/ user/luigi/ipfw3-head/tools/regression/usr.bin/comm/ - copied from r200555, head/tools/regression/usr.bin/comm/ Deleted: user/luigi/ipfw3-head/usr.sbin/ndp/gnuc.h Modified: user/luigi/ipfw3-head/Makefile.inc1 user/luigi/ipfw3-head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c user/luigi/ipfw3-head/etc/mtree/BSD.usr.dist user/luigi/ipfw3-head/etc/rc.d/named user/luigi/ipfw3-head/etc/termcap.small user/luigi/ipfw3-head/gnu/lib/libgcc/Makefile user/luigi/ipfw3-head/lib/Makefile user/luigi/ipfw3-head/lib/libexpat/libbsdxml.3 user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/Makefile user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c user/luigi/ipfw3-head/lib/libtacplus/libtacplus.3 user/luigi/ipfw3-head/lib/libthr/thread/thr_umtx.c user/luigi/ipfw3-head/lib/libulog/ulog_login.c user/luigi/ipfw3-head/lib/libusb/libusb10.c user/luigi/ipfw3-head/lib/libutil/gr_util.c user/luigi/ipfw3-head/share/examples/Makefile user/luigi/ipfw3-head/share/man/man4/iwnfw.4 user/luigi/ipfw3-head/share/man/man9/sleep.9 user/luigi/ipfw3-head/share/man/man9/sleepqueue.9 user/luigi/ipfw3-head/share/termcap/termcap.5 user/luigi/ipfw3-head/share/termcap/termcap.src user/luigi/ipfw3-head/sys/amd64/amd64/vm_machdep.c user/luigi/ipfw3-head/sys/amd64/ia32/ia32_syscall.c user/luigi/ipfw3-head/sys/boot/common/Makefile.inc user/luigi/ipfw3-head/sys/boot/pc98/boot2/Makefile user/luigi/ipfw3-head/sys/boot/pc98/boot2/bios.S user/luigi/ipfw3-head/sys/boot/pc98/boot2/boot.c user/luigi/ipfw3-head/sys/boot/pc98/boot2/boot.h user/luigi/ipfw3-head/sys/boot/pc98/boot2/disk.c user/luigi/ipfw3-head/sys/boot/pc98/boot2/io.c user/luigi/ipfw3-head/sys/boot/pc98/boot2/serial_16550.S user/luigi/ipfw3-head/sys/boot/pc98/boot2/sys.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/changes.txt user/luigi/ipfw3-head/sys/contrib/dev/acpica/compiler/aslcompile.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/debugger/dbutils.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/disassembler/dmwalk.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/dispatcher/dsmethod.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/dispatcher/dswload.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/events/evregion.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/events/evrgnini.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/events/evxface.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/events/evxfevnt.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/events/evxfregn.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/executer/exmutex.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/include/acnamesp.h user/luigi/ipfw3-head/sys/contrib/dev/acpica/include/acobject.h user/luigi/ipfw3-head/sys/contrib/dev/acpica/include/acoutput.h user/luigi/ipfw3-head/sys/contrib/dev/acpica/include/acpixf.h user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsaccess.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsdump.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nseval.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsnames.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nspredef.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsrepair.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsrepair2.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsutils.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsxfeval.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsxfname.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/namespace/nsxfobj.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/parser/psxface.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/resources/rsxface.c user/luigi/ipfw3-head/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h user/luigi/ipfw3-head/sys/contrib/dev/acpica/utilities/utcopy.c user/luigi/ipfw3-head/sys/dev/ata/ata-all.c user/luigi/ipfw3-head/sys/dev/ata/ata-all.h user/luigi/ipfw3-head/sys/dev/ata/ata-disk.c user/luigi/ipfw3-head/sys/dev/ata/atapi-cd.c user/luigi/ipfw3-head/sys/dev/ata/atapi-cd.h user/luigi/ipfw3-head/sys/dev/ata/chipsets/ata-acerlabs.c user/luigi/ipfw3-head/sys/dev/ata/chipsets/ata-amd.c user/luigi/ipfw3-head/sys/dev/ata/chipsets/ata-ite.c user/luigi/ipfw3-head/sys/dev/e1000/e1000_82543.c user/luigi/ipfw3-head/sys/dev/e1000/e1000_osdep.h user/luigi/ipfw3-head/sys/dev/fdc/fdc_acpi.c user/luigi/ipfw3-head/sys/dev/if_ndis/if_ndis.c user/luigi/ipfw3-head/sys/dev/vge/if_vge.c user/luigi/ipfw3-head/sys/dev/vge/if_vgereg.h user/luigi/ipfw3-head/sys/dev/vge/if_vgevar.h user/luigi/ipfw3-head/sys/dev/wpi/if_wpi.c user/luigi/ipfw3-head/sys/geom/part/g_part.c user/luigi/ipfw3-head/sys/geom/part/g_part.h user/luigi/ipfw3-head/sys/geom/part/g_part_gpt.c user/luigi/ipfw3-head/sys/i386/conf/NOTES user/luigi/ipfw3-head/sys/kern/kern_jail.c user/luigi/ipfw3-head/sys/kern/kern_lock.c user/luigi/ipfw3-head/sys/kern/kern_sx.c user/luigi/ipfw3-head/sys/kern/kern_timeout.c user/luigi/ipfw3-head/sys/kern/subr_sleepqueue.c user/luigi/ipfw3-head/sys/mips/adm5120/if_admsw.c user/luigi/ipfw3-head/sys/net/radix.c user/luigi/ipfw3-head/sys/net/radix.h user/luigi/ipfw3-head/sys/net/route.c user/luigi/ipfw3-head/sys/net/rtsock.c user/luigi/ipfw3-head/sys/netinet/raw_ip.c user/luigi/ipfw3-head/sys/netinet6/raw_ip6.c user/luigi/ipfw3-head/sys/nfsclient/bootp_subr.c user/luigi/ipfw3-head/sys/nfsclient/krpc_subr.c user/luigi/ipfw3-head/sys/nfsclient/nfs_vfsops.c user/luigi/ipfw3-head/sys/nfsclient/nfs_vnops.c user/luigi/ipfw3-head/sys/sys/_lockmgr.h user/luigi/ipfw3-head/sys/sys/bio.h user/luigi/ipfw3-head/sys/sys/gpt.h user/luigi/ipfw3-head/sys/sys/jail.h user/luigi/ipfw3-head/sys/sys/param.h user/luigi/ipfw3-head/sys/sys/sleepqueue.h user/luigi/ipfw3-head/tools/regression/usr.bin/Makefile user/luigi/ipfw3-head/usr.bin/calendar/calendar.c user/luigi/ipfw3-head/usr.bin/calendar/day.c user/luigi/ipfw3-head/usr.bin/calendar/ostern.c user/luigi/ipfw3-head/usr.bin/calendar/paskha.c user/luigi/ipfw3-head/usr.bin/comm/comm.1 user/luigi/ipfw3-head/usr.bin/comm/comm.c user/luigi/ipfw3-head/usr.bin/lastcomm/pathnames.h user/luigi/ipfw3-head/usr.bin/make/arch.c user/luigi/ipfw3-head/usr.bin/make/dir.c user/luigi/ipfw3-head/usr.bin/make/for.c user/luigi/ipfw3-head/usr.bin/make/globals.h user/luigi/ipfw3-head/usr.bin/make/lst.c user/luigi/ipfw3-head/usr.bin/make/lst.h user/luigi/ipfw3-head/usr.bin/make/make.c user/luigi/ipfw3-head/usr.bin/make/str.c user/luigi/ipfw3-head/usr.bin/make/targ.c user/luigi/ipfw3-head/usr.bin/make/var.c user/luigi/ipfw3-head/usr.bin/mktemp/mktemp.c user/luigi/ipfw3-head/usr.bin/pr/egetopt.c user/luigi/ipfw3-head/usr.bin/talk/ctl_transact.c user/luigi/ipfw3-head/usr.bin/talk/display.c user/luigi/ipfw3-head/usr.bin/talk/get_addrs.c user/luigi/ipfw3-head/usr.bin/talk/get_iface.c user/luigi/ipfw3-head/usr.bin/talk/get_names.c user/luigi/ipfw3-head/usr.bin/talk/invite.c user/luigi/ipfw3-head/usr.bin/talk/look_up.c user/luigi/ipfw3-head/usr.bin/talk/talk.c user/luigi/ipfw3-head/usr.bin/talk/talk.h user/luigi/ipfw3-head/usr.bin/tset/extern.h user/luigi/ipfw3-head/usr.bin/tset/map.c user/luigi/ipfw3-head/usr.bin/tset/misc.c user/luigi/ipfw3-head/usr.bin/tset/set.c user/luigi/ipfw3-head/usr.bin/tset/term.c user/luigi/ipfw3-head/usr.bin/tset/tset.c user/luigi/ipfw3-head/usr.bin/tset/wrterm.c user/luigi/ipfw3-head/usr.bin/vis/foldit.c user/luigi/ipfw3-head/usr.bin/xinstall/xinstall.c user/luigi/ipfw3-head/usr.sbin/jls/jls.c user/luigi/ipfw3-head/usr.sbin/mergemaster/mergemaster.sh user/luigi/ipfw3-head/usr.sbin/ypserv/yp_main.c user/luigi/ipfw3-head/usr.sbin/ypserv/ypserv.8 Directory Properties: user/luigi/ipfw3-head/ (props changed) user/luigi/ipfw3-head/cddl/contrib/opensolaris/ (props changed) user/luigi/ipfw3-head/contrib/bind9/ (props changed) user/luigi/ipfw3-head/contrib/cpio/ (props changed) user/luigi/ipfw3-head/contrib/csup/ (props changed) user/luigi/ipfw3-head/contrib/ee/ (props changed) user/luigi/ipfw3-head/contrib/expat/ (props changed) user/luigi/ipfw3-head/contrib/file/ (props changed) user/luigi/ipfw3-head/contrib/gdb/ (props changed) user/luigi/ipfw3-head/contrib/gdtoa/ (props changed) user/luigi/ipfw3-head/contrib/less/ (props changed) user/luigi/ipfw3-head/contrib/libpcap/ (props changed) user/luigi/ipfw3-head/contrib/ncurses/ (props changed) user/luigi/ipfw3-head/contrib/netcat/ (props changed) user/luigi/ipfw3-head/contrib/ntp/ (props changed) user/luigi/ipfw3-head/contrib/openbsm/ (props changed) user/luigi/ipfw3-head/contrib/openpam/ (props changed) user/luigi/ipfw3-head/contrib/pf/ (props changed) user/luigi/ipfw3-head/contrib/sendmail/ (props changed) user/luigi/ipfw3-head/contrib/tcpdump/ (props changed) user/luigi/ipfw3-head/contrib/tcsh/ (props changed) user/luigi/ipfw3-head/contrib/top/ (props changed) user/luigi/ipfw3-head/contrib/top/install-sh (props changed) user/luigi/ipfw3-head/contrib/wpa/ (props changed) user/luigi/ipfw3-head/crypto/openssh/ (props changed) user/luigi/ipfw3-head/crypto/openssl/ (props changed) user/luigi/ipfw3-head/lib/libc/ (props changed) user/luigi/ipfw3-head/lib/libc/stdtime/ (props changed) user/luigi/ipfw3-head/lib/libutil/ (props changed) user/luigi/ipfw3-head/sbin/ (props changed) user/luigi/ipfw3-head/sbin/ipfw/ (props changed) user/luigi/ipfw3-head/share/zoneinfo/ (props changed) user/luigi/ipfw3-head/sys/ (props changed) user/luigi/ipfw3-head/sys/amd64/include/xen/ (props changed) user/luigi/ipfw3-head/sys/cddl/contrib/opensolaris/ (props changed) user/luigi/ipfw3-head/sys/contrib/dev/acpica/ (props changed) user/luigi/ipfw3-head/sys/contrib/pf/ (props changed) user/luigi/ipfw3-head/sys/dev/xen/xenpci/ (props changed) user/luigi/ipfw3-head/usr.bin/csup/ (props changed) user/luigi/ipfw3-head/usr.bin/procstat/ (props changed) user/luigi/ipfw3-head/usr.sbin/zic/ (props changed) Modified: user/luigi/ipfw3-head/Makefile.inc1 ============================================================================== --- user/luigi/ipfw3-head/Makefile.inc1 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/Makefile.inc1 Mon Dec 14 23:49:06 2009 (r200559) @@ -1103,8 +1103,8 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/libkiconv lib/libkvm lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ - lib/libradius lib/libsbuf lib/libtacplus lib/libutil \ - ${_lib_libypclnt} lib/libz lib/msun \ + lib/libradius lib/libsbuf lib/libtacplus lib/libulog \ + lib/libutil ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ ${_secure_lib_libssl} lib/libdwarf lib/libproc Modified: user/luigi/ipfw3-head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/luigi/ipfw3-head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Dec 14 23:49:06 2009 (r200559) @@ -20,7 +20,7 @@ */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -2457,7 +2457,7 @@ zfs_do_receive(int argc, char **argv) bzero(&flags, sizeof (recvflags_t)); /* check options */ - while ((c = getopt(argc, argv, ":dnvF")) != -1) { + while ((c = getopt(argc, argv, ":dnuvF")) != -1) { switch (c) { case 'd': flags.isprefix = B_TRUE; @@ -2465,6 +2465,9 @@ zfs_do_receive(int argc, char **argv) case 'n': flags.dryrun = B_TRUE; break; + case 'u': + flags.nomount = B_TRUE; + break; case 'v': flags.verbose = B_TRUE; break; Modified: user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Dec 14 23:49:06 2009 (r200559) @@ -20,7 +20,7 @@ */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -457,6 +457,9 @@ typedef struct recvflags { /* byteswap flag is used internally; callers need not specify */ int byteswap : 1; + + /* do not mount file systems as they are extracted (private) */ + int nomount : 1; } recvflags_t; extern int zfs_receive(libzfs_handle_t *, const char *, recvflags_t, Modified: user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c ============================================================================== --- user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c Mon Dec 14 23:49:06 2009 (r200559) @@ -20,7 +20,7 @@ */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -2080,7 +2080,7 @@ zfs_receive(libzfs_handle_t *hdl, const err = zfs_receive_impl(hdl, tosnap, flags, infd, stream_avl, &top_zfs); - if (err == 0 && top_zfs) { + if (err == 0 && !flags.nomount && top_zfs) { zfs_handle_t *zhp; prop_changelist_t *clp; Modified: user/luigi/ipfw3-head/etc/mtree/BSD.usr.dist ============================================================================== --- user/luigi/ipfw3-head/etc/mtree/BSD.usr.dist Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/etc/mtree/BSD.usr.dist Mon Dec 14 23:49:06 2009 (r200559) @@ -230,6 +230,12 @@ .. dyn_sysctl .. + firmware + fwconsumer + .. + fwimage + .. + .. syscall module .. Modified: user/luigi/ipfw3-head/etc/rc.d/named ============================================================================== --- user/luigi/ipfw3-head/etc/rc.d/named Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/etc/rc.d/named Mon Dec 14 23:49:06 2009 (r200559) @@ -12,10 +12,9 @@ name="named" rcvar=named_enable -command="/usr/sbin/named" extra_commands="reload" -start_precmd="named_precmd" +start_precmd="named_prestart" start_postcmd="named_poststart" reload_cmd="named_reload" stop_cmd="named_stop" @@ -155,8 +154,17 @@ create_file () { chmod 644 $1 } -named_precmd() +named_prestart() { + command_args="-u ${named_uid:=root}" + + if [ ! "$named_conf" = '/etc/namedb/named.conf' ]; then + case "$named_flags" in + -c*|*' -c'*) ;; # No need to add it + *) command_args="-c $named_conf $command_args" ;; + esac + fi + local line nsip firstns # Is the user using a sandbox? @@ -170,11 +178,11 @@ named_precmd() # Create an rndc.key file for the user if none exists # - if [ -s "${named_chrootdir}/etc/namedb/rndc.conf" ]; then - return 0 - fi confgen_command="${command%/named}/rndc-confgen -a -b256 -u $named_uid \ -c ${named_chrootdir}/etc/namedb/rndc.key" + if [ -s "${named_chrootdir}/etc/namedb/rndc.conf" ]; then + unset confgen_command + fi if [ -s "${named_chrootdir}/etc/namedb/rndc.key" ]; then case `stat -f%Su ${named_chrootdir}/etc/namedb/rndc.key` in root|$named_uid) ;; @@ -260,10 +268,11 @@ named_precmd() } load_rc_config $name + # Updating the following variables requires that rc.conf be loaded first # required_dirs="$named_chrootdir" # if it is set, it must exist +required_files="${named_conf:=/etc/namedb/named.conf}" pidfile="${named_pidfile:-/var/run/named/pid}" -command_args="-u ${named_uid:=root}" run_rc_command "$1" Modified: user/luigi/ipfw3-head/etc/termcap.small ============================================================================== --- user/luigi/ipfw3-head/etc/termcap.small Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/etc/termcap.small Mon Dec 14 23:49:06 2009 (r200559) @@ -312,7 +312,7 @@ xterm-basic|modern xterm common:\ :kD=\E[3~:kb=^H:ke=\E[?1l\E>:ks=\E[?1h\E=:le=^H:md=\E[1m:\ :me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\ :rc=\E8:rs=\E[!p\E[?3;4l\E[4l\E>:sc=\E7:se=\E[27m:sf=^J:\ - :so=\E[7m:sr=\EM:st=\EH:te=\E[?1049l:ti=\E[?1049h:\ + :so=\E[7m:sr=\EM:st=\EH:\ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: # # This is the only entry which you should have to customize, since "xterm" @@ -320,3 +320,8 @@ xterm-basic|modern xterm common:\ # color_xterm and rxvt. xterm|X11 terminal emulator:\ :tc=xterm-new: +# +# Add the capability to "clear the screen" after exiting vi, more/less, etc. +xterm-clear:\ + :te=\E[?1049l:ti=\E[?1049h:\ + :tc=xterm-new: Modified: user/luigi/ipfw3-head/gnu/lib/libgcc/Makefile ============================================================================== --- user/luigi/ipfw3-head/gnu/lib/libgcc/Makefile Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/gnu/lib/libgcc/Makefile Mon Dec 14 23:49:06 2009 (r200559) @@ -297,7 +297,7 @@ CLEANFILES += cs-*.h option* #----------------------------------------------------------------------- # -# Build additional static libgcc_eh[_p].a librarries. +# Build symbol version map # SHLIB_MKMAP = ${GCCDIR}/mkmap-symver.awk SHLIB_MKMAP_OPTS = @@ -316,7 +316,7 @@ CLEANFILES += libgcc.map #----------------------------------------------------------------------- # -# Build additional static libgcc_eh[_p].a librarries. +# Build additional static libgcc_eh[_p].a libraries. # lib${LIB}_eh.a: ${EH_OBJS_T} @${ECHO} building static ${LIB}_eh library Modified: user/luigi/ipfw3-head/lib/Makefile ============================================================================== --- user/luigi/ipfw3-head/lib/Makefile Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/Makefile Mon Dec 14 23:49:06 2009 (r200559) @@ -21,6 +21,7 @@ # librpcsvc must be built before libpam. # libsbuf must be built before libcam. # libtacplus must be built before libpam. +# libulog must be built before libpam. # libutil must be built before libpam. # libypclnt must be built before libpam. # libgssapi must be built before librpcsec_gss @@ -30,8 +31,8 @@ SUBDIR= ${_csu} libc libbsm libauditd libcom_err libcrypt libelf libkvm msun \ libmd \ ncurses ${_libnetgraph} libradius librpcsvc libsbuf \ - libtacplus libutil ${_libypclnt} libalias libarchive ${_libatm} \ - libbegemot ${_libbluetooth} ${_libbsnmp} libbz2 \ + libtacplus libulog libutil ${_libypclnt} libalias libarchive \ + ${_libatm} libbegemot ${_libbluetooth} ${_libbsnmp} libbz2 \ libcalendar libcam libcompat libdevinfo libdevstat libdisk \ libdwarf libedit libexpat libfetch libftpio libgeom ${_libgpib} \ ${_libgssapi} ${_librpcsec_gss} libipsec \ @@ -40,8 +41,8 @@ SUBDIR= ${_csu} libc libbsm libauditd li ${_libpmc} libproc librt ${_libsdp} ${_libsm} ${_libsmb} \ ${_libsmdb} \ ${_libsmutil} libstand ${_libtelnet} ${_libthr} libthread_db libufs \ - libugidfw libulog ${_libusbhid} ${_libusb} ${_libvgl} libwrap \ - liby libz ${_bind} + libugidfw ${_libusbhid} ${_libusb} ${_libvgl} libwrap liby libz \ + ${_bind} .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) _csu=csu/${MACHINE_ARCH}-elf Modified: user/luigi/ipfw3-head/lib/libexpat/libbsdxml.3 ============================================================================== --- user/luigi/ipfw3-head/lib/libexpat/libbsdxml.3 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libexpat/libbsdxml.3 Mon Dec 14 23:49:06 2009 (r200559) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\"/ -.Dd May 5, 2008 +.Dd December 12, 2009 .Dt LIBBSDXML 3 .Os .Sh NAME @@ -38,6 +38,15 @@ The .Nm library is a verbatim copy of the eXpat XML library version 2.0.1. .Pp +The +.Nm +library is intended to use within the +.Fx +base system only. +Use of the +.Nm +library for other purposes is not supported and discouraged. +.Pp To avoid version and autoconfiguration issues, the library has been renamed to .Nm Modified: user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/Makefile ============================================================================== --- user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/Makefile Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/Makefile Mon Dec 14 23:49:06 2009 (r200559) @@ -28,7 +28,7 @@ LIB= pam_lastlog SRCS= pam_lastlog.c MAN= pam_lastlog.8 -DPADD= ${LIBUTIL} -LDADD= -lutil +DPADD= ${LIBULOG} +LDADD= -lulog .include <bsd.lib.mk> Modified: user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c ============================================================================== --- user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libpam/modules/pam_lastlog/pam_lastlog.c Mon Dec 14 23:49:06 2009 (r200559) @@ -46,19 +46,9 @@ __FBSDID("$FreeBSD$"); #define _BSD_SOURCE -#include <sys/param.h> - -#include <fcntl.h> -#include <libutil.h> -#include <paths.h> #include <pwd.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <syslog.h> #include <time.h> -#include <unistd.h> -#include <utmp.h> +#include <ulog.h> #define PAM_SM_SESSION @@ -71,13 +61,11 @@ pam_sm_open_session(pam_handle_t *pamh, int argc __unused, const char *argv[] __unused) { struct passwd *pwd; - struct utmp utmp; - struct lastlog ll; + struct ulog_utmpx *utx; time_t t; const char *user; const void *rhost, *tty; - off_t llpos; - int fd, pam_err; + int pam_err; pam_err = pam_get_user(pamh, &user, NULL); if (pam_err != PAM_SUCCESS) @@ -101,72 +89,29 @@ pam_sm_open_session(pam_handle_t *pamh, pam_err = PAM_SERVICE_ERR; goto err; } - if (strncmp(tty, _PATH_DEV, strlen(_PATH_DEV)) == 0) - tty = (const char *)tty + strlen(_PATH_DEV); - if (*(const char *)tty == '\0') - return (PAM_SERVICE_ERR); - fd = open(_PATH_LASTLOG, O_RDWR|O_CREAT, 0644); - if (fd == -1) { - PAM_LOG("Failed to open %s", _PATH_LASTLOG); - goto file_err; - } - - /* - * Record session in lastlog(5). - */ - llpos = (off_t)(pwd->pw_uid * sizeof(ll)); - if (lseek(fd, llpos, L_SET) != llpos) - goto file_err; if ((flags & PAM_SILENT) == 0) { - if (read(fd, &ll, sizeof ll) == sizeof ll && ll.ll_time != 0) { - t = ll.ll_time; - if (*ll.ll_host != '\0') - pam_info(pamh, "Last login: %.*s from %.*s", - 24 - 5, ctime(&t), - (int)sizeof(ll.ll_host), ll.ll_host); - else - pam_info(pamh, "Last login: %.*s on %.*s", - 24 - 5, ctime(&t), - (int)sizeof(ll.ll_line), ll.ll_line); + if (ulog_setutxfile(UTXF_LASTLOG, NULL) != 0) { + PAM_LOG("Failed to open lastlog database"); + } else { + utx = ulog_getutxuser(user); + if (utx != NULL && utx->ut_type == USER_PROCESS) { + t = utx->ut_tv.tv_sec; + if (*utx->ut_host != '\0') + pam_info(pamh, "Last login: %.*s from %s", + 24 - 5, ctime(&t), utx->ut_host); + else + pam_info(pamh, "Last login: %.*s on %s", + 24 - 5, ctime(&t), utx->ut_line); + } + ulog_endutxent(); } - if (lseek(fd, llpos, L_SET) != llpos) - goto file_err; } - bzero(&ll, sizeof(ll)); - ll.ll_time = time(NULL); - - /* note: does not need to be NUL-terminated */ - strncpy(ll.ll_line, tty, sizeof(ll.ll_line)); - if (rhost != NULL && *(const char *)rhost != '\0') - /* note: does not need to be NUL-terminated */ - strncpy(ll.ll_host, rhost, sizeof(ll.ll_host)); - - if (write(fd, (char *)&ll, sizeof(ll)) != sizeof(ll) || close(fd) != 0) - goto file_err; - - PAM_LOG("Login recorded in %s", _PATH_LASTLOG); - - /* - * Record session in utmp(5) and wtmp(5). - */ - bzero(&utmp, sizeof(utmp)); - utmp.ut_time = time(NULL); - /* note: does not need to be NUL-terminated */ - strncpy(utmp.ut_name, user, sizeof(utmp.ut_name)); - if (rhost != NULL && *(const char *)rhost != '\0') - strncpy(utmp.ut_host, rhost, sizeof(utmp.ut_host)); - (void)strncpy(utmp.ut_line, tty, sizeof(utmp.ut_line)); - login(&utmp); + ulog_login(tty, user, rhost); return (PAM_SUCCESS); -file_err: - syslog(LOG_ERR, "%s: %m", _PATH_LASTLOG); - if (fd != -1) - close(fd); - pam_err = PAM_SYSTEM_ERR; err: if (openpam_get_option(pamh, "no_fail")) return (PAM_SUCCESS); @@ -174,7 +119,7 @@ err: } PAM_EXTERN int -pam_sm_close_session(pam_handle_t *pamh __unused, int flags __unused, +pam_sm_close_session(pam_handle_t *pamh, int flags __unused, int argc __unused, const char *argv[] __unused) { const void *tty; @@ -188,14 +133,7 @@ pam_sm_close_session(pam_handle_t *pamh pam_err = PAM_SERVICE_ERR; goto err; } - if (strncmp(tty, _PATH_DEV, strlen(_PATH_DEV)) == 0) - tty = (const char *)tty + strlen(_PATH_DEV); - if (*(const char *)tty == '\0') - return (PAM_SERVICE_ERR); - if (logout(tty) != 1) - syslog(LOG_ERR, "%s(): no utmp record for %s", - __func__, (const char *)tty); - logwtmp(tty, "", ""); + ulog_logout(tty); return (PAM_SUCCESS); err: Modified: user/luigi/ipfw3-head/lib/libtacplus/libtacplus.3 ============================================================================== --- user/luigi/ipfw3-head/lib/libtacplus/libtacplus.3 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libtacplus/libtacplus.3 Mon Dec 14 23:49:06 2009 (r200559) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 2, 1998 +.Dd December 11, 2009 .Dt LIBTACPLUS 3 .Os .Sh NAME Modified: user/luigi/ipfw3-head/lib/libthr/thread/thr_umtx.c ============================================================================== --- user/luigi/ipfw3-head/lib/libthr/thread/thr_umtx.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libthr/thread/thr_umtx.c Mon Dec 14 23:49:06 2009 (r200559) @@ -112,10 +112,13 @@ __thr_umutex_timedlock(struct umutex *mt int __thr_umutex_unlock(struct umutex *mtx, uint32_t id) { +#ifndef __ia64__ + /* XXX this logic has a race-condition on ia64. */ if ((mtx->m_flags & (UMUTEX_PRIO_PROTECT | UMUTEX_PRIO_INHERIT)) == 0) { atomic_cmpset_rel_32(&mtx->m_owner, id | UMUTEX_CONTESTED, UMUTEX_CONTESTED); return _umtx_op_err(mtx, UMTX_OP_MUTEX_WAKE, 0, 0, 0); } +#endif /* __ia64__ */ return _umtx_op_err(mtx, UMTX_OP_MUTEX_UNLOCK, 0, 0, 0); } Modified: user/luigi/ipfw3-head/lib/libulog/ulog_login.c ============================================================================== --- user/luigi/ipfw3-head/lib/libulog/ulog_login.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libulog/ulog_login.c Mon Dec 14 23:49:06 2009 (r200559) @@ -48,7 +48,8 @@ ulog_login(const char *line, const char utx.ut_type = USER_PROCESS; strncpy(utx.ut_line, line, sizeof utx.ut_line); strncpy(utx.ut_user, user, sizeof utx.ut_user); - strncpy(utx.ut_host, host, sizeof utx.ut_host); + if (host != NULL) + strncpy(utx.ut_host, host, sizeof utx.ut_host); gettimeofday(&utx.ut_tv, NULL); ulog_pututxline(&utx); Modified: user/luigi/ipfw3-head/lib/libusb/libusb10.c ============================================================================== --- user/luigi/ipfw3-head/lib/libusb/libusb10.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libusb/libusb10.c Mon Dec 14 23:49:06 2009 (r200559) @@ -379,8 +379,6 @@ libusb_open_device_with_vid_pid(libusb_c if ((i = libusb_get_device_list(ctx, &devs)) < 0) return (NULL); - pdev = NULL; - for (j = 0; j < i; j++) { pdev = devs[j]->os_priv; pdesc = libusb20_dev_get_device_desc(pdev); @@ -396,6 +394,8 @@ libusb_open_device_with_vid_pid(libusb_c break; } } + if (j == i) + pdev = NULL; libusb_free_device_list(devs, 1); DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave"); Modified: user/luigi/ipfw3-head/lib/libutil/gr_util.c ============================================================================== --- user/luigi/ipfw3-head/lib/libutil/gr_util.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/lib/libutil/gr_util.c Mon Dec 14 23:49:06 2009 (r200559) @@ -117,8 +117,8 @@ gr_make(const struct group *gr) /* Create the group line and fill it. */ if ((line = malloc(line_size)) == NULL) return (NULL); - line_size = snprintf(line, line_size, group_line_format, gr->gr_name, - gr->gr_passwd, (uintmax_t)gr->gr_gid); + snprintf(line, line_size, group_line_format, gr->gr_name, gr->gr_passwd, + (uintmax_t)gr->gr_gid); if (gr->gr_mem != NULL) for (ndx = 0; gr->gr_mem[ndx] != NULL; ndx++) { strcat(line, gr->gr_mem[ndx]); Modified: user/luigi/ipfw3-head/share/examples/Makefile ============================================================================== --- user/luigi/ipfw3-head/share/examples/Makefile Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/examples/Makefile Mon Dec 14 23:49:06 2009 (r200559) @@ -88,6 +88,12 @@ XFILES= BSD_daemon/FreeBSD.pfa \ kld/dyn_sysctl/Makefile \ kld/dyn_sysctl/README \ kld/dyn_sysctl/dyn_sysctl.c \ + kld/firmware/Makefile \ + kld/firmware/README \ + kld/firmware/fwconsumer/Makefile \ + kld/firmware/fwconsumer/fw_consumer.c \ + kld/firmware/fwimage/Makefile \ + kld/firmware/fwimage/firmware.img \ kld/syscall/Makefile \ kld/syscall/module/Makefile \ kld/syscall/module/syscall.c \ Modified: user/luigi/ipfw3-head/share/man/man4/iwnfw.4 ============================================================================== --- user/luigi/ipfw3-head/share/man/man4/iwnfw.4 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/man/man4/iwnfw.4 Mon Dec 14 23:49:06 2009 (r200559) @@ -60,4 +60,4 @@ It may be statically linked into the kernel, or loaded as a module. .Sh SEE ALSO .Xr iwn 4 , -.Xr firmware 8 +.Xr firmware 9 Modified: user/luigi/ipfw3-head/share/man/man9/sleep.9 ============================================================================== --- user/luigi/ipfw3-head/share/man/man9/sleep.9 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/man/man9/sleep.9 Mon Dec 14 23:49:06 2009 (r200559) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 4, 2008 +.Dd December 12, 2009 .Os .Dt SLEEP 9 .Sh NAME @@ -97,6 +97,7 @@ when it resumes. should never be used, as it is for compatibility only. A new priority of 0 means to use the thread's current priority when it is made runnable again. +.Pp If .Fa priority includes the @@ -113,6 +114,17 @@ possible, and is returned if the system call should be interrupted by the signal (return .Er EINTR ) . +If +.Dv PBDRY +flag is specified in addition to +.Dv PCATCH , +then the sleeping thread is not stopped while sleeping upon delivery of +.Dv SIGSTOP +or other stop action. +Instead, it is waken up, assuming that stop occurs on reaching a stop +point when returning to usermode. +The flag should be used when sleeping thread owns resources, for instance +vnode locks, that should be freed timely. .Pp The parameter .Fa wmesg Modified: user/luigi/ipfw3-head/share/man/man9/sleepqueue.9 ============================================================================== --- user/luigi/ipfw3-head/share/man/man9/sleepqueue.9 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/man/man9/sleepqueue.9 Mon Dec 14 23:49:06 2009 (r200559) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 13, 2007 +.Dd December 12, 2009 .Dt SLEEPQUEUE 9 .Os .Sh NAME @@ -41,6 +41,7 @@ .Nm sleepq_remove , .Nm sleepq_signal , .Nm sleepq_set_timeout , +.Nm sleepq_sleepcnt , .Nm sleepq_timedwait , .Nm sleepq_timedwait_sig , .Nm sleepq_wait , @@ -77,6 +78,8 @@ .Fn sleepq_signal "void *wchan" "int flags" "int pri" "int queue" .Ft void .Fn sleepq_set_timeout "void *wchan" "int timo" +.Ft u_int +.Fn sleepq_sleepcnt "void *wchan" "int queue" .Ft int .Fn sleepq_timedwait "void *wchan" .Ft int @@ -195,12 +198,19 @@ A sleep queue used to implement .Xr pause 9 . .El .Pp -There is currently only one optional flag: +There are currently two optional flag: .Pp .Bl -tag -width ".Dv SLEEPQ_INTERRUPTIBLE" -compact .It Dv SLEEPQ_INTERRUPTIBLE The current thread is entering an interruptible sleep. .El +.Bl -tag -width ".Dv SLEEPQ_STOP_ON_BDRY" -compact +.It Dv SLEEPQ_STOP_ON_BDRY +When thread is entering an interruptible sleep, do not stop it upon +arrival of stop action, like +.Dv SIGSTOP . +Wake it up instead. +.El .Pp A timeout on the sleep may be specified by calling .Fn sleepq_set_timeout @@ -348,6 +358,14 @@ One possible use is waking up a specific channel. .Pp The +.Fn sleepq_sleepcnt +function offer a simple way to retrieve the number of threads sleeping for +the specified +.Fa queue , +given a +.Fa wchan . +.Pp +The .Fn sleepq_abort , .Fn sleepq_broadcast , and Modified: user/luigi/ipfw3-head/share/termcap/termcap.5 ============================================================================== --- user/luigi/ipfw3-head/share/termcap/termcap.5 Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/termcap/termcap.5 Mon Dec 14 23:49:06 2009 (r200559) @@ -53,7 +53,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 16, 1994 +.Dd December 13, 2009 .Dt TERMCAP 5 .Os .Sh NAME @@ -1999,6 +1999,25 @@ Unfortunately, due to lack of a definiti only .Xr terminfo 5 supports these capabilities. +.Pp +For the +.Xr xterm 1 +terminal emulator the traditional behavior in +.Fx +when exiting a pager such as +.Xr less 1 +or +.Xr more 1 , +or an editor such as +.Xr vi 1 +is +.Em NOT +to clear the screen after the program exits. +If you prefer to clear the screen there are a number of +.Dq xterm-clear +entries that add this capability in the +.Nm +file that you can use directly, or as examples. .Ss Glitches and Braindamage Hazeltine terminals, which do not allow `~' characters to be displayed, should indicate @@ -2105,6 +2124,7 @@ Hash database file containing terminal d .Xr tset 1 , .Xr ul 1 , .Xr vi 1 , +.Xr xterm 1 , .Xr ncurses 3 , .Xr printf 3 , .Xr termcap 3 , Modified: user/luigi/ipfw3-head/share/termcap/termcap.src ============================================================================== --- user/luigi/ipfw3-head/share/termcap/termcap.src Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/share/termcap/termcap.src Mon Dec 14 23:49:06 2009 (r200559) @@ -2800,7 +2800,12 @@ SW|screen-w|VT 100/ANSI X3.64 virtual te # # I checked the limits using ncurses "captoinfo -CrTUvx", which prints # the resolved length of each entry in a comment at the end - T.Dickey + +# Add the capability to "clear the screen" after exiting vi, more/less, etc. # +xterm-clear:\ + :te=\E[?1049l:ti=\E[?1049h:\ + :tc=xterm-new: xterm-new|modern xterm:\ :*6=\EOF:@7=\EOF:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\ @@ -2820,7 +2825,7 @@ xterm-basic|modern xterm common:\ :kD=\E[3~:kb=^H:ke=\E[?1l\E>:ks=\E[?1h\E=:le=^H:md=\E[1m:\ :me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\ :rc=\E8:rs=\E[!p\E[?3;4l\E[4l\E>:sc=\E7:se=\E[27m:sf=^J:\ - :so=\E[7m:sr=\EM:st=\EH:te=\E[?1049l:ti=\E[?1049h:\ + :so=\E[7m:sr=\EM:st=\EH:\ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: # The xterm-new description has all of the features, but is not completely @@ -2886,6 +2891,12 @@ xterm-xmc|xterm alias 6:\ # # An 8-bit description is doable with termcap, but there are probably no # termcap (or BSD curses) applications that are able to use it. +# +# Add the capability to "clear the screen" after exiting vi, more/less, etc. +# +xterm-8bit-clear:\ + :te=\233?1049l:ti=\233?1049h:ue=\23324m:\ + :tc=xterm-8bit: xterm-8bit|xterm terminal emulator 8-bit controls (X Window System):\ :am:km:mi:ms:xn:\ :co#80:it#8:li#24:\ @@ -2902,7 +2913,7 @@ xterm-8bit|xterm terminal emulator 8-bit :ke=\233?1l\E>:kh=\2331~:kl=\217D:kr=\217C:ks=\233?1h\E=:\ :ku=\217A:le=^H:mb=\2335m:md=\2331m:me=\233m:mr=\2337m:\ :nd=\233C:rc=\E8:sc=\E7:se=\23327m:sf=^J:so=\2337m:sr=\215:\ - :st=\210:ta=^I:te=\233?1049l:ti=\233?1049h:ue=\23324m:\ + :st=\210:ta=^I:ue=\23324m:\ :up=\233A:us=\2334m:vb=\233?5h\233?5l:ve=\233?25l\233?25h:\ :vs=\233?12;25h:vi=\233?25l: # @@ -2941,6 +2952,12 @@ xterm-ic|xterm-vi|xterm with insert char :IC=\E[%d@:ei@:ic=\E[@:im@:tc=xterm: # # Compatible with the X11R6.3 xterm +# +# Add the capability to "clear the screen" after exiting vi, more/less, etc. +# +xterm-r6-clear:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:\ + :tc=xterm-r6: xterm-r6|xterm-old|X11R6 xterm:\ :am:bs:km:mi:ms:pt:xn:\ :co#80:kn#20:li#24:\ @@ -2958,10 +2975,16 @@ xterm-r6|xterm-old|X11R6 xterm:\ :ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ :ku=\EOA:md=\E[1m:me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:\ :rc=\E8:rs=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:te=\E[2J\E[?47l\E8:\ - :ti=\E7\E[?47h:ue=\E[m:up=\E[A:us=\E[4m: + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :ue=\E[m:up=\E[A:us=\E[4m: # # Compatible with the R5 xterm +# +# Add the capability to "clear the screen" after exiting vi, more/less, etc. +# +xterm-r5-clear:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:\ + :tc=xterm-r5: xterm-r5|X11R5 xterm X11R5:\ :am:bs:km:mi:ms:pt:xn:\ :co#80:kn#4:li#24:\ @@ -2974,8 +2997,8 @@ xterm-r5|X11R5 xterm X11R5:\ :ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ :ku=\EOA:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\ :rs=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H:\ - :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:te=\E[2J\E[?47l\E8:\ - :ti=\E7\E[?47h:ue=\E[m:up=\E[A:us=\E[4m: + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :up=\E[A:us=\E[4m: # # Customization begins here. xterm-xfree86|xterm terminal emulator (XFree86):\ Modified: user/luigi/ipfw3-head/sys/amd64/amd64/vm_machdep.c ============================================================================== --- user/luigi/ipfw3-head/sys/amd64/amd64/vm_machdep.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/sys/amd64/amd64/vm_machdep.c Mon Dec 14 23:49:06 2009 (r200559) @@ -330,10 +330,14 @@ cpu_set_syscall_retval(struct thread *td case ERESTART: /* - * Reconstruct pc, we know that 'syscall' is 2 bytes. + * Reconstruct pc, we know that 'syscall' is 2 bytes, + * lcall $X,y is 7 bytes, int 0x80 is 2 bytes. + * We saved this in tf_err. * We have to do a full context restore so that %r10 * (which was holding the value of %rcx) is restored * for the next iteration. + * r10 restore is only required for freebsd/amd64 processes, + * but shall be innocent for any ia32 ABI. */ td->td_frame->tf_rip -= td->td_frame->tf_err; td->td_frame->tf_r10 = td->td_frame->tf_rcx; Modified: user/luigi/ipfw3-head/sys/amd64/ia32/ia32_syscall.c ============================================================================== --- user/luigi/ipfw3-head/sys/amd64/ia32/ia32_syscall.c Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/sys/amd64/ia32/ia32_syscall.c Mon Dec 14 23:49:06 2009 (r200559) @@ -183,35 +183,7 @@ ia32_syscall(struct trapframe *frame) AUDIT_SYSCALL_EXIT(error, td); } - switch (error) { - case 0: - frame->tf_rax = td->td_retval[0]; - frame->tf_rdx = td->td_retval[1]; - frame->tf_rflags &= ~PSL_C; - break; - - case ERESTART: - /* - * Reconstruct pc, assuming lcall $X,y is 7 bytes, - * int 0x80 is 2 bytes. We saved this in tf_err. - */ - frame->tf_rip -= frame->tf_err; - break; - - case EJUSTRETURN: - break; - - default: - if (p->p_sysent->sv_errsize) { - if (error >= p->p_sysent->sv_errsize) - error = -1; /* XXX */ - else - error = p->p_sysent->sv_errtbl[error]; - } - frame->tf_rax = error; - frame->tf_rflags |= PSL_C; - break; - } + cpu_set_syscall_retval(td, error); /* * Traced syscall. Modified: user/luigi/ipfw3-head/sys/boot/common/Makefile.inc ============================================================================== --- user/luigi/ipfw3-head/sys/boot/common/Makefile.inc Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/sys/boot/common/Makefile.inc Mon Dec 14 23:49:06 2009 (r200559) @@ -23,6 +23,11 @@ SRCS+= dev_net.c SRCS+= bcache.c .endif +.if defined(MD_IMAGE_SIZE) +CFLAGS+= -DMD_IMAGE_SIZE=${MD_IMAGE_SIZE} +SRCS+= md.c +.endif + # Machine-independant ISA PnP .if defined(HAVE_ISABUS) SRCS+= isapnp.c Copied: user/luigi/ipfw3-head/sys/boot/common/md.c (from r200555, head/sys/boot/common/md.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/luigi/ipfw3-head/sys/boot/common/md.c Mon Dec 14 23:49:06 2009 (r200559, copy of r200555, head/sys/boot/common/md.c) @@ -0,0 +1,151 @@ +/*- + * Copyright (c) 2009 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/param.h> +#include <sys/endian.h> +#include <sys/queue.h> +#include <machine/stdarg.h> +#include <stand.h> + +#include "bootstrap.h" + +#define MD_BLOCK_SIZE 512 + +#ifndef MD_IMAGE_SIZE +#error Must be compiled with MD_IMAGE_SIZE defined +#endif +#if (MD_IMAGE_SIZE == 0 || MD_IMAGE_SIZE % MD_BLOCK_SIZE) +#error Image size must be a multiple of 512. +#endif + +/* + * Preloaded image gets put here. + * Applications that patch the object with the image can determine + * the size looking at the start and end markers (strings), + * so we want them contiguous. + */ +static struct { + u_char start[MD_IMAGE_SIZE]; + u_char end[128]; +} md_image = { + .start = "MFS Filesystem goes here", + .end = "MFS Filesystem had better STOP here", +}; + +/* devsw I/F */ +static int md_init(void); +static int md_strategy(void *, int, daddr_t, size_t, char *, size_t *); +static int md_open(struct open_file *, ...); +static int md_close(struct open_file *); +static void md_print(int); + +struct devsw md_dev = { + "md", + DEVT_DISK, + md_init, + md_strategy, + md_open, + md_close, + noioctl, + md_print +}; + +static int +md_init(void) +{ + + return (0); +} + +static int +md_strategy(void *devdata, int rw, daddr_t blk, size_t size, char *buf, + size_t *rsize) +{ + struct devdesc *dev = (struct devdesc *)devdata; + size_t ofs; + + if (dev->d_unit != 0) + return (ENXIO); + + if (blk < 0 || blk >= (MD_IMAGE_SIZE / MD_BLOCK_SIZE)) + return (EIO); + + if (size % MD_BLOCK_SIZE) + return (EIO); + + ofs = blk * MD_BLOCK_SIZE; + if ((ofs + size) > MD_IMAGE_SIZE) + size = MD_IMAGE_SIZE - ofs; + + if (rsize != 0) + *rsize = size; + + switch (rw) { + case F_READ: + bcopy(md_image.start + ofs, buf, size); + return (0); + case F_WRITE: + bcopy(buf, md_image.start + ofs, size); + return (0); + } + + return (ENODEV); +} + +static int +md_open(struct open_file *f, ...) +{ + va_list ap; + struct devdesc *dev; + + va_start(ap, f); + dev = va_arg(ap, struct devdesc *); + va_end(ap); + + if (dev->d_unit != 0) + return (ENXIO); + + return (0); +} + +static int +md_close(struct open_file *f) +{ + struct devdesc *dev; + + dev = (struct devdesc *)(f->f_devdata); + return ((dev->d_unit != 0) ? ENXIO : 0); +} + +static void +md_print(int verbose) +{ + + printf("MD (%u bytes)\n", MD_IMAGE_SIZE); +} Modified: user/luigi/ipfw3-head/sys/boot/pc98/boot2/Makefile ============================================================================== --- user/luigi/ipfw3-head/sys/boot/pc98/boot2/Makefile Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/sys/boot/pc98/boot2/Makefile Mon Dec 14 23:49:06 2009 (r200559) @@ -28,6 +28,12 @@ CFLAGS+= -DCOMCONSOLE=${BOOT_COMCONSOLE_ BOOT_COMCONSOLE_SPEED?=9600 CFLAGS+= -DCOMSPEED=${BOOT_COMCONSOLE_SPEED} +# Set machine type to PC98_SYSTEM_PARAMETER +CFLAGS+= -DSET_MACHINE_TYPE + +# Initialize the bi_bios_geom using the BIOS geometry +CFLAGS+= -DGET_BIOSGEOM + # Enable code to take the default boot string from a fixed location on the # disk. See nextboot(8) and README.386BSD for more info. #CFLAGS+= -DNAMEBLOCK Modified: user/luigi/ipfw3-head/sys/boot/pc98/boot2/bios.S ============================================================================== --- user/luigi/ipfw3-head/sys/boot/pc98/boot2/bios.S Mon Dec 14 22:55:20 2009 (r200558) +++ user/luigi/ipfw3-head/sys/boot/pc98/boot2/bios.S Mon Dec 14 23:49:06 2009 (r200559) @@ -91,8 +91,6 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include "asm.h" .text -#ifndef CDBOOT *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912142349.nBENn6ch042590>