From owner-svn-src-projects@FreeBSD.ORG Thu Mar 26 22:36:06 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F106B41C; Thu, 26 Mar 2015 22:36:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D80355E2; Thu, 26 Mar 2015 22:36:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t2QMa6Z1033371; Thu, 26 Mar 2015 22:36:06 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t2QMZvYi033311; Thu, 26 Mar 2015 22:35:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201503262235.t2QMZvYi033311@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 26 Mar 2015 22:35:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r280717 - in projects/lld-import: . contrib/gcc/config/aarch64 include lib/libc/gen lib/libfetch lib/libgeom release/arm sbin/geom/class/part share/man/man4 share/misc sys/arm/arm sys/a... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Mar 2015 22:36:07 -0000 Author: dim Date: Thu Mar 26 22:35:56 2015 New Revision: 280717 URL: https://svnweb.freebsd.org/changeset/base/280717 Log: Merge ^/head r280459 through r280715. Added: projects/lld-import/sys/arm/arm/pmap-v6-new.c - copied unchanged from r280715, head/sys/arm/arm/pmap-v6-new.c projects/lld-import/sys/arm/broadcom/bcm2835/bcm2836.c - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/bcm2836.c projects/lld-import/sys/arm/broadcom/bcm2835/bcm2836.h - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/bcm2836.h projects/lld-import/sys/arm/broadcom/bcm2835/files.bcm2836 - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/files.bcm2836 projects/lld-import/sys/arm/broadcom/bcm2835/std.bcm2836 - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/std.bcm2836 projects/lld-import/sys/arm/conf/RPI2 - copied unchanged from r280715, head/sys/arm/conf/RPI2 projects/lld-import/sys/arm/include/pmap-v6.h - copied unchanged from r280715, head/sys/arm/include/pmap-v6.h projects/lld-import/sys/arm/include/pmap_var.h - copied unchanged from r280715, head/sys/arm/include/pmap_var.h projects/lld-import/sys/arm/include/pte-v6.h - copied unchanged from r280715, head/sys/arm/include/pte-v6.h projects/lld-import/sys/arm64/include/frame.h - copied unchanged from r280715, head/sys/arm64/include/frame.h projects/lld-import/sys/arm64/include/ptrace.h - copied unchanged from r280715, head/sys/arm64/include/ptrace.h projects/lld-import/sys/arm64/include/reg.h - copied unchanged from r280715, head/sys/arm64/include/reg.h projects/lld-import/sys/arm64/include/sysarch.h - copied unchanged from r280715, head/sys/arm64/include/sysarch.h projects/lld-import/sys/boot/fdt/dts/arm/bcm2836.dtsi - copied unchanged from r280715, head/sys/boot/fdt/dts/arm/bcm2836.dtsi projects/lld-import/sys/boot/fdt/dts/arm/rpi2.dts - copied unchanged from r280715, head/sys/boot/fdt/dts/arm/rpi2.dts projects/lld-import/usr.sbin/pmcstudy/pmcstudy.8 - copied unchanged from r280715, head/usr.sbin/pmcstudy/pmcstudy.8 Deleted: projects/lld-import/usr.sbin/pmcstudy/pmcstudy.1 Modified: projects/lld-import/Makefile.inc1 projects/lld-import/ObsoleteFiles.inc projects/lld-import/contrib/gcc/config/aarch64/aarch64.h projects/lld-import/include/pthread.h projects/lld-import/include/signal.h projects/lld-import/include/stdlib.h projects/lld-import/lib/libc/gen/setmode.c projects/lld-import/lib/libfetch/common.c projects/lld-import/lib/libfetch/fetch.3 projects/lld-import/lib/libgeom/geom_xml2tree.c projects/lld-import/release/arm/BEAGLEBONE.conf projects/lld-import/release/arm/PANDABOARD.conf projects/lld-import/release/arm/RPI-B.conf projects/lld-import/release/arm/WANDBOARD-QUAD.conf projects/lld-import/release/arm/ZEDBOARD.conf projects/lld-import/sbin/geom/class/part/geom_part.c projects/lld-import/share/man/man4/icmp.4 projects/lld-import/share/man/man4/ixl.4 projects/lld-import/share/man/man4/ixlv.4 projects/lld-import/share/man/man4/witness.4 projects/lld-import/share/misc/committers-src.dot projects/lld-import/share/misc/organization.dot projects/lld-import/sys/arm/arm/genassym.c projects/lld-import/sys/arm/arm/machdep.c projects/lld-import/sys/arm/arm/mem.c projects/lld-import/sys/arm/arm/minidump_machdep.c projects/lld-import/sys/arm/arm/mp_machdep.c projects/lld-import/sys/arm/arm/swtch.S projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_intr.c projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_machdep.c projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/lld-import/sys/arm/include/machdep.h projects/lld-import/sys/arm/include/pcb.h projects/lld-import/sys/arm/include/pmap.h projects/lld-import/sys/arm/include/pte.h projects/lld-import/sys/arm/include/sf_buf.h projects/lld-import/sys/arm/include/smp.h projects/lld-import/sys/arm/include/vm.h projects/lld-import/sys/arm/include/vmparam.h projects/lld-import/sys/arm/mv/armadaxp/armadaxp_mp.c projects/lld-import/sys/cam/ctl/ctl.c projects/lld-import/sys/cam/scsi/scsi_da.c projects/lld-import/sys/conf/files.arm projects/lld-import/sys/conf/options.arm projects/lld-import/sys/dev/cxgbe/t4_sge.c projects/lld-import/sys/dev/usb/usb.h projects/lld-import/sys/geom/geom_dump.c projects/lld-import/sys/geom/geom_subr.c projects/lld-import/sys/geom/part/g_part.c projects/lld-import/sys/i386/conf/NOTES projects/lld-import/sys/kern/kern_sysctl.c projects/lld-import/sys/mips/conf/AR91XX_BASE projects/lld-import/sys/mips/include/cache_mipsNN.h projects/lld-import/sys/mips/include/cache_r4k.h projects/lld-import/sys/mips/mips/cache.c projects/lld-import/sys/mips/mips/cache_mipsNN.c projects/lld-import/sys/modules/Makefile projects/lld-import/sys/modules/dtb/rpi/Makefile projects/lld-import/sys/net/if_vlan.c projects/lld-import/sys/netinet/sctp_auth.c projects/lld-import/sys/netinet/sctp_output.c projects/lld-import/sys/netinet/sctp_pcb.c projects/lld-import/sys/netinet/sctp_structs.h projects/lld-import/sys/netinet/sctp_usrreq.c projects/lld-import/sys/netpfil/pf/pf_norm.c projects/lld-import/sys/sparc64/conf/NOTES projects/lld-import/sys/sys/cdefs.h projects/lld-import/sys/sys/param.h projects/lld-import/sys/vm/memguard.c projects/lld-import/sys/vm/swap_pager.c projects/lld-import/sys/vm/vm_page.c projects/lld-import/usr.bin/fetch/fetch.1 projects/lld-import/usr.bin/fetch/fetch.c projects/lld-import/usr.bin/ministat/ministat.1 projects/lld-import/usr.bin/top/machine.c projects/lld-import/usr.sbin/pmcstudy/Makefile projects/lld-import/usr.sbin/pmcstudy/pmcstudy.c Directory Properties: projects/lld-import/ (props changed) projects/lld-import/contrib/gcc/ (props changed) projects/lld-import/include/ (props changed) projects/lld-import/lib/libc/ (props changed) projects/lld-import/sbin/ (props changed) projects/lld-import/share/ (props changed) projects/lld-import/share/man/man4/ (props changed) projects/lld-import/sys/ (props changed) projects/lld-import/sys/boot/ (props changed) projects/lld-import/sys/conf/ (props changed) Modified: projects/lld-import/Makefile.inc1 ============================================================================== --- projects/lld-import/Makefile.inc1 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/Makefile.inc1 Thu Mar 26 22:35:56 2015 (r280717) @@ -209,7 +209,9 @@ INSTALLTMP!= /usr/bin/mktemp -d -u -t in # 1. legacy stage [BMAKE] # This stage is responsible for creating compatibility # shims that are needed by the bootstrap-tools, -# build-tools and cross-tools stages. +# build-tools and cross-tools stages. These are generally +# APIs that tools from one of those three stages need to +# build that aren't present on the host. # 1. bootstrap-tools stage [BMAKE] # This stage is responsible for creating programs that # are needed for backward compatibility reasons. They @@ -220,7 +222,7 @@ INSTALLTMP!= /usr/bin/mktemp -d -u -t in # the build process. # 3. cross-tools stage [XMAKE] # This stage is responsible for creating any tools that -# are needed for cross-builds. A cross-compiler is one +# are needed for building the system. A cross-compiler is one # of them. # 4. world stage [WMAKE] # This stage actually builds the world. @@ -259,7 +261,8 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \ -DNO_PIC MK_PROFILE=no -DNO_SHARED \ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ - MK_LLD=no MK_LLDB=no MK_TESTS=no + MK_LLD=no MK_LLDB=no MK_TESTS=no \ + MK_INCLUDES=yes # build-tools stage TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \ @@ -1221,7 +1224,9 @@ update: # # -# legacy: Build compatibility shims for the next three targets +# legacy: Build compatibility shims for the next three targets. This is a minimal +# set of tools and shims necessary to compensate for older systems which don't have +# the APIs that the targets built in bootstrap-tools, build-tools or cross-tools. # legacy: .if ${BOOTSTRAPPING} < 800107 && ${BOOTSTRAPPING} != 0 @@ -1239,7 +1244,10 @@ legacy: .endfor # -# bootstrap-tools: Build tools needed for compatibility +# bootstrap-tools: Build tools needed for compatibility. These are binaries that +# are built to build other binaries in the system. However, the focus of these +# binaries is usually quite narrow. Bootstrap tools use the host's compiler and +# libraries, augmented by -legacy. # _bt= _bootstrap-tools @@ -1445,7 +1453,9 @@ kernel-tools: .MAKE -p ${MAKEOBJDIRPREFIX}/usr >/dev/null # -# cross-tools: Build cross-building tools +# cross-tools: All the tools needed to build the rest of the system after +# we get done with the earlier stages. It is the last set of tools needed +# to begin building the target binaries. # .if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" Modified: projects/lld-import/ObsoleteFiles.inc ============================================================================== --- projects/lld-import/ObsoleteFiles.inc Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/ObsoleteFiles.inc Thu Mar 26 22:35:56 2015 (r280717) @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20150326 +OLD_FILES+=usr/share/man/man1/pmcstudy.1.gz # 20150315: new clang import which bumps version from 3.5.1 to 3.6.0. OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_pclmul.h Modified: projects/lld-import/contrib/gcc/config/aarch64/aarch64.h ============================================================================== --- projects/lld-import/contrib/gcc/config/aarch64/aarch64.h Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/contrib/gcc/config/aarch64/aarch64.h Thu Mar 26 22:35:56 2015 (r280717) @@ -1,3 +1,3 @@ -/* $FreeBSD */ #define FIRST_PSEUDO_REGISTER 67 +#define DWARF_FRAME_REGISTERS 97 Modified: projects/lld-import/include/pthread.h ============================================================================== --- projects/lld-import/include/pthread.h Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/include/pthread.h Thu Mar 26 22:35:56 2015 (r280717) @@ -144,23 +144,19 @@ struct _pthread_cleanup_info { */ __BEGIN_DECLS int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); -int pthread_attr_destroy(pthread_attr_t *) __nonnull(1); +int pthread_attr_destroy(pthread_attr_t *); int pthread_attr_getstack(const pthread_attr_t * __restrict, - void ** __restrict, size_t * __restrict) - __nonnull(1, 2, 3); -int pthread_attr_getstacksize(const pthread_attr_t *, size_t *) - __nonnull(1, 2); + void ** __restrict, size_t * __restrict); +int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); int pthread_attr_getstackaddr(const pthread_attr_t *, void **); -int pthread_attr_getdetachstate(const pthread_attr_t *, int *) - __nonnull(1, 2); -int pthread_attr_init(pthread_attr_t *) __nonnull(1); -int pthread_attr_setstacksize(pthread_attr_t *, size_t) __nonnull(1); -int pthread_attr_setguardsize(pthread_attr_t *, size_t) __nonnull(1); -int pthread_attr_setstack(pthread_attr_t *, void *, size_t) - __nonnull(1); +int pthread_attr_getdetachstate(const pthread_attr_t *, int *); +int pthread_attr_init(pthread_attr_t *); +int pthread_attr_setstacksize(pthread_attr_t *, size_t); +int pthread_attr_setguardsize(pthread_attr_t *, size_t); +int pthread_attr_setstack(pthread_attr_t *, void *, size_t); int pthread_attr_setstackaddr(pthread_attr_t *, void *); -int pthread_attr_setdetachstate(pthread_attr_t *, int) __nonnull(1); +int pthread_attr_setdetachstate(pthread_attr_t *, int); int pthread_barrier_destroy(pthread_barrier_t *); int pthread_barrier_init(pthread_barrier_t *, const pthread_barrierattr_t *, unsigned); @@ -168,7 +164,7 @@ int pthread_barrier_wait(pthread_barrie int pthread_barrierattr_destroy(pthread_barrierattr_t *); int pthread_barrierattr_getpshared(const pthread_barrierattr_t *, int *); -int pthread_barrierattr_init(pthread_barrierattr_t *) __nonnull(1); +int pthread_barrierattr_init(pthread_barrierattr_t *); int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); #define pthread_cleanup_push(cleanup_routine, cleanup_arg) \ @@ -184,96 +180,85 @@ int pthread_barrierattr_setpshared(pthr __pthread_cleanup_pop_imp(execute); \ } -int pthread_condattr_destroy(pthread_condattr_t *) __nonnull(1); +int pthread_condattr_destroy(pthread_condattr_t *); int pthread_condattr_getclock(const pthread_condattr_t *, - clockid_t *) __nonnull(1, 2); -int pthread_condattr_getpshared(const pthread_condattr_t *, int *) - __nonnull(1, 2); -int pthread_condattr_init(pthread_condattr_t *) __nonnull(1); -int pthread_condattr_setclock(pthread_condattr_t *, clockid_t) - __nonnull(1); -int pthread_condattr_setpshared(pthread_condattr_t *, int) - __nonnull(1); -int pthread_cond_broadcast(pthread_cond_t *) - __nonnull(1); -int pthread_cond_destroy(pthread_cond_t *) - __nonnull(1); + clockid_t *); +int pthread_condattr_getpshared(const pthread_condattr_t *, int *); +int pthread_condattr_init(pthread_condattr_t *); +int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); +int pthread_condattr_setpshared(pthread_condattr_t *, int); +int pthread_cond_broadcast(pthread_cond_t *); +int pthread_cond_destroy(pthread_cond_t *); int pthread_cond_init(pthread_cond_t *, - const pthread_condattr_t *) __nonnull(1); -int pthread_cond_signal(pthread_cond_t *) __nonnull(1); + const pthread_condattr_t *); +int pthread_cond_signal(pthread_cond_t *); int pthread_cond_timedwait(pthread_cond_t *, pthread_mutex_t *__mutex, const struct timespec *) - __nonnull(1, 2, 3) __requires_exclusive(*__mutex); + __requires_exclusive(*__mutex); int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *__mutex) - __nonnull(1, 2) __requires_exclusive(*__mutex); + __requires_exclusive(*__mutex); int pthread_create(pthread_t *, const pthread_attr_t *, - void *(*) (void *), void *) __nonnull(1, 3); + void *(*) (void *), void *); int pthread_detach(pthread_t); int pthread_equal(pthread_t, pthread_t); void pthread_exit(void *) __dead2; void *pthread_getspecific(pthread_key_t); -int pthread_getcpuclockid(pthread_t, clockid_t *) __nonnull(2); +int pthread_getcpuclockid(pthread_t, clockid_t *); int pthread_join(pthread_t, void **); int pthread_key_create(pthread_key_t *, - void (*) (void *)) __nonnull(1); + void (*) (void *)); int pthread_key_delete(pthread_key_t); -int pthread_mutexattr_init(pthread_mutexattr_t *) __nonnull(1); -int pthread_mutexattr_destroy(pthread_mutexattr_t *) __nonnull(1); +int pthread_mutexattr_init(pthread_mutexattr_t *); +int pthread_mutexattr_destroy(pthread_mutexattr_t *); int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, - int *) __nonnull(1, 2); -int pthread_mutexattr_gettype(pthread_mutexattr_t *, int *) - __nonnull(1, 2); -int pthread_mutexattr_settype(pthread_mutexattr_t *, int) - __nonnull(1); -int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int) - __nonnull(1); + int *); +int pthread_mutexattr_gettype(pthread_mutexattr_t *, int *); +int pthread_mutexattr_settype(pthread_mutexattr_t *, int); +int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); int pthread_mutex_destroy(pthread_mutex_t *__mutex) - __nonnull(1) __requires_unlocked(*__mutex); + __requires_unlocked(*__mutex); int pthread_mutex_init(pthread_mutex_t *__mutex, const pthread_mutexattr_t *) - __nonnull(1) __requires_unlocked(*__mutex); + __requires_unlocked(*__mutex); int pthread_mutex_lock(pthread_mutex_t *__mutex) - __nonnull(1) __locks_exclusive(*__mutex); + __locks_exclusive(*__mutex); int pthread_mutex_trylock(pthread_mutex_t *__mutex) - __nonnull(1) __trylocks_exclusive(0, *__mutex); + __trylocks_exclusive(0, *__mutex); int pthread_mutex_timedlock(pthread_mutex_t *__mutex, const struct timespec *) - __nonnull(1, 2) __trylocks_exclusive(0, *__mutex); + __trylocks_exclusive(0, *__mutex); int pthread_mutex_unlock(pthread_mutex_t *__mutex) - __nonnull(1) __unlocks(*__mutex); -int pthread_once(pthread_once_t *, void (*) (void)) __nonnull(1, 2); + __unlocks(*__mutex); +int pthread_once(pthread_once_t *, void (*) (void)); int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) - __nonnull(1) __requires_unlocked(*__rwlock); + __requires_unlocked(*__rwlock); int pthread_rwlock_init(pthread_rwlock_t *__rwlock, const pthread_rwlockattr_t *) - __nonnull(1) __requires_unlocked(*__rwlock); + __requires_unlocked(*__rwlock); int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) - __nonnull(1) __locks_shared(*__rwlock); + __locks_shared(*__rwlock); int pthread_rwlock_timedrdlock(pthread_rwlock_t *__rwlock, const struct timespec *) - __nonnull(1, 2) __trylocks_shared(0, *__rwlock); + __trylocks_shared(0, *__rwlock); int pthread_rwlock_timedwrlock(pthread_rwlock_t *__rwlock, const struct timespec *) - __nonnull(1, 2) __trylocks_exclusive(0, *__rwlock); + __trylocks_exclusive(0, *__rwlock); int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) - __nonnull(1) __trylocks_shared(0, *__rwlock); + __trylocks_shared(0, *__rwlock); int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) - __nonnull(1) __trylocks_exclusive(0, *__rwlock); + __trylocks_exclusive(0, *__rwlock); int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) - __nonnull(1) __unlocks(*__rwlock); + __unlocks(*__rwlock); int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) - __nonnull(1) __locks_exclusive(*__rwlock); -int pthread_rwlockattr_destroy(pthread_rwlockattr_t *) - __nonnull(1); + __locks_exclusive(*__rwlock); +int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *, int *); int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, - int *) __nonnull(1, 2); -int pthread_rwlockattr_init(pthread_rwlockattr_t *) - __nonnull(1); + int *); +int pthread_rwlockattr_init(pthread_rwlockattr_t *); int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *, int); -int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int) - __nonnull(1); +int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); pthread_t pthread_self(void); int pthread_setspecific(pthread_key_t, const void *); @@ -310,20 +295,18 @@ int pthread_mutexattr_setprotocol(pthre int pthread_attr_getinheritsched(const pthread_attr_t *, int *); int pthread_attr_getschedparam(const pthread_attr_t *, - struct sched_param *) __nonnull(1, 2); -int pthread_attr_getschedpolicy(const pthread_attr_t *, int *) - __nonnull(1, 2); -int pthread_attr_getscope(const pthread_attr_t *, int *) - __nonnull(1, 2); + struct sched_param *); +int pthread_attr_getschedpolicy(const pthread_attr_t *, int *); +int pthread_attr_getscope(const pthread_attr_t *, int *); int pthread_attr_setinheritsched(pthread_attr_t *, int); int pthread_attr_setschedparam(pthread_attr_t *, - const struct sched_param *) __nonnull(1, 2); -int pthread_attr_setschedpolicy(pthread_attr_t *, int) __nonnull(1); -int pthread_attr_setscope(pthread_attr_t *, int) __nonnull(1); + const struct sched_param *); +int pthread_attr_setschedpolicy(pthread_attr_t *, int); +int pthread_attr_setscope(pthread_attr_t *, int); int pthread_getschedparam(pthread_t pthread, int *, - struct sched_param *) __nonnull(2, 3); + struct sched_param *); int pthread_setschedparam(pthread_t, int, - const struct sched_param *) __nonnull(3); + const struct sched_param *); #if __XSI_VISIBLE int pthread_getconcurrency(void); int pthread_setconcurrency(int); Modified: projects/lld-import/include/signal.h ============================================================================== --- projects/lld-import/include/signal.h Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/include/signal.h Thu Mar 26 22:35:56 2015 (r280717) @@ -78,10 +78,10 @@ int sigdelset(sigset_t *, int); int sigemptyset(sigset_t *); int sigfillset(sigset_t *); int sigismember(const sigset_t *, int); -int sigpending(sigset_t *) __nonnull(1); +int sigpending(sigset_t *); int sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict); -int sigsuspend(const sigset_t *) __nonnull(1); -int sigwait(const sigset_t * __restrict, int * __restrict) __nonnull(1, 2); +int sigsuspend(const sigset_t *); +int sigwait(const sigset_t * __restrict, int * __restrict); #endif #if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 600 Modified: projects/lld-import/include/stdlib.h ============================================================================== --- projects/lld-import/include/stdlib.h Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/include/stdlib.h Thu Mar 26 22:35:56 2015 (r280717) @@ -277,9 +277,9 @@ int cgetustr(char *, const char *, char int daemon(int, int); char *devname(__dev_t, __mode_t); -char *devname_r(__dev_t, __mode_t, char *, int); +char *devname_r(__dev_t, __mode_t, char *, int); char *fdevname(int); -char *fdevname_r(int, char *, int); +char *fdevname_r(int, char *, int); int getloadavg(double [], int); const char * getprogname(void); Modified: projects/lld-import/lib/libc/gen/setmode.c ============================================================================== --- projects/lld-import/lib/libc/gen/setmode.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/lib/libc/gen/setmode.c Thu Mar 26 22:35:56 2015 (r280717) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include "namespace.h" #include #include +#include #include #include @@ -68,6 +69,7 @@ typedef struct bitcmd { #define CMD2_OBITS 0x08 #define CMD2_UBITS 0x10 +static mode_t getumask(void); static BITCMD *addcmd(BITCMD *, mode_t, mode_t, mode_t, mode_t); static void compress_mode(BITCMD *); #ifdef SETMODE_DEBUG @@ -169,7 +171,6 @@ setmode(const char *p) int serrno; char op, *ep; BITCMD *set, *saveset, *endset; - sigset_t sigset, sigoset; mode_t mask, perm, permXbits, who; long perml; int equalopdone; @@ -182,15 +183,9 @@ setmode(const char *p) /* * Get a copy of the mask for the permissions that are mask relative. - * Flip the bits, we want what's not set. Since it's possible that - * the caller is opening files inside a signal handler, protect them - * as best we can. + * Flip the bits, we want what's not set. */ - sigfillset(&sigset); - (void)_sigprocmask(SIG_BLOCK, &sigset, &sigoset); - (void)umask(mask = umask(0)); - mask = ~mask; - (void)_sigprocmask(SIG_SETMASK, &sigoset, NULL); + mask = ~getumask(); setlen = SET_LEN + 2; @@ -346,6 +341,35 @@ out: return NULL; } +static mode_t +getumask(void) +{ + sigset_t sigset, sigoset; + size_t len; + mode_t mask; + u_short smask; + + /* + * First try requesting the umask without temporarily modifying it. + * Note that this does not work if the sysctl + * security.bsd.unprivileged_proc_debug is set to 0. + */ + len = sizeof(smask); + if (sysctl((int[4]){ CTL_KERN, KERN_PROC, KERN_PROC_UMASK, getpid() }, + 4, &smask, &len, NULL, 0) == 0) + return (smask); + + /* + * Since it's possible that the caller is opening files inside a signal + * handler, protect them as best we can. + */ + sigfillset(&sigset); + (void)_sigprocmask(SIG_BLOCK, &sigset, &sigoset); + (void)umask(mask = umask(0)); + (void)_sigprocmask(SIG_SETMASK, &sigoset, NULL); + return (mask); +} + static BITCMD * addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask) { Modified: projects/lld-import/lib/libfetch/common.c ============================================================================== --- projects/lld-import/lib/libfetch/common.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/lib/libfetch/common.c Thu Mar 26 22:35:56 2015 (r280717) @@ -672,9 +672,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX { long ssl_ctx_options; - ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_TICKET; - if (getenv("SSL_ALLOW_SSL2") == NULL) - ssl_ctx_options |= SSL_OP_NO_SSLv2; + ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_SSLv2 | SSL_OP_NO_TICKET; if (getenv("SSL_ALLOW_SSL3") == NULL) ssl_ctx_options |= SSL_OP_NO_SSLv3; if (getenv("SSL_NO_TLS1") != NULL) Modified: projects/lld-import/lib/libfetch/fetch.3 ============================================================================== --- projects/lld-import/lib/libfetch/fetch.3 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/lib/libfetch/fetch.3 Thu Mar 26 22:35:56 2015 (r280717) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 15, 2014 +.Dd March 25, 2015 .Dt FETCH 3 .Os .Sh NAME @@ -441,10 +441,8 @@ By default allows TLSv1 and newer when negotiating the connecting with the remote peer. You can change this behavior by setting the -.Ev SSL_ALLOW_SSL2 -and .Ev SSL_ALLOW_SSL3 -environment variables to allow SSLv2 and SSLv3, respectively, and +environment variable to allow SSLv3 and .Ev SSL_NO_TLS1 , .Ev SSL_NO_TLS1_1 and .Ev SSL_NO_TLS1_2 @@ -646,8 +644,6 @@ which proxies should not be used. Same as .Ev NO_PROXY , for compatibility. -.It Ev SSL_ALLOW_SSL2 -Allow SSL version 2 when negotiating the connection (not recommended). .It Ev SSL_ALLOW_SSL3 Allow SSL version 3 when negotiating the connection (not recommended). .It Ev SSL_CA_CERT_FILE Modified: projects/lld-import/lib/libgeom/geom_xml2tree.c ============================================================================== --- projects/lld-import/lib/libgeom/geom_xml2tree.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/lib/libgeom/geom_xml2tree.c Thu Mar 26 22:35:56 2015 (r280717) @@ -186,6 +186,7 @@ static void EndElement(void *userData, const char *name) { struct mystate *mt; + struct gconf *c; struct gconfig *gc; char *p; @@ -259,7 +260,14 @@ EndElement(void *userData, const char *n return; } - if (mt->config != NULL) { + if (mt->config != NULL || (!strcmp(name, "wither") && + (mt->provider != NULL || mt->geom != NULL))) { + if (mt->config != NULL) + c = mt->config; + else if (mt->provider != NULL) + c = &mt->provider->lg_config; + else + c = &mt->geom->lg_config; gc = calloc(1, sizeof *gc); if (gc == NULL) { mt->error = errno; @@ -270,14 +278,15 @@ EndElement(void *userData, const char *n } gc->lg_name = strdup(name); if (gc->lg_name == NULL) { + free(gc); mt->error = errno; XML_StopParser(mt->parser, 0); warn("Cannot allocate memory during processing of '%s' " "element", name); return; } - gc->lg_val = p; - LIST_INSERT_HEAD(mt->config, gc, lg_config); + gc->lg_val = p ? p : strdup("1"); + LIST_INSERT_HEAD(c, gc, lg_config); return; } Modified: projects/lld-import/release/arm/BEAGLEBONE.conf ============================================================================== --- projects/lld-import/release/arm/BEAGLEBONE.conf Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/release/arm/BEAGLEBONE.conf Thu Mar 26 22:35:56 2015 (r280717) @@ -32,6 +32,6 @@ load_target_env() { export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" export KERNEL="BEAGLEBONE" - export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@r744" } Modified: projects/lld-import/release/arm/PANDABOARD.conf ============================================================================== --- projects/lld-import/release/arm/PANDABOARD.conf Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/release/arm/PANDABOARD.conf Thu Mar 26 22:35:56 2015 (r280717) @@ -32,6 +32,6 @@ load_target_env() { export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" export KERNEL="PANDABOARD" - export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@r744" } Modified: projects/lld-import/release/arm/RPI-B.conf ============================================================================== --- projects/lld-import/release/arm/RPI-B.conf Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/release/arm/RPI-B.conf Thu Mar 26 22:35:56 2015 (r280717) @@ -32,7 +32,7 @@ load_target_env() { export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" export KERNEL="RPI-B" - export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@r744" export UBOOTSRC="https://github.com/gonzoua/u-boot-pi" export UBOOTBRANCH="trunk" Modified: projects/lld-import/release/arm/WANDBOARD-QUAD.conf ============================================================================== --- projects/lld-import/release/arm/WANDBOARD-QUAD.conf Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/release/arm/WANDBOARD-QUAD.conf Thu Mar 26 22:35:56 2015 (r280717) @@ -32,6 +32,6 @@ load_target_env() { export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" export KERNEL="WANDBOARD-QUAD" - export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@r744" } Modified: projects/lld-import/release/arm/ZEDBOARD.conf ============================================================================== --- projects/lld-import/release/arm/ZEDBOARD.conf Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/release/arm/ZEDBOARD.conf Thu Mar 26 22:35:56 2015 (r280717) @@ -31,6 +31,6 @@ load_target_env() { export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1" export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no" export KERNEL="ZEDBOARD" - export CROCHETSRC="https://github.com/kientzle/crochet-freebsd" + export CROCHETSRC="https://github.com/freebsd/crochet" export CROCHETBRANCH="trunk@r744" } Modified: projects/lld-import/sbin/geom/class/part/geom_part.c ============================================================================== --- projects/lld-import/sbin/geom/class/part/geom_part.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/sbin/geom/class/part/geom_part.c Thu Mar 26 22:35:56 2015 (r280717) @@ -207,15 +207,20 @@ find_class(struct gmesh *mesh, const cha static struct ggeom * find_geom(struct gclass *classp, const char *name) { - struct ggeom *gp; + struct ggeom *gp, *wgp; if (strncmp(name, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0) name += sizeof(_PATH_DEV) - 1; + wgp = NULL; LIST_FOREACH(gp, &classp->lg_geom, lg_geom) { - if (strcmp(gp->lg_name, name) == 0) + if (strcmp(gp->lg_name, name) != 0) + continue; + if (find_geomcfg(gp, "wither") == NULL) return (gp); + else + wgp = gp; } - return (NULL); + return (wgp); } static const char * @@ -609,6 +614,8 @@ gpart_show_geom(struct ggeom *gp, const off_t length, secsz; int idx, wblocks, wname, wmax; + if (find_geomcfg(gp, "wither")) + return; scheme = find_geomcfg(gp, "scheme"); if (scheme == NULL) errx(EXIT_FAILURE, "Scheme not found for geom %s", gp->lg_name); Modified: projects/lld-import/share/man/man4/icmp.4 ============================================================================== --- projects/lld-import/share/man/man4/icmp.4 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/man/man4/icmp.4 Thu Mar 26 22:35:56 2015 (r280717) @@ -28,7 +28,7 @@ .\" @(#)icmp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd September 30, 2014 +.Dd March 26, 2015 .Dt ICMP 4 .Os .Sh NAME @@ -177,13 +177,11 @@ Defaults to 0. .It Va icmplim .Pq Vt integer Bandwidth limit for ICMP replies in packets/second. -Used when -.Va icmplim_output -is non-zero. +If set to zero, no limiting will occur. Defaults to 200. .It Va icmplim_output .Pq Vt boolean -Enable/disable bandwidth limiting of ICMP replies. +Enable/disable logging of ICMP replies bandwidth limiting. Defaults to true. .It Va drop_redirect .Pq Vt boolean Modified: projects/lld-import/share/man/man4/ixl.4 ============================================================================== --- projects/lld-import/share/man/man4/ixl.4 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/man/man4/ixl.4 Thu Mar 26 22:35:56 2015 (r280717) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 14, 2015 +.Dd March 25, 2015 .Dt IXL 4 .Os .Sh NAME @@ -113,8 +113,6 @@ Intel DUAL RATE 1G/10G SFP+ LR (bailed) Note that X710/XL710 Based SFP+ adapters also support all passive and active limiting direct attach cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. - -.Pp .Sh LOADER TUNABLES Tunables can be set at the .Xr loader 8 @@ -125,10 +123,10 @@ prompt before booting the kernel or stor Allows one to enable/disable MSIX, thus forcing MSI instead. .It Va hw.ixl.ringsz Set the number of descriptors in the rings, note that this -changes BOTH the TX and RX rings, they cannot be set independly. +changes BOTH the TX and RX rings, they cannot be set independently. .It Va hw.ixl.max_queues Set the number of queues (each a TX/RX pair) for the port, this -allows one to override the autocalculation if its set to 0. +allows one to override the autocalculation if it is set to 0. .It Va hw.ixl.dynamic_rx_itr The dynamic RX interrupt control, set to 1 to enable. .It Va hw.ixl.dynamic_tx_itr @@ -138,27 +136,31 @@ The RX interrupt rate value, set to 8K b .It Va hw.ixl.tx_itr The TX interrupt rate value, set to 4K by default. .El -.Pp .Sh SYSCTL PROCEDURES .Bl -tag -width indent .It Va hw.ixl.fc -Allows one to set the flow control value. A value of 0 disables +Allows one to set the flow control value. +A value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is TX pause. .It Va hw.ixl.advertise_speed Allows one to set advertised link speeds, this will then -cause a link renegotiation. With the appropriate adapter -this can cause a link at 10GB, 1GB, or 100MB. +cause a link renegotiation. +With the appropriate adapter +this can cause a link at 10GB, 1GB, or 100MB. .It Va hw.ixl.current_speed This is a display of the current setting. .It Va hw.ixl.fw_version This is a display of the Firmware version. +.El .Sh Interrupt Storms -It is important to note that 40G operation can generate high +It is important to note that 40G operation can generate high numbers of interrupts, often incorrectly being interpreted as -a storm condition in the kernel. It is suggested that this +a storm condition in the kernel. +It is suggested that this be resolved by setting: .Bl -tag -width indent .It Va hw.intr_storm_threshold: 0 +.El .Sh SUPPORT For general information and support, go to the Intel support website at: @@ -169,6 +171,7 @@ email all the specific information relat .Aq freebsd@intel.com . .Sh SEE ALSO .Xr arp 4 , +.Xr ixlv 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr vlan 4 , Modified: projects/lld-import/share/man/man4/ixlv.4 ============================================================================== --- projects/lld-import/share/man/man4/ixlv.4 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/man/man4/ixlv.4 Thu Mar 26 22:35:56 2015 (r280717) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 14, 2015 +.Dd March 25, 2015 .Dt IXLV 4 .Os .Sh NAME @@ -77,13 +77,13 @@ and/or TSO6, and finally LRO can be set For more information on configuring this device, see .Xr ifconfig 8 . .Pp -NOTE that The +.Em NOTE : +The .Nm -Driver is only used by means of SRIOV, normally in a VM on a +driver is only used by means of SRIOV, normally in a VM on a hosting server with the .Xr ixl 4 -driver. -.Pp +driver. .Sh LOADER TUNABLES Tunables can be set at the .Xr loader 8 @@ -92,10 +92,10 @@ prompt before booting the kernel or stor .Bl -tag -width indent .It Va hw.ixlv.ringsz Set the number of descriptors in the rings, note that this -changes BOTH the TX and RX rings, they cannot be set independly. +changes BOTH the TX and RX rings, they cannot be set independently. .It Va hw.ixlv.max_queues Set the number of queues (each a TX/RX pair) for the port, this -allows one to override the autocalculation if its set to 0. +allows one to override the autocalculation if it is set to 0. .It Va hw.ixlv.txbrsz Set the size of the buff ring used by the transmit side of the stack, we have found that it is necessary to have it quite large @@ -109,7 +109,6 @@ The RX interrupt rate value, set to 8K b .It Va hw.ixlv.tx_itr The TX interrupt rate value, set to 4K by default. .El -.Pp .Sh SUPPORT For general information and support, go to the Intel support website at: @@ -119,8 +118,8 @@ If an issue is identified with this driv email all the specific information related to the issue to .Aq freebsd@intel.com . .Sh SEE ALSO -.Xr ixl 4 , .Xr arp 4 , +.Xr ixl 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr vlan 4 , Modified: projects/lld-import/share/man/man4/witness.4 ============================================================================== --- projects/lld-import/share/man/man4/witness.4 Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/man/man4/witness.4 Thu Mar 26 22:35:56 2015 (r280717) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 6, 2015 +.Dd March 24, 2015 .Dt WITNESS 4 .Os .Sh NAME @@ -127,7 +127,7 @@ can be set via .Pp The .Nm -code also provides two extra +code also provides three extra .Xr ddb 4 commands if both .Nm Modified: projects/lld-import/share/misc/committers-src.dot ============================================================================== --- projects/lld-import/share/misc/committers-src.dot Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/misc/committers-src.dot Thu Mar 26 22:35:56 2015 (r280717) @@ -211,6 +211,7 @@ kensmith [label="Ken Smith\nkensmith@Fre kevlo [label="Kevin Lo\nkevlo@FreeBSD.org\n2006/07/23"] kib [label="Konstantin Belousov\nkib@FreeBSD.org\n2006/06/03"] kmacy [label="Kip Macy\nkmacy@FreeBSD.org\n2005/06/01"] +kp [label="Kristof Provost\nkp@FreeBSD.org\n2015/03/22"] le [label="Lukas Ertl\nle@FreeBSD.org\n2004/02/02"] loos [label="Luiz Otavio O Souza\nloos@FreeBSD.org\n2013/07/03"] lstewart [label="Lawrence Stewart\nlstewart@FreeBSD.org\n2008/10/06"] @@ -446,6 +447,7 @@ gnn -> np gnn -> davide gnn -> arybchik gnn -> erj +gnn -> kp grehan -> bryanv @@ -624,6 +626,7 @@ philip -> ed philip -> jls philip -> matteo philip -> uqs +philip -> kp phk -> jkoshy phk -> mux Modified: projects/lld-import/share/misc/organization.dot ============================================================================== --- projects/lld-import/share/misc/organization.dot Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/share/misc/organization.dot Thu Mar 26 22:35:56 2015 (r280717) @@ -30,7 +30,7 @@ coresecretary [label="Core Team Secretar doccommitters [label="Doc/www Committers\ndoc-committers@FreeBSD.org"] doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\ngjb, blackend,\ngabor, hrs"] portscommitters [label="Ports Committers\nports-committers@FreeBSD.org"] -portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\ndecke, erwin, mat, swills"] +portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\nerwin, mat, swills"] portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nculot"] re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"] secteam [label="Security Team\nsecteam@FreeBSD.org\nsimon, qingli, delphij,\nremko, philip, stas, cperciva,\ncsjp, rwatson, miwi, bz"] Modified: projects/lld-import/sys/arm/arm/genassym.c ============================================================================== --- projects/lld-import/sys/arm/arm/genassym.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/sys/arm/arm/genassym.c Thu Mar 26 22:35:56 2015 (r280717) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -58,12 +59,19 @@ __FBSDID("$FreeBSD$"); ASSYM(KERNBASE, KERNBASE); ASSYM(PCB_NOALIGNFLT, PCB_NOALIGNFLT); +#ifdef ARM_NEW_PMAP +ASSYM(CPU_ASID_KERNEL,CPU_ASID_KERNEL); +#endif ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); +#ifndef ARM_NEW_PMAP ASSYM(PCB_DACR, offsetof(struct pcb, pcb_dacr)); +#endif ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); ASSYM(PCB_PAGEDIR, offsetof(struct pcb, pcb_pagedir)); +#ifndef ARM_NEW_PMAP ASSYM(PCB_L1VEC, offsetof(struct pcb, pcb_l1vec)); ASSYM(PCB_PL1VEC, offsetof(struct pcb, pcb_pl1vec)); +#endif ASSYM(PCB_R4, offsetof(struct pcb, pcb_regs.sf_r4)); ASSYM(PCB_R5, offsetof(struct pcb, pcb_regs.sf_r5)); ASSYM(PCB_R6, offsetof(struct pcb, pcb_regs.sf_r6)); @@ -131,7 +139,6 @@ ASSYM(PC_CURPMAP, offsetof(struct pcpu, #endif ASSYM(PAGE_SIZE, PAGE_SIZE); -ASSYM(PDESIZE, PDESIZE); ASSYM(PMAP_DOMAIN_KERNEL, PMAP_DOMAIN_KERNEL); #ifdef PMAP_INCLUDE_PTE_SYNC ASSYM(PMAP_INCLUDE_PTE_SYNC, 1); @@ -145,8 +152,13 @@ ASSYM(TRAPFRAMESIZE, sizeof(struct trapf ASSYM(MAXCOMLEN, MAXCOMLEN); ASSYM(MAXCPU, MAXCPU); +ASSYM(_NCPUWORDS, _NCPUWORDS); ASSYM(NIRQ, NIRQ); ASSYM(PCPU_SIZE, sizeof(struct pcpu)); +ASSYM(P_VMSPACE, offsetof(struct proc, p_vmspace)); +ASSYM(VM_PMAP, offsetof(struct vmspace, vm_pmap)); +ASSYM(PM_ACTIVE, offsetof(struct pmap, pm_active)); +ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid)); ASSYM(DCACHE_LINE_SIZE, offsetof(struct cpuinfo, dcache_line_size)); ASSYM(DCACHE_LINE_MASK, offsetof(struct cpuinfo, dcache_line_mask)); Modified: projects/lld-import/sys/arm/arm/machdep.c ============================================================================== --- projects/lld-import/sys/arm/arm/machdep.c Thu Mar 26 22:34:27 2015 (r280716) +++ projects/lld-import/sys/arm/arm/machdep.c Thu Mar 26 22:35:56 2015 (r280717) @@ -138,6 +138,14 @@ int _min_bzero_size = 0; extern int *end; #ifdef FDT +vm_paddr_t pmap_pa; + +#ifdef ARM_NEW_PMAP +vm_offset_t systempage; +vm_offset_t irqstack; +vm_offset_t undstack; +vm_offset_t abtstack; +#else /* * This is the number of L2 page tables required for covering max * (hypothetical) memsize of 4GB and all kernel mappings (vectors, msgbuf, @@ -147,15 +155,13 @@ extern int *end; static struct pv_addr kernel_pt_table[KERNEL_PT_MAX]; -vm_paddr_t pmap_pa; - struct pv_addr systempage; static struct pv_addr msgbufpv; struct pv_addr irqstack; struct pv_addr undstack; struct pv_addr abtstack; static struct pv_addr kernelstack; - +#endif #endif #if defined(LINUX_BOOT_ABI) @@ -381,9 +387,11 @@ cpu_startup(void *dummy) vm_pager_bufferinit(); pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack + USPACE_SVC_STACK_TOP; - vector_page_setprot(VM_PROT_READ); pmap_set_pcb_pagedir(pmap_kernel(), pcb); +#ifndef ARM_NEW_PMAP + vector_page_setprot(VM_PROT_READ); pmap_postinit(); +#endif #ifdef ARM_TP_ADDRESS #ifdef ARM_CACHE_LOCK_ENABLE pmap_kenter_user(ARM_TP_ADDRESS, ARM_TP_ADDRESS); @@ -1003,6 +1011,19 @@ init_proc0(vm_offset_t kstack) pcpup->pc_curpcb = thread0.td_pcb; } +#ifdef ARM_NEW_PMAP +void +set_stackptrs(int cpu) +{ + + set_stackptr(PSR_IRQ32_MODE, + irqstack + ((IRQ_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); + set_stackptr(PSR_ABT32_MODE, + abtstack + ((ABT_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); + set_stackptr(PSR_UND32_MODE, + undstack + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); +} +#else void set_stackptrs(int cpu) { @@ -1014,6 +1035,7 @@ set_stackptrs(int cpu) set_stackptr(PSR_UND32_MODE, undstack.pv_va + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); } +#endif #ifdef FDT static char * @@ -1048,6 +1070,7 @@ print_kenv(void) debugf(" %x %s\n", (uint32_t)cp, cp); } +#ifndef ARM_NEW_PMAP void * initarm(struct arm_boot_params *abp) { @@ -1316,4 +1339,181 @@ initarm(struct arm_boot_params *abp) return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } +#else /* !ARM_NEW_PMAP */ +void * +initarm(struct arm_boot_params *abp) +{ + struct mem_region mem_regions[FDT_MEM_REGIONS]; + vm_paddr_t lastaddr; + vm_offset_t dtbp, kernelstack, dpcpu; + uint32_t memsize; + char *env; + void *kmdp; + int err_devmap, mem_regions_sz; + + /* get last allocated physical address */ + arm_physmem_kernaddr = abp->abp_physaddr; + lastaddr = parse_boot_param(abp) - KERNVIRTADDR + arm_physmem_kernaddr; + + memsize = 0; + set_cpufuncs(); + cpuinfo_init(); + + /* + * Find the dtb passed in by the boot loader. + */ + kmdp = preload_search_by_type("elf kernel"); + if (kmdp != NULL) + dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t); + else + dtbp = (vm_offset_t)NULL; +#if defined(FDT_DTB_STATIC) + /* + * In case the device tree blob was not retrieved (from metadata) try + * to use the statically embedded one. + */ + if (dtbp == (vm_offset_t)NULL) + dtbp = (vm_offset_t)&fdt_static_dtb; #endif + + if (OF_install(OFW_FDT, 0) == FALSE) + panic("Cannot install FDT"); + + if (OF_init((void *)dtbp) != 0) + panic("OF_init failed with the found device tree"); + + /* Grab physical memory regions information from device tree. */ + if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, &memsize) != 0) + panic("Cannot get physical memory regions"); + arm_physmem_hardware_regions(mem_regions, mem_regions_sz); + + /* Grab reserved memory regions information from device tree. */ + if (fdt_get_reserved_regions(mem_regions, &mem_regions_sz) == 0) + arm_physmem_exclude_regions(mem_regions, mem_regions_sz, + EXFLAG_NODUMP | EXFLAG_NOALLOC); + + /* + * Set TEX remapping registers. + * Setup kernel page tables and switch to kernel L1 page table. + */ + pmap_set_tex(); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***