From owner-svn-src-projects@FreeBSD.ORG Sun May 15 02:09:13 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2A638106564A; Sun, 15 May 2011 02:09:13 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1AEC98FC17; Sun, 15 May 2011 02:09:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4F29CT3022817; Sun, 15 May 2011 02:09:13 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4F29CiW022815; Sun, 15 May 2011 02:09:12 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105150209.p4F29CiW022815@svn.freebsd.org> From: John Baldwin Date: Sun, 15 May 2011 02:09:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221940 - projects/bhyve/sys/amd64/vmm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 15 May 2011 02:09:13 -0000 Author: jhb Date: Sun May 15 02:09:12 2011 New Revision: 221940 URL: http://svn.freebsd.org/changeset/base/221940 Log: Enable handling of 1GB pages in the direct map since HEAD supports those. Submitted by: neel Modified: projects/bhyve/sys/amd64/vmm/vmm_mem.c Modified: projects/bhyve/sys/amd64/vmm/vmm_mem.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/vmm_mem.c Sun May 15 01:08:51 2011 (r221939) +++ projects/bhyve/sys/amd64/vmm/vmm_mem.c Sun May 15 02:09:12 2011 (r221940) @@ -168,8 +168,7 @@ vmm_mem_direct_map(vm_paddr_t start, vm_ if (end >= NBPML4) panic("Cannot map memory beyond %ldGB", NBPML4 / GB); - /* XXX FreeBSD 8.1 does not use 1G superpages in the direct map */ - if (0 && vmm_supports_1G_pages()) + if (vmm_supports_1G_pages()) superpage_size = NBPDP; else superpage_size = NBPDR; From owner-svn-src-projects@FreeBSD.ORG Sun May 15 04:03:11 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF299106566C; Sun, 15 May 2011 04:03:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CD4758FC0A; Sun, 15 May 2011 04:03:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4F43BnK025296; Sun, 15 May 2011 04:03:11 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4F43BfO025281; Sun, 15 May 2011 04:03:11 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105150403.p4F43BfO025281@svn.freebsd.org> From: John Baldwin Date: Sun, 15 May 2011 04:03:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221942 - in projects/bhyve: lib lib/libvmmapi share/mk usr.sbin usr.sbin/bhyve usr.sbin/vmmctl X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 15 May 2011 04:03:14 -0000 Author: jhb Date: Sun May 15 04:03:11 2011 New Revision: 221942 URL: http://svn.freebsd.org/changeset/base/221942 Log: First cut to port bhyve, vmmctl, and libvmmapi to HEAD. Added: projects/bhyve/lib/libvmmapi/ - copied from r221828, projects/bhyve_ref/lib/libvmmapi/ projects/bhyve/usr.sbin/bhyve/ - copied from r221828, projects/bhyve_ref/usr.sbin/bhyve/ projects/bhyve/usr.sbin/vmmctl/ - copied from r221828, projects/bhyve_ref/usr.sbin/vmmctl/ Modified: projects/bhyve/lib/Makefile projects/bhyve/lib/libvmmapi/Makefile projects/bhyve/lib/libvmmapi/mptable.c projects/bhyve/lib/libvmmapi/vmmapi.c projects/bhyve/share/mk/bsd.libnames.mk projects/bhyve/usr.sbin/Makefile.amd64 projects/bhyve/usr.sbin/bhyve/Makefile projects/bhyve/usr.sbin/bhyve/dbgport.c projects/bhyve/usr.sbin/bhyve/fbsdrun.c projects/bhyve/usr.sbin/bhyve/inout.h projects/bhyve/usr.sbin/bhyve/pci_emul.c projects/bhyve/usr.sbin/bhyve/xmsr.c projects/bhyve/usr.sbin/vmmctl/Makefile projects/bhyve/usr.sbin/vmmctl/vmmctl.c Modified: projects/bhyve/lib/Makefile ============================================================================== --- projects/bhyve/lib/Makefile Sun May 15 02:21:39 2011 (r221941) +++ projects/bhyve/lib/Makefile Sun May 15 04:03:11 2011 (r221942) @@ -110,6 +110,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libusbhid} \ ${_libusb} \ ${_libvgl} \ + ${_libvmmapi} \ libwrap \ liby \ libz \ @@ -197,6 +198,7 @@ _libsmb= libsmb .if ${MK_NCP} != "no" _libncp= libncp .endif +_libvmmapi= libvmmapi .endif .if ${MACHINE_CPUARCH} == "powerpc" Modified: projects/bhyve/lib/libvmmapi/Makefile ============================================================================== --- projects/bhyve_ref/lib/libvmmapi/Makefile Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/lib/libvmmapi/Makefile Sun May 15 04:03:11 2011 (r221942) @@ -4,6 +4,8 @@ LIB= vmmapi SRCS= vmmapi.c vmmapi_freebsd.c mptable.c INCS= vmmapi.h +WARNS?= 2 + CFLAGS+= -I${.CURDIR} .include Modified: projects/bhyve/lib/libvmmapi/mptable.c ============================================================================== --- projects/bhyve_ref/lib/libvmmapi/mptable.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/lib/libvmmapi/mptable.c Sun May 15 04:03:11 2011 (r221942) @@ -118,6 +118,7 @@ mp_build_bus_entries(struct mpe_bus *mpe } +#ifdef notyet static void mp_build_ioapic_entries(struct mpe_ioapic *mpei) { @@ -280,6 +281,7 @@ mptable_dump(struct mp_floating_pointer } } +#endif int vm_build_mptable(struct vmctx *ctx, vm_paddr_t gpa, int len, int ncpu, Modified: projects/bhyve/lib/libvmmapi/vmmapi.c ============================================================================== --- projects/bhyve_ref/lib/libvmmapi/vmmapi.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/lib/libvmmapi/vmmapi.c Sun May 15 04:03:11 2011 (r221942) @@ -478,8 +478,6 @@ vm_get_stats(struct vmctx *ctx, int vcpu const char * vm_get_stat_desc(struct vmctx *ctx, int index) { - int error; - static struct vm_stat_desc statdesc; statdesc.index = index; Modified: projects/bhyve/share/mk/bsd.libnames.mk ============================================================================== --- projects/bhyve/share/mk/bsd.libnames.mk Sun May 15 02:21:39 2011 (r221941) +++ projects/bhyve/share/mk/bsd.libnames.mk Sun May 15 04:03:11 2011 (r221942) @@ -160,6 +160,7 @@ LIBULOG?= ${DESTDIR}${LIBDIR}/libulog.a LIBUTIL?= ${DESTDIR}${LIBDIR}/libutil.a LIBUUTIL?= ${DESTDIR}${LIBDIR}/libuutil.a LIBVGL?= ${DESTDIR}${LIBDIR}/libvgl.a +LIBVMMAPI?= ${DESTDIR}${LIBDIR}/libvmmapi.a LIBWRAP?= ${DESTDIR}${LIBDIR}/libwrap.a LIBXPG4?= ${DESTDIR}${LIBDIR}/libxpg4.a LIBY?= ${DESTDIR}${LIBDIR}/liby.a Modified: projects/bhyve/usr.sbin/Makefile.amd64 ============================================================================== --- projects/bhyve/usr.sbin/Makefile.amd64 Sun May 15 02:21:39 2011 (r221941) +++ projects/bhyve/usr.sbin/Makefile.amd64 Sun May 15 04:03:11 2011 (r221942) @@ -10,6 +10,7 @@ SUBDIR+= acpi SUBDIR+= apm .endif SUBDIR+= asf +SUBDIR+= bhyve SUBDIR+= boot0cfg .if ${MK_TOOLCHAIN} != "no" SUBDIR+= btxld @@ -30,4 +31,5 @@ SUBDIR+= spkrtest .if ${MK_SYSINSTALL} != "no" SUBDIR+= sade .endif +SUBDIR+= vmmctl SUBDIR+= zzz Modified: projects/bhyve/usr.sbin/bhyve/Makefile ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/Makefile Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/Makefile Sun May 15 04:03:11 2011 (r221942) @@ -13,6 +13,8 @@ NO_MAN= DPADD= ${LIBVMMAPI} ${LIBMD} ${LIBPTHREAD} LDADD= -lvmmapi -lmd -lpthread +WARNS?= 2 + CFLAGS+= -I${.CURDIR}/../../sys .include Modified: projects/bhyve/usr.sbin/bhyve/dbgport.c ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/dbgport.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/dbgport.c Sun May 15 04:03:11 2011 (r221942) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include "inout.h" +#include "dbgport.h" #define BVM_DBG_PORT 0x224 Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/fbsdrun.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/fbsdrun.c Sun May 15 04:03:11 2011 (r221942) @@ -185,7 +185,7 @@ fbsdrun_muxed(void) return (guest_vcpu_mux); } -void * +static void * fbsdrun_start_thread(void *param) { int vcpu; @@ -240,20 +240,20 @@ fbsdrun_get_next_cpu(int curcpu) return ((curcpu + 1) % foundcpus); } -int +static int vmexit_catch_reset(void) { stats.io_reset++; return (VMEXIT_RESET); } -int +static int vmexit_catch_inout(void) { return (VMEXIT_ABORT); } -int +static int vmexit_handle_notify(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu, uint32_t eax) { Modified: projects/bhyve/usr.sbin/bhyve/inout.h ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/inout.h Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/inout.h Sun May 15 04:03:11 2011 (r221942) @@ -52,7 +52,8 @@ struct inout_port { #name, \ (port), \ (flags), \ - (handler) \ + (handler), \ + 0 \ }; \ DATA_SET(inout_port_set, __CONCAT(__inout_port, __LINE__)) Modified: projects/bhyve/usr.sbin/bhyve/pci_emul.c ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/pci_emul.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/pci_emul.c Sun May 15 04:03:11 2011 (r221942) @@ -887,7 +887,7 @@ struct pci_emul_dsoftc { #define PCI_EMUL_MSGS 4 -int +static int pci_emul_dinit(struct vmctx *ctx, struct pci_devinst *pi, char *opts) { int error; @@ -911,7 +911,7 @@ pci_emul_dinit(struct vmctx *ctx, struct return (0); } -void +static void pci_emul_diow(struct pci_devinst *pi, int baridx, int offset, int size, uint32_t value) { @@ -943,7 +943,7 @@ pci_emul_diow(struct pci_devinst *pi, in } } -uint32_t +static uint32_t pci_emul_dior(struct pci_devinst *pi, int baridx, int offset, int size) { struct pci_emul_dsoftc *sc = pi->pi_arg; Modified: projects/bhyve/usr.sbin/bhyve/xmsr.c ============================================================================== --- projects/bhyve_ref/usr.sbin/bhyve/xmsr.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/bhyve/xmsr.c Sun May 15 04:03:11 2011 (r221942) @@ -30,7 +30,7 @@ __FBSDID("$FreeBSD$"); #include -#include +#include #include #include Modified: projects/bhyve/usr.sbin/vmmctl/Makefile ============================================================================== --- projects/bhyve_ref/usr.sbin/vmmctl/Makefile Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/vmmctl/Makefile Sun May 15 04:03:11 2011 (r221942) @@ -10,6 +10,8 @@ NO_MAN= DPADD= ${LIBVMMAPI} LDADD= -lvmmapi +WARNS?= 3 + CFLAGS+= -I${.CURDIR}/../../sys/amd64/vmm .include Modified: projects/bhyve/usr.sbin/vmmctl/vmmctl.c ============================================================================== --- projects/bhyve_ref/usr.sbin/vmmctl/vmmctl.c Fri May 13 04:54:01 2011 (r221828) +++ projects/bhyve/usr.sbin/vmmctl/vmmctl.c Sun May 15 04:03:11 2011 (r221942) @@ -382,7 +382,7 @@ main(int argc, char *argv[]) vm_paddr_t hpa; size_t len; struct vm_exit vmexit; - uint64_t ctl, eptp, bm, tsc_off, addr, u64; + uint64_t ctl, eptp, bm, addr, u64; struct vmctx *ctx; uint64_t cr0, cr3, cr4, dr7, rsp, rip, rflags, efer, pat; @@ -1128,21 +1128,21 @@ main(int argc, char *argv[]) if (!error && get_pinbased_ctls) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_PIN_BASED_CTLS, &ctl); if (error == 0) - printf("pinbased_ctls[%d]\t0x%08x\n", vcpu, ctl); + printf("pinbased_ctls[%d]\t0x%08lx\n", vcpu, ctl); } if (!error && get_procbased_ctls) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_PRI_PROC_BASED_CTLS, &ctl); if (error == 0) - printf("procbased_ctls[%d]\t0x%08x\n", vcpu, ctl); + printf("procbased_ctls[%d]\t0x%08lx\n", vcpu, ctl); } if (!error && get_procbased_ctls2) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_SEC_PROC_BASED_CTLS, &ctl); if (error == 0) - printf("procbased_ctls2[%d]\t0x%08x\n", vcpu, ctl); + printf("procbased_ctls2[%d]\t0x%08lx\n", vcpu, ctl); } if (!error && get_vmcs_gla) { @@ -1162,7 +1162,7 @@ main(int argc, char *argv[]) if (!error && get_vmcs_entry_interruption_info) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_INTR_INFO,&u64); if (error == 0) { - printf("entry_interruption_info[%d]\t0x%08x\n", + printf("entry_interruption_info[%d]\t0x%08lx\n", vcpu, u64); } } @@ -1177,30 +1177,30 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXCEPTION_BITMAP, &bm); if (error == 0) - printf("exception_bitmap[%d]\t0x%08x\n", vcpu, bm); + printf("exception_bitmap[%d]\t0x%08lx\n", vcpu, bm); } if (!error && get_io_bitmap) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_A, &bm); if (error == 0) - printf("io_bitmap_a[%d]\t0x%08x\n", vcpu, bm); + printf("io_bitmap_a[%d]\t0x%08lx\n", vcpu, bm); error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_B, &bm); if (error == 0) - printf("io_bitmap_b[%d]\t0x%08x\n", vcpu, bm); + printf("io_bitmap_b[%d]\t0x%08lx\n", vcpu, bm); } if (!error && get_tsc_offset) { uint64_t tscoff; error = vm_get_vmcs_field(ctx, vcpu, VMCS_TSC_OFFSET, &tscoff); if (error == 0) - printf("tsc_offset[%d]\t0x%016lx\n", tscoff); + printf("tsc_offset[%d]\t0x%016lx\n", vcpu, tscoff); } if (!error && get_cr0_mask) { uint64_t cr0mask; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_MASK, &cr0mask); if (error == 0) - printf("cr0_mask[%d]\t\t0x%016lx\n", cr0mask); + printf("cr0_mask[%d]\t\t0x%016lx\n", vcpu, cr0mask); } if (!error && get_cr0_shadow) { @@ -1208,14 +1208,14 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_SHADOW, &cr0shadow); if (error == 0) - printf("cr0_shadow[%d]\t\t0x%016lx\n", cr0shadow); + printf("cr0_shadow[%d]\t\t0x%016lx\n", vcpu, cr0shadow); } if (!error && get_cr4_mask) { uint64_t cr4mask; error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_MASK, &cr4mask); if (error == 0) - printf("cr4_mask[%d]\t\t0x%016lx\n", cr4mask); + printf("cr4_mask[%d]\t\t0x%016lx\n", vcpu, cr4mask); } if (!error && get_cr4_shadow) { @@ -1223,7 +1223,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_SHADOW, &cr4shadow); if (error == 0) - printf("cr4_shadow[%d]\t\t0x%016lx\n", cr4shadow); + printf("cr4_shadow[%d]\t\t0x%016lx\n", vcpu, cr4shadow); } if (!error && get_cr3_targets) { @@ -1231,7 +1231,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET_COUNT, &target_count); if (error == 0) { - printf("cr3_target_count[%d]\t0x%08x\n", + printf("cr3_target_count[%d]\t0x%08lx\n", vcpu, target_count); } @@ -1281,7 +1281,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_TPR_THRESHOLD, &threshold); if (error == 0) - printf("tpr_threshold[%d]\t0x%08x\n", vcpu, threshold); + printf("tpr_threshold[%d]\t0x%08lx\n", vcpu, threshold); } if (!error && get_msr_bitmap_address) { @@ -1300,21 +1300,21 @@ main(int argc, char *argv[]) uint64_t vpid; error = vm_get_vmcs_field(ctx, vcpu, VMCS_VPID, &vpid); if (error == 0) - printf("vpid[%d]\t\t0x%04x\n", vcpu, vpid); + printf("vpid[%d]\t\t0x%04lx\n", vcpu, vpid); } if (!error && get_ple_window) { uint64_t window; error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_WINDOW, &window); if (error == 0) - printf("ple_window[%d]\t\t0x%08x\n", vcpu, window); + printf("ple_window[%d]\t\t0x%08lx\n", vcpu, window); } if (!error && get_ple_gap) { uint64_t gap; error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_GAP, &gap); if (error == 0) - printf("ple_gap[%d]\t\t0x%08x\n", vcpu, gap); + printf("ple_gap[%d]\t\t0x%08lx\n", vcpu, gap); } if (!error && get_inst_err) { @@ -1322,7 +1322,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_INSTRUCTION_ERROR, &insterr); if (error == 0) { - printf("instruction_error[%d]\t0x%08x\n", + printf("instruction_error[%d]\t0x%08lx\n", vcpu, insterr); } } @@ -1330,13 +1330,13 @@ main(int argc, char *argv[]) if (!error && get_exit_ctls) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_CTLS, &ctl); if (error == 0) - printf("exit_ctls[%d]\t\t0x%08x\n", vcpu, ctl); + printf("exit_ctls[%d]\t\t0x%08lx\n", vcpu, ctl); } if (!error && get_entry_ctls) { error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_CTLS, &ctl); if (error == 0) - printf("entry_ctls[%d]\t\t0x%08x\n", vcpu, ctl); + printf("entry_ctls[%d]\t\t0x%08lx\n", vcpu, ctl); } if (!error && get_host_pat) { @@ -1385,7 +1385,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_IA32_SYSENTER_CS, &cs); if (error == 0) - printf("guest_sysenter_cs[%d]\t0x%08x\n", vcpu, cs); + printf("guest_sysenter_cs[%d]\t0x%08lx\n", vcpu, cs); error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_IA32_SYSENTER_ESP, &rsp); @@ -1421,7 +1421,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTERRUPTION_INFO, &u64); if (error == 0) { - printf("vmcs_exit_interruption_info[%d]\t0x%08x\n", + printf("vmcs_exit_interruption_info[%d]\t0x%08lx\n", vcpu, u64); } } @@ -1430,7 +1430,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_INTERRUPTION_ERROR, &u64); if (error == 0) { - printf("vmcs_exit_interruption_error[%d]\t0x%08x\n", + printf("vmcs_exit_interruption_error[%d]\t0x%08lx\n", vcpu, u64); } } @@ -1439,7 +1439,7 @@ main(int argc, char *argv[]) error = vm_get_vmcs_field(ctx, vcpu, VMCS_GUEST_INTERRUPTIBILITY, &u64); if (error == 0) { - printf("vmcs_guest_interruptibility[%d]\t0x%08x\n", + printf("vmcs_guest_interruptibility[%d]\t0x%08lx\n", vcpu, u64); } } From owner-svn-src-projects@FreeBSD.ORG Sun May 15 13:07:34 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4FB41065674; Sun, 15 May 2011 13:07:34 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7C09B8FC1C; Sun, 15 May 2011 13:07:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4FD7YA7040193; Sun, 15 May 2011 13:07:34 GMT (envelope-from andreast@svn.freebsd.org) Received: (from andreast@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4FD7YkQ040192; Sun, 15 May 2011 13:07:34 GMT (envelope-from andreast@svn.freebsd.org) Message-Id: <201105151307.p4FD7YkQ040192@svn.freebsd.org> From: Andreas Tobler Date: Sun, 15 May 2011 13:07:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221956 - projects/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 15 May 2011 13:07:34 -0000 Author: andreast Date: Sun May 15 13:07:34 2011 New Revision: 221956 URL: http://svn.freebsd.org/changeset/base/221956 Log: Add a branch to develop IBM pSeries support. Added: - copied from r221955, head/sys/ Directory Properties: projects/pseries/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Sun May 15 13:27:28 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EED31065679; Sun, 15 May 2011 13:27:28 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8CF3A8FC0A; Sun, 15 May 2011 13:27:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4FDRSl1040701; Sun, 15 May 2011 13:27:28 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4FDRSIu040692; Sun, 15 May 2011 13:27:28 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105151327.p4FDRSIu040692@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 15 May 2011 13:27:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221959 - in projects/pseries: conf powerpc/conf powerpc/powerpc powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 15 May 2011 13:27:28 -0000 Author: nwhitehorn Date: Sun May 15 13:27:28 2011 New Revision: 221959 URL: http://svn.freebsd.org/changeset/base/221959 Log: Add initial code to support the IBM POWER hypervisor (e.g. LPARs on pSeries) machines, based on initial work by Andreas Tobler. This is sufficient to boot to the kernel complaining about not having drivers for anything on a POWER5+ P285 and on the POWER7 LPAR emulator recently added by IBM to QEMU. The specification for the hypervisor was provided in the PAPR 2.4 documentation provided by the Power.org consortium. Added: projects/pseries/powerpc/pseries/ projects/pseries/powerpc/pseries/mmu_phyp.c (contents, props changed) projects/pseries/powerpc/pseries/phyp-hvcall.S (contents, props changed) projects/pseries/powerpc/pseries/phyp-hvcall.h (contents, props changed) projects/pseries/powerpc/pseries/platform_chrp.c (contents, props changed) Modified: projects/pseries/conf/files.powerpc projects/pseries/conf/options.powerpc projects/pseries/powerpc/conf/GENERIC64 projects/pseries/powerpc/powerpc/cpu.c Modified: projects/pseries/conf/files.powerpc ============================================================================== --- projects/pseries/conf/files.powerpc Sun May 15 13:25:26 2011 (r221958) +++ projects/pseries/conf/files.powerpc Sun May 15 13:27:28 2011 (r221959) @@ -205,6 +205,9 @@ powerpc/ps3/ps3bus.c optional ps3 powerpc/ps3/ps3pic.c optional ps3 powerpc/ps3/ps3_syscons.c optional ps3 sc powerpc/ps3/ps3-hvcall.S optional ps3 sc +powerpc/pseries/phyp-hvcall.S optional pseries powerpc64 +powerpc/pseries/mmu_phyp.c optional pseries powerpc64 +powerpc/pseries/platform_chrp.c optional pseries powerpc/psim/iobus.c optional psim powerpc/psim/ata_iobus.c optional ata psim powerpc/psim/openpic_iobus.c optional psim Modified: projects/pseries/conf/options.powerpc ============================================================================== --- projects/pseries/conf/options.powerpc Sun May 15 13:25:26 2011 (r221958) +++ projects/pseries/conf/options.powerpc Sun May 15 13:27:28 2011 (r221959) @@ -20,6 +20,7 @@ MPC85XX opt_platform.h POWERMAC opt_platform.h PS3 opt_platform.h MAMBO +PSERIES PSIM SC_OFWFB opt_ofwfb.h Modified: projects/pseries/powerpc/conf/GENERIC64 ============================================================================== --- projects/pseries/powerpc/conf/GENERIC64 Sun May 15 13:25:26 2011 (r221958) +++ projects/pseries/powerpc/conf/GENERIC64 Sun May 15 13:27:28 2011 (r221959) @@ -29,6 +29,7 @@ makeoptions DEBUG=-g #Build kernel with options POWERMAC #NewWorld Apple PowerMacs options PS3 #Sony Playstation 3 options MAMBO #IBM Mambo Full System Simulator +options PSERIES #PAPR-compliant systems (e.g. IBM p) options SCHED_ULE #ULE scheduler options INET #InterNETworking Modified: projects/pseries/powerpc/powerpc/cpu.c ============================================================================== --- projects/pseries/powerpc/powerpc/cpu.c Sun May 15 13:25:26 2011 (r221958) +++ projects/pseries/powerpc/powerpc/cpu.c Sun May 15 13:27:28 2011 (r221959) @@ -127,6 +127,20 @@ static const struct cputab models[] = { { "IBM PowerPC 970MP", IBM970MP, REVFMT_MAJMIN, PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_970_setup }, + { "IBM POWER4", IBMPOWER4, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + { "IBM POWER4+", IBMPOWER4PLUS, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + { "IBM POWER5", IBMPOWER5, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + { "IBM POWER5+", IBMPOWER5PLUS, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_FPU, NULL }, + { "IBM POWER6", IBMPOWER6, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, + NULL }, + { "IBM POWER7", IBMPOWER7, REVFMT_MAJMIN, + PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, + NULL }, { "Motorola PowerPC 7400", MPC7400, REVFMT_MAJMIN, PPC_FEATURE_HAS_ALTIVEC | PPC_FEATURE_HAS_FPU, cpu_6xx_setup }, { "Motorola PowerPC 7410", MPC7410, REVFMT_MAJMIN, Added: projects/pseries/powerpc/pseries/mmu_phyp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/pseries/mmu_phyp.c Sun May 15 13:27:28 2011 (r221959) @@ -0,0 +1,291 @@ +/* + * Copyright (C) 2010 Andreas Tobler + * 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 ``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 TOOLS GMBH 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "mmu_if.h" +#include "moea64_if.h" + +#include "phyp-hvcall.h" + +/* + * Kernel MMU interface + */ + +static void mphyp_bootstrap(mmu_t mmup, vm_offset_t kernelstart, + vm_offset_t kernelend); +static void mphyp_cpu_bootstrap(mmu_t mmup, int ap); +static void mphyp_pte_synch(mmu_t, uintptr_t pt, struct lpte *pvo_pt); +static void mphyp_pte_clear(mmu_t, uintptr_t pt, struct lpte *pvo_pt, + uint64_t vpn, u_int64_t ptebit); +static void mphyp_pte_unset(mmu_t, uintptr_t pt, struct lpte *pvo_pt, + uint64_t vpn); +static void mphyp_pte_change(mmu_t, uintptr_t pt, struct lpte *pvo_pt, + uint64_t vpn); +static int mphyp_pte_insert(mmu_t, u_int ptegidx, struct lpte *pvo_pt); +static uintptr_t mphyp_pvo_to_pte(mmu_t, const struct pvo_entry *pvo); + +#define VSID_HASH_MASK 0x0000007fffffffffULL + + +static mmu_method_t mphyp_methods[] = { + MMUMETHOD(mmu_bootstrap, mphyp_bootstrap), + MMUMETHOD(mmu_cpu_bootstrap, mphyp_cpu_bootstrap), + + MMUMETHOD(moea64_pte_synch, mphyp_pte_synch), + MMUMETHOD(moea64_pte_clear, mphyp_pte_clear), + MMUMETHOD(moea64_pte_unset, mphyp_pte_unset), + MMUMETHOD(moea64_pte_change, mphyp_pte_change), + MMUMETHOD(moea64_pte_insert, mphyp_pte_insert), + MMUMETHOD(moea64_pvo_to_pte, mphyp_pvo_to_pte), + + { 0, 0 } +}; + +MMU_DEF_INHERIT(pseries_mmu, "mmu_phyp", mphyp_methods, 0, oea64_mmu); + +static void +mphyp_bootstrap(mmu_t mmup, vm_offset_t kernelstart, vm_offset_t kernelend) +{ + uint64_t final_pteg_count = 0; + char buf[8]; + uint32_t prop[2]; + phandle_t dev, node, root; + int res; + + printf("%s: %d\n", __FILE__, __LINE__); + + moea64_early_bootstrap(mmup, kernelstart, kernelend); + printf("%s: %d\n", __FILE__, __LINE__); + + root = OF_peer(0); + + dev = OF_child(root); + while (dev != 0) { + res = OF_getprop(dev, "name", buf, sizeof(buf)); + if (res > 0 && strcmp(buf, "cpus") == 0) + break; + dev = OF_peer(dev); + } + + node = OF_child(dev); + + while (node != 0) { + res = OF_getprop(node, "device_type", buf, sizeof(buf)); + if (res > 0 && strcmp(buf, "cpu") == 0) + break; + node = OF_peer(node); + } + + res = OF_getprop(node, "ibm,pft-size", prop, sizeof(prop)); + if (prop != NULL) + final_pteg_count = 1 << prop[1]; + + printf("final_pteg_count: %#x\n", (u_int)final_pteg_count); + + moea64_pteg_count = final_pteg_count / sizeof(struct lpteg); + + printf("%s: %d\n", __FILE__, __LINE__); + moea64_mid_bootstrap(mmup, kernelstart, kernelend); + printf("%s: %d\n", __FILE__, __LINE__); + moea64_late_bootstrap(mmup, kernelstart, kernelend); + printf("%s: %d\n", __FILE__, __LINE__); +} + +static void +mphyp_cpu_bootstrap(mmu_t mmup, int ap) +{ + struct slb *slb = PCPU_GET(slb); + register_t seg0; + int i; + + /* + * Install kernel SLB entries + */ + + printf("%s: %d\n", __FILE__, __LINE__); + __asm __volatile ("slbia"); + __asm __volatile ("slbmfee %0,%1; slbie %0;" : "=r"(seg0) : "r"(0)); + printf("%s: %d\n", __FILE__, __LINE__); + for (i = 0; i < 64; i++) { + if (!(slb[i].slbe & SLBE_VALID)) + continue; + + __asm __volatile ("slbmte %0, %1" :: + "r"(slb[i].slbv), "r"(slb[i].slbe)); + } + printf("%s: %d\n", __FILE__, __LINE__); +} + +static void +mphyp_pte_synch(mmu_t mmu, uintptr_t slot, struct lpte *pvo_pt) +{ + struct lpte pte; + uint64_t junk; + + phyp_pft_hcall(H_READ, 0, slot, 0, 0, &pte.pte_hi, &pte.pte_lo, + &junk); + + pvo_pt->pte_lo |= pte.pte_lo & (LPTE_CHG | LPTE_REF); +} + +static void +mphyp_pte_clear(mmu_t mmu, uintptr_t slot, struct lpte *pvo_pt, uint64_t vpn, + u_int64_t ptebit) +{ + + if (ptebit & LPTE_CHG) + phyp_hcall(H_CLEAR_MOD, 0, slot); + if (ptebit & LPTE_REF) + phyp_hcall(H_CLEAR_REF, 0, slot); +} + +static void +mphyp_pte_unset(mmu_t mmu, uintptr_t slot, struct lpte *pvo_pt, uint64_t vpn) +{ + + /* XXX: last argument can check the VPN -- set flag to enable */ + phyp_hcall(H_REMOVE, 0, slot, vpn); +} + +static void +mphyp_pte_change(mmu_t mmu, uintptr_t slot, struct lpte *pvo_pt, uint64_t vpn) +{ + struct lpte evicted; + uint64_t index, junk; + int64_t result; + + /* + * NB: this is protected by the global table lock, so this two-step + * is safe, except for the scratch-page case. No CPUs on which we run + * this code should be using scratch pages. + */ + + /* XXX: optimization using H_PROTECT for common case? */ + result = phyp_hcall(H_REMOVE, 0, slot, vpn); + if (result != H_SUCCESS) + panic("mphyp_pte_change() invalidation failure: %ld\n", result); + phyp_pft_hcall(H_ENTER, H_EXACT, slot, pvo_pt->pte_hi, + pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); + if (result != H_SUCCESS) + panic("mphyp_pte_change() insertion failure: %ld\n", result); +} + +static int +mphyp_pte_insert(mmu_t mmu, u_int ptegidx, struct lpte *pvo_pt) +{ + int64_t result; + struct lpte evicted; + uint64_t index, junk; + u_int pteg_bktidx; + + pvo_pt->pte_hi |= LPTE_VALID; + pvo_pt->pte_hi &= ~LPTE_HID; + evicted.pte_hi = 0; + + /* + * First try primary hash. + */ + pteg_bktidx = ptegidx; + result = phyp_pft_hcall(H_ENTER, 0, pteg_bktidx << 3, pvo_pt->pte_hi, + pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); + if (result == H_SUCCESS) + return (index & 0x07); + + /* + * First try primary hash. + */ + pteg_bktidx ^= moea64_pteg_mask; + pvo_pt->pte_hi |= LPTE_HID; + result = phyp_pft_hcall(H_ENTER, 0, pteg_bktidx << 3, + pvo_pt->pte_hi, pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); + if (result == H_SUCCESS) + return (index & 0x07); + + panic("OVERFLOW (%ld)", result); + return (-1); +} + +static __inline u_int +va_to_pteg(uint64_t vsid, vm_offset_t addr, int large) +{ + uint64_t hash; + int shift; + + shift = large ? moea64_large_page_shift : ADDR_PIDX_SHFT; + hash = (vsid & VSID_HASH_MASK) ^ (((uint64_t)addr & ADDR_PIDX) >> + shift); + return (hash & moea64_pteg_mask); +} + +static uintptr_t +mphyp_pvo_to_pte(mmu_t mmu, const struct pvo_entry *pvo) +{ + uint64_t vsid; + u_int ptegidx; + + /* If the PTEG index is not set, then there is no page table entry */ + if (!PVO_PTEGIDX_ISSET(pvo)) + return (-1); + + vsid = PVO_VSID(pvo); + ptegidx = va_to_pteg(vsid, PVO_VADDR(pvo), pvo->pvo_vaddr & PVO_LARGE); + + /* + * We can find the actual pte entry without searching by grabbing + * the PTEG index from 3 unused bits in pvo_vaddr and by + * noticing the HID bit. + */ + if (pvo->pvo_pte.lpte.pte_hi & LPTE_HID) + ptegidx ^= moea64_pteg_mask; + + return ((ptegidx << 3) | PVO_PTEGIDX_GET(pvo)); +} + Added: projects/pseries/powerpc/pseries/phyp-hvcall.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/pseries/phyp-hvcall.S Sun May 15 13:27:28 2011 (r221959) @@ -0,0 +1,68 @@ +/*- + * Copyright (C) 2010 Andreas Tobler + * 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 ``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 TOOLS GMBH 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. + * + * $FreeBSD$ + */ +#include + +/* Hypervisor entry call. */ +#define hc .long 0x44000022 + +/* + * Simple HV calls take the same arguments, with the same ABI, as this + * C function + */ +ASENTRY(phyp_hcall) + mflr %r0 + std %r0,16(%r1) + hc /* invoke the hypervisor */ + ld %r0,16(%r1) + mtlr %r0 + blr /* return r3 = status */ + +/* + * PFT HV calls take a special ABI (see PAPR 14.5.4.1) + * + * r3-r7 arguments passed unchanged, r8-r10 are addresses of return values + * HV takes the same r3-r7, but returns values in r3, r4-r6 + */ +ASENTRY(phyp_pft_hcall) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-80(%r1) + std %r8,48(%r1) /* save arguments */ + std %r9,56(%r1) + std %r10,64(%r1) + hc /* invoke the hypervisor */ + ld %r11,48(%r1) /* store results */ + std %r4,0(%r11) + ld %r11,56(%r1) + std %r5,0(%r11) + ld %r11,64(%r1) + std %r6,0(%r11) + ld %r1,0(%r1) /* exit */ + ld %r0,16(%r1) + mtlr %r0 + blr /* return r3 = status */ + Added: projects/pseries/powerpc/pseries/phyp-hvcall.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/pseries/phyp-hvcall.h Sun May 15 13:27:28 2011 (r221959) @@ -0,0 +1,304 @@ +/*- + * Copyright (C) 2010 Andreas Tobler + * 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 ``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 TOOLS GMBH 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. + * + * $FreeBSD$ + */ + +#ifndef _PSERIES_PHYP_HVCALL_H_ +#define _PSERIES_PHYP_HVCALL_H_ + +/* Information taken from: Power.org PAPR, Version 2.4 (December 7, 2009). */ + +#include + +/* Return codes. */ + +#define H_SUCCESS 0 +#define H_BUSY 1 /* Hardware Busy -- Retry Later. */ +#define H_CLOSED 2 /* Virtual I/O connection is closed. */ +#define H_NOT_AVAILABLE 3 +#define H_CONSTRAINED 4 /* The request called for resources in excess of + the maximum allowed. The resultant allocation + was constrained to maximum allowed. */ +#define H_PARTIAL 5 /* The request completed only partially successful. + Parameters were valid but some specific hcall + function condition prevented fully completing the + architected function, see the specific hcall + definition for possible reasons. */ +#define H_IN_PROGRESS 14 +#define H_PAGE_REGISTERED 15 +#define H_PARTIAL_STORE 16 +#define H_PENDING 17 +#define H_CONTINUE 18 + +#define H_LONG_BUSY_ORDER_1_MS 9900 /* This return code is identical to + H_BUSY, but with the added bonus of a + hint to the partition OS. If the + partition OS can delay for 1 + millisecond, the hcall will likely + succeed on a new hcall with no further + busy return codes. If the partition OS + cannot handle a delay, they are + certainly free to immediately turn + around and try again. */ +#define H_LONG_BUSY_ORDER_10_MS 9901 /* Similar to H_LONG_BUSY_ORDER_1_MS, but + the hint is 10mSec wait this time. */ + +#define H_LONG_BUSY_ORDER_100_MS 9902 /* Similar to H_LONG_BUSY_ORDER_1_MS, but + the hint is 100mSec wait this time. */ + +#define H_LONG_BUSY_ORDER_1_S 9903 /* Similar to H_LONG_BUSY_ORDER_1_MS, but + the hint is 1Sec wait this time. */ +#define H_LONG_BUSY_ORDER_10_S 9904 /* Similar to H_LONG_BUSY_ORDER_1_MS, but + the hint is 10Sec wait this time. */ +#define H_LONG_BUSY_ORDER_100_S 9905 /* Similar to H_LONG_BUSY_ORDER_1_MS, but + the hint is 100Sec wait this time. */ + +#define H_HARDWARE -1 /* Error. */ +#define H_FUNCTION -2 /* Not supported. */ +#define H_PRIVILEGE -3 /* Caller not in privileged mode. */ +#define H_PARAMETER -4 /* Outside valid range for partition or conflicting. */ +#define H_BAD_MODE -5 /* Illegal MSR value. */ +#define H_PTEG_FULL -6 /* The requested pteg was full. */ +#define H_NOT_FOUND -7 /* The requested entitiy was not found. */ +#define H_RESERVED_DABR -8 /* The requested address is reserved by the + hypervisor on this processor. */ +#define H_NOMEM -9 +#define H_AUTHORITY -10 /* The caller did not have authority to perform the + function. */ +#define H_PERMISSION -11 /* The mapping specified by the request does not + allow for the requested transfer. */ +#define H_DROPPED -12 /* One or more packets could not be delivered to + their requested destinations. */ +#define H_S_PARM -13 /* The source parameter is illegal. */ +#define H_D_PARM -14 /* The destination parameter is illegal. */ +#define H_R_PARM -15 /* The remote TCE mapping is illegal. */ +#define H_RESOURCE -16 /* One or more required resources are in use. */ +#define H_ADAPTER_PARM -17 /* Invalid adapter. */ +#define H_RH_PARM -18 /* Resource not valid or logical partition + conflicting. */ +#define H_RCQ_PARM -19 /* RCQ not valid or logical partition conflicting. */ +#define H_SCQ_PARM -20 /* SCQ not valid or logical partition conflicting. */ +#define H_EQ_PARM -21 /* EQ not valid or logical partition conflicting. */ +#define H_RT_PARM -22 /* Invalid resource type. */ +#define H_ST_PARM -23 /* Invalid service type. */ +#define H_SIGT_PARM -24 /* Invalid signalling type. */ +#define H_TOKEN_PARM -25 /* Invalid token. */ +#define H_MLENGTH_PARM -27 /* Invalid memory length. */ +#define H_MEM_PARM -28 /* Invalid memory I/O virtual address. */ +#define H_MEM_ACCESS_PARM -29 /* Invalid memory access control. */ +#define H_ATTR_PARM -30 /* Invalid attribute value. */ +#define H_PORT_PARM -31 /* Invalid port number. */ +#define H_MCG_PARM -32 /* Invalid multicast group. */ +#define H_VL_PARM -33 /* Invalid virtual lane. */ +#define H_TSIZE_PARM -34 /* Invalid trace size. */ +#define H_TRACE_PARM -35 /* Invalid trace buffer. */ +#define H_MASK_PARM -37 /* Invalid mask value. */ +#define H_MCG_FULL -38 /* Multicast attachments exceeded. */ +#define H_ALIAS_EXIST -39 /* Alias QP already defined. */ +#define H_P_COUNTER -40 /* Invalid counter specification. */ +#define H_TABLE_FULL -41 /* Resource page table full. */ +#define H_ALT_TABLE -42 /* Alternate table already exists / alternate page + table not available. */ +#define H_MR_CONDITION -43 /* Invalid memory region condition. */ +#define H_NOT_ENOUGH_RESOURCES -44 /* Insufficient resources. */ +#define H_R_STATE -45 /* Invalid resource state condition or sequencing + error. */ +#define H_RESCINDED -46 +#define H_ABORTED -54 +#define H_P2 -55 +#define H_P3 -56 +#define H_P4 -57 +#define H_P5 -58 +#define H_P6 -59 +#define H_P7 -60 +#define H_P8 -61 +#define H_P9 -62 +#define H_NOOP -63 +#define H_TOO_BIG -64 + +#define H_UNSUPPORTED -67 /* Parameter value outside of the range supported + by this implementation. */ + +/* Flags. */ +/* Table 168. Page Frame Table Access flags field definition. */ +#define H_EXACT (1UL<<(63-24)) +#define H_R_XLATE (1UL<<(63-25)) +#define H_READ_4 (1UL<<(63-26)) + +/* Table 178. CMO Page Usage State flags Definition. */ +#define H_PAGE_STATE_CHANGE (1UL<<(63-28)) +#define H_PAGE_UNUSED ((1UL<<(63-29)) | (1UL<<(63-30))) +#define H_PAGE_SET_UNUSED (H_PAGE_STATE_CHANGE | H_PAGE_UNUSED) +#define H_PAGE_SET_LOANED (H_PAGE_SET_UNUSED | (1UL<<(63-31))) +#define H_PAGE_SET_ACTIVE H_PAGE_STATE_CHANGE + +/* Table 168. Page Frame Table Access flags field definition. */ +#define H_AVPN (1UL<<(63-32)) +#define H_ANDCOND (1UL<<(63-33)) + +#define H_ICACHE_INVALIDATE (1UL<<(63-40)) +#define H_ICACHE_SYNCHRONIZE (1UL<<(63-41)) + +#define H_ZERO_PAGE (1UL<<(63-48)) +#define H_COPY_PAGE (1UL<<(63-49)) + +#define H_N (1UL<<(63-61)) +#define H_PP1 (1UL<<(63-62)) +#define H_PP2 (1UL<<(63-63)) + +/* pSeries hypervisor opcodes. */ +#define H_REMOVE 0x04 +#define H_ENTER 0x08 +#define H_READ 0x0c +#define H_CLEAR_MOD 0x10 +#define H_CLEAR_REF 0x14 +#define H_PROTECT 0x18 +#define H_GET_TCE 0x1c +#define H_PUT_TCE 0x20 +#define H_SET_SPRG0 0x24 +#define H_SET_DABR 0x28 +#define H_PAGE_INIT 0x2c +#define H_SET_ASR 0x30 +#define H_ASR_ON 0x34 +#define H_ASR_OFF 0x38 +#define H_LOGICAL_CI_LOAD 0x3c +#define H_LOGICAL_CI_STORE 0x40 +#define H_LOGICAL_CACHE_LOAD 0x44 +#define H_LOGICAL_CACHE_STORE 0x48 +#define H_LOGICAL_ICBI 0x4c +#define H_LOGICAL_DCBF 0x50 +#define H_GET_TERM_CHAR 0x54 +#define H_PUT_TERM_CHAR 0x58 +#define H_REAL_TO_LOGICAL 0x5c +#define H_HYPERVISOR_DATA 0x60 +#define H_EOI 0x64 +#define H_CPPR 0x68 +#define H_IPI 0x6c +#define H_IPOLL 0x70 +#define H_XIRR 0x74 +#define H_MIGRATE_DMA 0x78 +#define H_PERFMON 0x7c +#define H_REGISTER_VPA 0xdc +#define H_CEDE 0xe0 +#define H_CONFER 0xe4 +#define H_PROD 0xe8 +#define H_GET_PPP 0xec +#define H_SET_PPP 0xf0 +#define H_PURR 0xf4 +#define H_PIC 0xf8 +#define H_REG_CRQ 0xfc +#define H_FREE_CRQ 0x100 +#define H_VIO_SIGNAL 0x104 +#define H_SEND_CRQ 0x108 +#define H_PUT_RTCE 0x10c +#define H_COPY_RDMA 0x110 +#define H_REGISTER_LOGICAL_LAN 0x114 +#define H_FREE_LOGICAL_LAN 0x118 +#define H_ADD_LOGICAL_LAN_BUFFER 0x11c +#define H_SEND_LOGICAL_LAN 0x120 +#define H_BULK_REMOVE 0x124 +#define H_WRITE_RDMA 0x128 +#define H_READ_RDMA 0x12c +#define H_MULTICAST_CTRL 0x130 +#define H_SET_XDABR 0x134 +#define H_STUFF_TCE 0x138 +#define H_PUT_TCE_INDIRECT 0x13c +#define H_PUT_RTCE_INDIRECT 0x140 +#define H_CHANGE_LOGICAL_LAN_MAC 0x14c +#define H_VTERM_PARTNER_INFO 0x150 +#define H_REGISTER_VTERM 0x154 +#define H_FREE_VTERM 0x158 +/* Reserved .... +#define H_RESET_EVENTS 0x15c +#define H_ALLOC_RESOURCE 0x160 +#define H_FREE_RESOURCE 0x164 +#define H_MODIFY_QP 0x168 +#define H_QUERY_QP 0x16c +#define H_REREGISTER_PMR 0x170 +#define H_REGISTER_SMR 0x174 +#define H_QUERY_MR 0x178 +#define H_QUERY_MW 0x17c +#define H_QUERY_HCA 0x180 +#define H_QUERY_PORT 0x184 +#define H_MODIFY_PORT 0x188 +#define H_DEFINE_AQP1 0x18c +#define H_GET_TRACE_BUFFER 0x190 +#define H_DEFINE_AQP0 0x194 +#define H_RESIZE_MR 0x198 +#define H_ATTACH_MCQP 0x19c +#define H_DETACH_MCQP 0x1a0 +#define H_CREATE_RPT 0x1a4 +#define H_REMOVE_RPT 0x1a8 +#define H_REGISTER_RPAGES 0x1ac +#define H_DISABLE_AND_GETC 0x1b0 +#define H_ERROR_DATA 0x1b4 +#define H_GET_HCA_INFO 0x1b8 +#define H_GET_PERF_COUNT 0x1bc +#define H_MANAGE_TRACE 0x1c0 +.... */ +#define H_FREE_LOGICAL_LAN_BUFFER 0x1d4 +#define H_POLL_PENDING 0x1d8 +/* Reserved .... +#define H_QUERY_INT_STATE 0x1e4 +.... */ +#define H_LIOBN_ATTRIBUTES 0x240 +#define H_ILLAN_ATTRIBUTES 0x244 +#define H_REMOVE_RTCE 0x24c +/* Reserved ... +#define H_MODIFY_HEA_QP 0x250 +#define H_QUERY_HEA_QP 0x254 +#define H_QUERY_HEA 0x258 +#define H_QUERY_HEA_PORT 0x25c +#define H_MODIFY_HEA_PORT 0x260 +#define H_REG_BCMC 0x264 +#define H_DEREG_BCMC 0x268 +#define H_REGISTER_HEA_RPAGES 0x26c +#define H_DISABLE_AND_GET_HEA 0x270 +#define H_GET_HEA_INFO 0x274 +#define H_ALLOC_HEA_RESOURCE 0x278 +#define H_ADD_CONN 0x284 +#define H_DEL_CONN 0x288 +... */ +#define H_JOIN 0x298 +#define H_DONOR_OPERATION 0x29c +#define H_VASI_SIGNAL 0x2a0 +#define H_VASI_STATE 0x2a4 +#define H_VIOCTL 0x2a8 +#define H_VRMASD 0x2ac +#define H_ENABLE_CRQ 0x2b0 +/* Reserved ... +#define H_GET_EM_PARMS 0x2b8 +... */ +#define H_VPM_STAT 0x2bc +#define H_SET_MPP 0x2d0 +#define H_GET_MPP 0x2d4 +#define MAX_HCALL_OPCODE H_GET_MPP + +int64_t phyp_hcall(uint64_t opcode, ...); +int64_t phyp_pft_hcall(uint64_t opcode, uint64_t flags, uint64_t pteidx, + uint64_t pte_hi, uint64_t pte_lo, uint64_t *pteidx_out, uint64_t *ptelo_out, + uint64_t *r6); + +#endif /* _PSERIES_PHYP_HVCALL_H_ */ Added: projects/pseries/powerpc/pseries/platform_chrp.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/pseries/platform_chrp.c Sun May 15 13:27:28 2011 (r221959) @@ -0,0 +1,250 @@ +/*- + * Copyright (c) 2008 Marcel Moolenaar + * Copyright (c) 2009 Nathan Whitehorn + * 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 ``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 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "platform_if.h" + +#ifdef SMP +extern void *ap_pcpu; +#endif + +static int chrp_probe(platform_t); +static int chrp_attach(platform_t); +void chrp_mem_regions(platform_t, struct mem_region **phys, int *physsz, + struct mem_region **avail, int *availsz); +static u_long chrp_timebase_freq(platform_t, struct cpuref *cpuref); +static int chrp_smp_first_cpu(platform_t, struct cpuref *cpuref); +static int chrp_smp_next_cpu(platform_t, struct cpuref *cpuref); +static int chrp_smp_get_bsp(platform_t, struct cpuref *cpuref); +static int chrp_smp_start_cpu(platform_t, struct pcpu *cpu); +static void chrp_reset(platform_t); + +static platform_method_t chrp_methods[] = { + PLATFORMMETHOD(platform_probe, chrp_probe), + PLATFORMMETHOD(platform_attach, chrp_attach), + PLATFORMMETHOD(platform_mem_regions, chrp_mem_regions), + PLATFORMMETHOD(platform_timebase_freq, chrp_timebase_freq), + + PLATFORMMETHOD(platform_smp_first_cpu, chrp_smp_first_cpu), + PLATFORMMETHOD(platform_smp_next_cpu, chrp_smp_next_cpu), + PLATFORMMETHOD(platform_smp_get_bsp, chrp_smp_get_bsp), + PLATFORMMETHOD(platform_smp_start_cpu, chrp_smp_start_cpu), + + PLATFORMMETHOD(platform_reset, chrp_reset), + + { 0, 0 } +}; + +static platform_def_t chrp_platform = { + "chrp", + chrp_methods, + 0 +}; + +PLATFORM_DEF(chrp_platform); + +static int +chrp_probe(platform_t plat) +{ + if (OF_finddevice("/memory") != -1 || OF_finddevice("/memory@0") != -1) + return (BUS_PROBE_GENERIC); + + return (ENXIO); +} + +static int +chrp_attach(platform_t plat) +{ +printf("Attaching CHRP\n"); +#ifdef __powerpc64__ + /* XXX: check for /rtas/ibm,hypertas-functions? */ + if (!(mfmsr() & PSL_HV)) + pmap_mmu_install("mmu_phyp", BUS_PROBE_SPECIFIC); +#endif + + return (0); +} + +void +chrp_mem_regions(platform_t plat, struct mem_region **phys, int *physsz, + struct mem_region **avail, int *availsz) +{ + ofw_mem_regions(phys,physsz,avail,availsz); +} + +static u_long +chrp_timebase_freq(platform_t plat, struct cpuref *cpuref) +{ + phandle_t phandle; + int32_t ticks = -1; + + phandle = cpuref->cr_hwref; + + OF_getprop(phandle, "timebase-frequency", &ticks, sizeof(ticks)); + + if (ticks <= 0) + panic("Unable to determine timebase frequency!"); + + return (ticks); +} + + +static int +chrp_smp_fill_cpuref(struct cpuref *cpuref, phandle_t cpu) +{ + cell_t cpuid, res; + + cpuref->cr_hwref = cpu; + res = OF_getprop(cpu, "reg", &cpuid, sizeof(cpuid)); + + /* + * psim doesn't have a reg property, so assume 0 as for the + * uniprocessor case in the CHRP spec. + */ + if (res < 0) { + cpuid = 0; + } + + cpuref->cr_cpuid = cpuid & 0xff; + return (0); +} + +static int +chrp_smp_first_cpu(platform_t plat, struct cpuref *cpuref) +{ + char buf[8]; + phandle_t cpu, dev, root; + int res; + + root = OF_peer(0); + + dev = OF_child(root); + while (dev != 0) { + res = OF_getprop(dev, "name", buf, sizeof(buf)); + if (res > 0 && strcmp(buf, "cpus") == 0) + break; + dev = OF_peer(dev); + } + if (dev == 0) { + /* + * psim doesn't have a name property on the /cpus node, + * but it can be found directly + */ + dev = OF_finddevice("/cpus"); + if (dev == 0) + return (ENOENT); + } + + cpu = OF_child(dev); + + while (cpu != 0) { + res = OF_getprop(cpu, "device_type", buf, sizeof(buf)); + if (res > 0 && strcmp(buf, "cpu") == 0) + break; + cpu = OF_peer(cpu); + } + if (cpu == 0) + return (ENOENT); + + return (chrp_smp_fill_cpuref(cpuref, cpu)); +} + +static int +chrp_smp_next_cpu(platform_t plat, struct cpuref *cpuref) +{ + char buf[8]; + phandle_t cpu; + int res; + + cpu = OF_peer(cpuref->cr_hwref); + while (cpu != 0) { + res = OF_getprop(cpu, "device_type", buf, sizeof(buf)); + if (res > 0 && strcmp(buf, "cpu") == 0) + break; + cpu = OF_peer(cpu); + } + if (cpu == 0) + return (ENOENT); + + return (chrp_smp_fill_cpuref(cpuref, cpu)); +} + +static int +chrp_smp_get_bsp(platform_t plat, struct cpuref *cpuref) +{ + ihandle_t inst; + phandle_t bsp, chosen; + int res; + + chosen = OF_finddevice("/chosen"); + if (chosen == 0) + return (ENXIO); + + res = OF_getprop(chosen, "cpu", &inst, sizeof(inst)); + if (res < 0) + return (ENXIO); + + bsp = OF_instance_to_package(inst); + return (chrp_smp_fill_cpuref(cpuref, bsp)); +} + +static int +chrp_smp_start_cpu(platform_t plat, struct pcpu *pc) +{ + /* XXX: Uses RTAS call, will add later */ + return (ENXIO); +} + +static void +chrp_reset(platform_t platform) +{ + OF_reboot(); +} + From owner-svn-src-projects@FreeBSD.ORG Sun May 15 15:47:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8ED8106566C; Sun, 15 May 2011 15:47:18 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B55168FC13; Sun, 15 May 2011 15:47:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4FFlInU043566; Sun, 15 May 2011 15:47:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4FFlGcL043544; Sun, 15 May 2011 15:47:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105151547.p4FFlGcL043544@svn.freebsd.org> From: Attilio Rao Date: Sun, 15 May 2011 15:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221964 - in projects/largeSMP: contrib/top games/fortune/datfiles games/morse lib/libprocstat sbin/geom/class/part sbin/ifconfig share/man/man4 share/man/man4/man4.i386 share/mk sys/co... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 15 May 2011 15:47:18 -0000 Author: attilio Date: Sun May 15 15:47:16 2011 New Revision: 221964 URL: http://svn.freebsd.org/changeset/base/221964 Log: MFC Added: projects/largeSMP/lib/libprocstat/Symbol.map - copied unchanged from r221963, head/lib/libprocstat/Symbol.map projects/largeSMP/lib/libprocstat/Versions.def - copied unchanged from r221963, head/lib/libprocstat/Versions.def projects/largeSMP/share/man/man4/man4.i386/glxiic.4 - copied unchanged from r221963, head/share/man/man4/man4.i386/glxiic.4 projects/largeSMP/sys/dev/glxiic/ - copied from r221963, head/sys/dev/glxiic/ projects/largeSMP/sys/modules/glxiic/ - copied from r221963, head/sys/modules/glxiic/ Modified: projects/largeSMP/games/fortune/datfiles/fortunes projects/largeSMP/games/fortune/datfiles/fortunes-o.real projects/largeSMP/games/fortune/datfiles/fortunes-o.sp.ok projects/largeSMP/games/fortune/datfiles/fortunes.sp.ok projects/largeSMP/games/fortune/datfiles/freebsd-tips.sp.ok projects/largeSMP/games/fortune/datfiles/gerrold.limerick projects/largeSMP/games/fortune/datfiles/limerick projects/largeSMP/games/fortune/datfiles/limerick.sp.ok projects/largeSMP/games/fortune/datfiles/startrek.sp.ok projects/largeSMP/games/fortune/datfiles/zippy.sp.ok projects/largeSMP/games/morse/morse.c projects/largeSMP/lib/libprocstat/Makefile projects/largeSMP/lib/libprocstat/libprocstat.c projects/largeSMP/sbin/geom/class/part/geom_part.c projects/largeSMP/sbin/ifconfig/ifmedia.c projects/largeSMP/share/man/man4/hpet.4 projects/largeSMP/share/man/man4/man4.i386/Makefile projects/largeSMP/sys/conf/files.i386 projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/largeSMP/sys/dev/cxgbe/t4_sge.c projects/largeSMP/sys/dev/iwn/if_iwn.c projects/largeSMP/sys/dev/mii/mii.c projects/largeSMP/sys/dev/mk48txx/mk48txx.c projects/largeSMP/sys/dev/mk48txx/mk48txxreg.h projects/largeSMP/sys/dev/scc/scc_bfe_ebus.c projects/largeSMP/sys/dev/uart/uart_cpu_sparc64.c projects/largeSMP/sys/geom/eli/g_eli_key_cache.c projects/largeSMP/sys/i386/conf/NOTES projects/largeSMP/sys/modules/Makefile projects/largeSMP/sys/net/if_media.h projects/largeSMP/sys/sparc64/sparc64/eeprom.c Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/games/fortune/datfiles/fortunes ============================================================================== --- projects/largeSMP/games/fortune/datfiles/fortunes Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/fortunes Sun May 15 15:47:16 2011 (r221964) @@ -10494,13 +10494,13 @@ Anti-trust laws should be approached wit Antonio Antonio Was tired of living alonio He thought he would woo Antonio Antonio -Miss Lucamy Lu, Rode of on his polo ponio +Miss Lucamy Lu, Rode off on his polo ponio Miss Lucamy Lucy Molonio. And found the maid In a bowery shade, Sitting and knitting alonio. Antonio Antonio Said if you will be my ownio -I'll love tou true Oh nonio Antonio +I'll love you true Oh nonio Antonio And buy for you You're far too bleak and bonio An icery creamry conio. And all that I wish You singular fish @@ -10509,7 +10509,7 @@ Antonio Antonio Uttered a dismal moanio And went off and hid Or I'm told that he did -In the Antartical Zonio. +In the Antarctical Zonio. % Antonym, n.: The opposite of the word you're trying to think of. @@ -20232,7 +20232,7 @@ Good-bye. I am leaving because I am bor Goodbye, cool world. % Goose pimples rose all over me, my hair stood on end, my eyes filled with -tears of love and gratitude for this greatest of all conquerers of human +tears of love and gratitude for this greatest of all conquerors of human misery and shame, and my breath came in little gasps. If I had not known that the Leader would have scorned such adulation, I might have fallen to my knees in unashamed worship, but instead I drew myself to attention, raised @@ -25099,7 +25099,7 @@ intellectual enlightenment % IBM: - [Internation Business Machines Corp.] Also known as Itty Bitty + [International Business Machines Corp.] Also known as Itty Bitty Machines or The Lawyer's Friend. The dominant force in computer marketing, having supplied worldwide some 75% of all known hardware and 10% of all software. To protect itself from the litigious envy Modified: projects/largeSMP/games/fortune/datfiles/fortunes-o.real ============================================================================== --- projects/largeSMP/games/fortune/datfiles/fortunes-o.real Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/fortunes-o.real Sun May 15 15:47:16 2011 (r221964) @@ -7722,7 +7722,7 @@ I wooed a stewed nude in Bermuda, I was lewd, but my God! she was lewder. She said it was crude To be wooed in the nude-- -I persued her, subdued her, and screwed her! +I pursued her, subdued her, and screwed her! % I would like to say, Mister Bunce, I'm a great connoisseur of hot cunts. @@ -9044,7 +9044,7 @@ raped, his house burned, and all his cat distant neighbors about the tragedy, a few of them reported that the only stranger they had seen in the area for weeks was a tall desperado wearing a black hat and a red neckerchief. - The cowboy saddled his fastest horse and set out to find the villian. + The cowboy saddled his fastest horse and set out to find the villain. He searched for months but couldn't catch up with the culprit; in town after dusty town he was told that a man fitting the description had been there but had just departed; usually after some heinous crime. Modified: projects/largeSMP/games/fortune/datfiles/fortunes-o.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/fortunes-o.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/fortunes-o.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -1121,7 +1121,6 @@ pees penis pere Perelman -persued pestes Peteer Pettigrew @@ -1600,7 +1599,6 @@ vibrators vici Vida vidi -villian virginem Visme viziti Modified: projects/largeSMP/games/fortune/datfiles/fortunes.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/fortunes.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/fortunes.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -139,7 +139,6 @@ Anouilh ANRS Ansley answerback -Antartic Anthony's Antonym Antrim @@ -375,7 +374,6 @@ Bertolt Besicovitch Beslove Betazoid -bethumped Bette Bevan BEW @@ -468,7 +466,6 @@ booing bookaholic Booker's boola -Boorchi Boorstin bootable Boothe @@ -576,7 +573,6 @@ Bulwer bumperless Bumstead Bungei -BURBULATION Buren Burggoven burgled @@ -623,7 +619,6 @@ Callahan Callahan's Callimachus Camden -Camelia Cameron Camillo Campbell @@ -771,7 +766,6 @@ Churchill's Churchy Chuzzlewit CI -Cianci Ciardi cinched cinema's @@ -806,7 +800,6 @@ Cochran cockamamie Cocteau Cody -Cody's Coevolution cogito Cohen's @@ -826,7 +819,6 @@ Comebacks Commedia Commie CommUNIXque -compuberty computatis Computerdom computerites @@ -1077,8 +1069,6 @@ DJ DMPK Dobb's Dobbs -doberman -doberperson Dobie Doc Docquier @@ -1203,7 +1193,6 @@ EINS Einstein's Eisley Elbert -ELBONICS Eldridge electrocommunications Electrocution @@ -1264,7 +1253,6 @@ Eschenbach Escher esperantisto Esplandian -Esser est estas Estes @@ -1293,7 +1281,6 @@ exhalation exhibitionists EXP expatriated -extemporanea extracurricular Exupery Exxon's @@ -1301,7 +1288,6 @@ eyestalks Eyquem Ezrin FAA -FACISM Factorials Fadiman Fafhrd @@ -1340,7 +1326,6 @@ Fellgett's Felton feminism's Femme -FENDERBERG Fenelon Fenster Ferber @@ -1369,7 +1354,6 @@ fikcio fiks filees filename -Filgoer's filigrees Filkharmonics Fillmore @@ -1398,7 +1382,6 @@ flamewars Flandry Flannagan's Flannery -FLANNISTER Flappity flatfoot flatteries @@ -1410,7 +1393,6 @@ Flon's floppity Florio floss -flouride Flugg's Flummery flutterby @@ -1557,7 +1539,6 @@ Geminis Genderplex Genesereth Genghis -genlock genocide Genter Geritol @@ -1605,7 +1586,6 @@ Giuseppe Glanvill Glaser gleekzorp -GLEEMITES Glegg gleknow Glib's @@ -2013,7 +1993,6 @@ if's ifthen Igmmlptk Ignatowski -ignisecond ihuxw IIc III's @@ -2498,7 +2477,6 @@ Lovin Lowells Lowery's Lowes -Lownes LP LPA LSD @@ -2534,7 +2512,6 @@ Ma's Mabbitt Mabley Macaroons -MacBeth Maccius MacDowell MacDuff @@ -2621,7 +2598,6 @@ Matz's Maud Maud'Dib Maugham -Maughm Maupin Maureens Maurois @@ -2630,7 +2606,6 @@ Maxey Maxson May's Mayorga -Mårten MBAs MBH MC @@ -2687,7 +2662,6 @@ Mendelson mendicants Mengot Menninger -Mensa Menschen Meow meowing @@ -2715,7 +2689,6 @@ Mickos microchips Microcomputing micrometric -Microsystem's Microsystems MicroVAXes midgets @@ -2730,7 +2703,6 @@ milk's Milkbone Millay Milligan -millihelen Millikan Millikan's millions @@ -2763,7 +2735,6 @@ Mitford Mitgong mittengrabben mitts -mittsquinter MITZIE Mix's Miyamoto @@ -2779,7 +2750,6 @@ modifaiing Modula Moebius Mohandas -Mohandis mohmen Moishe Molander @@ -2803,7 +2773,6 @@ Moolah moonshiner's Moore's mopeds -mophobia Moping moralists Mordecai @@ -2832,7 +2801,6 @@ Mt MTA Muad'dib muckest -mucklucks Mudgeeraba Mudhead mudslide @@ -2888,7 +2856,6 @@ nanohenry nanometers Nansen Napoleon's -narcolepulacyi Narnia Nasium's Naso @@ -2909,7 +2876,6 @@ Neantical Nebuchadnezzar Nebuchadnezzar's necesas -necessitious NecroSoft Nehru Neil's @@ -2940,7 +2906,6 @@ NF NFL Ngdanga Niagra -Niccoli Nicklaus Nicol Nicolaides @@ -3165,7 +3130,6 @@ Pearsall PECCATOPHOBIA Pecor's Pedaeration -pediddel Peers's Pegler pelted @@ -3192,7 +3156,6 @@ Personifiers Petaluma Petersons Petr -petribar Petronius Pfeiffer Pfffttt @@ -3204,7 +3167,6 @@ Philips philogyny phoney Phooey -phosflink Picadilly Pickard Pickle's @@ -3246,7 +3208,6 @@ Pocataligo Pocatello Podunk Pohl's -Poincair Poincare's pointy Polanski @@ -3347,7 +3308,6 @@ Pumpernickel punchline punning PUPs -PURPITATION Purshottam PUSHes pushy @@ -3551,7 +3511,6 @@ Saberhagen Sacher's Sadat Saddam -sadoequinecrophilia Saens Safford Safire's @@ -3605,7 +3564,6 @@ Schickele Schieffer schisms schizophrenics -schlattwhapper schlichte schluerfen Schmendrick @@ -3631,7 +3589,6 @@ Scintillae Scott's Scoville SCRBL -SCRIBLINE Scrubb scullery scurries @@ -3784,7 +3741,6 @@ somebody'd something's Sondheim Sooooo -Soren Sorhed sort've sorta @@ -3799,7 +3755,6 @@ SP Spacemen Spaceport spacewar -SPAGMUMPS spake Spam spank @@ -3824,7 +3779,6 @@ springenwerk Springsteen sprites SPSW -SQUATCHO squaws squealers squrooneg @@ -3980,7 +3934,6 @@ teepers telematic telepath teleportation -TELEPRESSION telepsychology tempfile tendrils @@ -4028,7 +3981,6 @@ tinpot Tirith tis Tiselius -Titas tites TLC TM @@ -4060,7 +4012,6 @@ toun Tourbillon Toven trans -transcendant transmogrifiers trapezes Traub @@ -4121,7 +4072,6 @@ TYDFS tyg typefaces Tyroon -tzu Ubi UDA Udall's @@ -4152,7 +4102,6 @@ Unseld untechnician unvoist Updike -upharsen uponst Urey Urho Modified: projects/largeSMP/games/fortune/datfiles/freebsd-tips.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/freebsd-tips.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/freebsd-tips.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -45,7 +45,6 @@ misc natserv ncal netcat -netscape netstat newfile NICs Modified: projects/largeSMP/games/fortune/datfiles/gerrold.limerick ============================================================================== --- projects/largeSMP/games/fortune/datfiles/gerrold.limerick Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/gerrold.limerick Sun May 15 15:47:16 2011 (r221964) @@ -3,7 +3,7 @@ %% Copyright David Gerrold, 1984-2000, all rights reserved, %% used with permission of the author. %% -%%© This is the copyright line. +%%© This is the copyright line. %%Eighty-nine is the year we assign. %% These verses are caroled %% by one David Gerrold. Modified: projects/largeSMP/games/fortune/datfiles/limerick ============================================================================== --- projects/largeSMP/games/fortune/datfiles/limerick Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/limerick Sun May 15 15:47:16 2011 (r221964) @@ -260,7 +260,7 @@ And white footgear intended for tennis. % A dulcet-voiced callgirl named Shedd, Who's cultured, well-spoken, well-bred, - Had achieved some reknown + Had achieved some renown For her tone going down-- There's a nice civil tongue in her head. % @@ -307,7 +307,7 @@ Had sex with a virgin named Grace. By bleeding all over his face. % A gay young prince from Morocco -Made love in a manner rococco. +Made love in a manner rococo. He painted his penis To resemble a Venus And flavored his semen with cocoa. Modified: projects/largeSMP/games/fortune/datfiles/limerick.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/limerick.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/limerick.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -283,6 +283,7 @@ McTavish meanie meanies meany +Mensa mentis midgets minimis @@ -353,11 +354,9 @@ quimmy quints ravished Reims -reknown Resounded retriebrve Rhyll -rococco rogered Salinas Sandem Modified: projects/largeSMP/games/fortune/datfiles/startrek.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/startrek.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/startrek.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -14,7 +14,6 @@ Corbomite Corby Daystrom Deela -Dehaver Elaan Eleen Eneg Modified: projects/largeSMP/games/fortune/datfiles/zippy.sp.ok ============================================================================== --- projects/largeSMP/games/fortune/datfiles/zippy.sp.ok Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/fortune/datfiles/zippy.sp.ok Sun May 15 15:47:16 2011 (r221964) @@ -180,7 +180,7 @@ manicurist matic meatball meltdown -naugahide +naugahyde obstetrician poindexter pre Modified: projects/largeSMP/games/morse/morse.c ============================================================================== --- projects/largeSMP/games/morse/morse.c Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/games/morse/morse.c Sun May 15 15:47:16 2011 (r221964) @@ -161,20 +161,20 @@ static const struct morsetab iso8859_1ta static const struct morsetab iso8859_7tab[] = { /* - * The greek alphabet; you'll need an 8859-7 font in order + * The Greek alphabet; you'll need an ISO8859-7 font in order * to see the actual characters. * This table does not implement: * - the special sequences for the seven diphthongs, * - the punctuation differences. * Implementing these features would introduce too many * special-cases in the program's main loop. - * The diphtong sequences are: + * The diphthong sequences are: * alpha iota .-.- * alpha upsilon ..-- * epsilon upsilon ---. * eta upsilon ...- - * omikron iota ---.. - * omikron upsilon ..- + * omicron iota ---.. + * omicron upsilon ..- * upsilon iota .--- * The different punctuation symbols are: * ; ..-.- @@ -193,10 +193,10 @@ static const struct morsetab iso8859_7ta {'è', "-.-."}, /* theta */ {'é', ".."}, /* iota */ {'ß', ".."}, /* iota with acute */ - {'ú', ".."}, /* iota with diairesis */ - {'À', ".."}, /* iota with acute and diairesis */ + {'ú', ".."}, /* iota with diaeresis */ + {'À', ".."}, /* iota with acute and diaeresis */ {'ê', "-.-"}, /* kappa */ - {'ë', ".-.."}, /* lamda */ + {'ë', ".-.."}, /* lambda */ {'ì', "--"}, /* mu */ {'í', "-."}, /* nu */ {'î', "-..-"}, /* xi */ @@ -209,8 +209,8 @@ static const struct morsetab iso8859_7ta {'ô', "-"}, /* tau */ {'õ', "-.--"}, /* upsilon */ {'ý', "-.--"}, /* upsilon with acute */ - {'û', "-.--"}, /* upsilon and diairesis */ - {'à', "-.--"}, /* upsilon with acute and diairesis */ + {'û', "-.--"}, /* upsilon and diaeresis */ + {'à', "-.--"}, /* upsilon with acute and diaeresis */ {'ö', "..-."}, /* phi */ {'÷', "----"}, /* chi */ {'ø', "--.-"}, /* psi */ @@ -222,29 +222,29 @@ static const struct morsetab iso8859_7ta static const struct morsetab koi8rtab[] = { /* - * the cyrillic alphabet; you'll need a KOI8R font in order + * The Cyrillic alphabet; you'll need a KOI8-R font in order * to see the actual characters */ - {'Á', ".-"}, /* a */ + {'Á', ".-"}, /* a */ {'Â', "-..."}, /* be */ {'×', ".--"}, /* ve */ {'Ç', "--."}, /* ge */ {'Ä', "-.."}, /* de */ - {'Å', "."}, /* ye */ - {'£', "."}, /* yo, the same as ye */ + {'Å', "."}, /* ye */ + {'£', "."}, /* yo, the same as ye */ {'Ö', "...-"}, /* she */ {'Ú', "--.."}, /* ze */ - {'É', ".."}, /* i */ + {'É', ".."}, /* i */ {'Ê', ".---"}, /* i kratkoye */ {'Ë', "-.-"}, /* ka */ {'Ì', ".-.."}, /* el */ - {'Í', "--"}, /* em */ - {'Î', "-."}, /* en */ + {'Í', "--"}, /* em */ + {'Î', "-."}, /* en */ {'Ï', "---"}, /* o */ {'Ð', ".--."}, /* pe */ {'Ò', ".-."}, /* er */ {'Ó', "..."}, /* es */ - {'Ô', "-"}, /* te */ + {'Ô', "-"}, /* te */ {'Õ', "..-"}, /* u */ {'Æ', "..-."}, /* ef */ {'È', "...."}, /* kha */ @@ -305,9 +305,9 @@ main(int argc, char **argv) while ((ch = getopt(argc, argv, GETOPTOPTS)) != -1) switch ((char) ch) { - case 'c': - cpm = atoi(optarg); - break; + case 'c': + cpm = atoi(optarg); + break; case 'd': device = optarg; break; Modified: projects/largeSMP/lib/libprocstat/Makefile ============================================================================== --- projects/largeSMP/lib/libprocstat/Makefile Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/lib/libprocstat/Makefile Sun May 15 15:47:16 2011 (r221964) @@ -12,6 +12,9 @@ SRCS= cd9660.c \ smbfs.c \ udf.c +VERSION_DEF= ${.CURDIR}/Versions.def +SYMBOL_MAPS= ${.CURDIR}/Symbol.map + INCS= libprocstat.h CFLAGS+= -I. -I${.CURDIR} -D_KVM_VNODE SHLIB_MAJOR= 1 Copied: projects/largeSMP/lib/libprocstat/Symbol.map (from r221963, head/lib/libprocstat/Symbol.map) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/lib/libprocstat/Symbol.map Sun May 15 15:47:16 2011 (r221964, copy of r221963, head/lib/libprocstat/Symbol.map) @@ -0,0 +1,16 @@ +/* + * $FreeBSD$ + */ +FBSD_1.2 { + procstat_close; + procstat_freefiles; + procstat_freeprocs; + procstat_get_pipe_info; + procstat_get_pts_info; + procstat_get_socket_info; + procstat_get_vnode_info; + procstat_getfiles; + procstat_getprocs; + procstat_open_kvm; + procstat_open_sysctl; +}; Copied: projects/largeSMP/lib/libprocstat/Versions.def (from r221963, head/lib/libprocstat/Versions.def) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/lib/libprocstat/Versions.def Sun May 15 15:47:16 2011 (r221964, copy of r221963, head/lib/libprocstat/Versions.def) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# This version was first added to 9.0-current. +FBSD_1.2 { +}; Modified: projects/largeSMP/lib/libprocstat/libprocstat.c ============================================================================== --- projects/largeSMP/lib/libprocstat/libprocstat.c Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/lib/libprocstat/libprocstat.c Sun May 15 15:47:16 2011 (r221964) @@ -253,7 +253,7 @@ procstat_getfiles(struct procstat *procs if (procstat->type == PROCSTAT_SYSCTL) return (procstat_getfiles_sysctl(procstat, kp, mmapped)); else if (procstat->type == PROCSTAT_KVM) - return (procstat_getfiles_kvm(procstat, kp, mmapped)); + return (procstat_getfiles_kvm(procstat, kp, mmapped)); else return (NULL); } Modified: projects/largeSMP/sbin/geom/class/part/geom_part.c ============================================================================== --- projects/largeSMP/sbin/geom/class/part/geom_part.c Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/sbin/geom/class/part/geom_part.c Sun May 15 15:47:16 2011 (r221964) @@ -253,13 +253,7 @@ find_provider(struct ggeom *gp, off_t mi bestsector = 0; LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - sector = - (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - sector = (off_t)strtoimax(s, NULL, 0); - + sector = (off_t)strtoimax(s, NULL, 0); if (sector < minsector) continue; if (bestpp != NULL && sector >= bestsector) @@ -379,18 +373,9 @@ gpart_autofill_resize(struct gctl_req *r errx(EXIT_FAILURE, "invalid partition index"); s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - start = (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - start = (off_t)strtoimax(s, NULL, 0); + start = (off_t)strtoimax(s, NULL, 0); s = find_provcfg(pp, "end"); - if (s == NULL) { - s = find_provcfg(pp, "length"); - lba = start + - (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - lba = (off_t)strtoimax(s, NULL, 0) + 1; + lba = (off_t)strtoimax(s, NULL, 0) + 1; if (lba > last) { geom_deletetree(&mesh); @@ -402,12 +387,7 @@ gpart_autofill_resize(struct gctl_req *r new_size = ALIGNDOWN(last - start + 1, alignment); else { s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - new_lba = - (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - new_lba = (off_t)strtoimax(s, NULL, 0); + new_lba = (off_t)strtoimax(s, NULL, 0); /* * Is there any free space between current and * next providers? @@ -512,12 +492,7 @@ gpart_autofill(struct gctl_req *req) last = ALIGNDOWN(last, alignment); while ((pp = find_provider(gp, first)) != NULL) { s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - lba = (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - lba = (off_t)strtoimax(s, NULL, 0); - + lba = (off_t)strtoimax(s, NULL, 0); a_lba = ALIGNDOWN(lba, alignment); if (first < a_lba && a_first < a_lba) { /* Free space [first, lba> */ @@ -543,12 +518,7 @@ gpart_autofill(struct gctl_req *req) } s = find_provcfg(pp, "end"); - if (s == NULL) { - s = find_provcfg(pp, "length"); - first = lba + - (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; - } else - first = (off_t)strtoimax(s, NULL, 0) + 1; + first = (off_t)strtoimax(s, NULL, 0) + 1; a_first = ALIGNUP(first, alignment); } if (a_first <= last) { @@ -625,21 +595,12 @@ gpart_show_geom(struct ggeom *gp, const while ((pp = find_provider(gp, first)) != NULL) { s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - sector = (off_t)strtoimax(s, NULL, 0) / secsz; - } else - sector = (off_t)strtoimax(s, NULL, 0); + sector = (off_t)strtoimax(s, NULL, 0); s = find_provcfg(pp, "end"); - if (s == NULL) { - s = find_provcfg(pp, "length"); - length = (off_t)strtoimax(s, NULL, 0) / secsz; - end = sector + length - 1; - } else { - end = (off_t)strtoimax(s, NULL, 0); - length = end - sector + 1; - } + end = (off_t)strtoimax(s, NULL, 0); + length = end - sector + 1; + s = find_provcfg(pp, "index"); idx = atoi(s); if (first < sector) { @@ -782,20 +743,12 @@ gpart_backup(struct gctl_req *req, unsig printf("%s %s\n", scheme, s); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "start"); - if (s == NULL) { - s = find_provcfg(pp, "offset"); - sector = (off_t)strtoimax(s, NULL, 0) / secsz; - } else - sector = (off_t)strtoimax(s, NULL, 0); + sector = (off_t)strtoimax(s, NULL, 0); s = find_provcfg(pp, "end"); - if (s == NULL) { - s = find_provcfg(pp, "length"); - length = (off_t)strtoimax(s, NULL, 0) / secsz; - } else { - end = (off_t)strtoimax(s, NULL, 0); - length = end - sector + 1; - } + end = (off_t)strtoimax(s, NULL, 0); + length = end - sector + 1; + s = find_provcfg(pp, "label"); printf("%-*s %*s %*jd %*jd %s %s\n", windex, find_provcfg(pp, "index"), Modified: projects/largeSMP/sbin/ifconfig/ifmedia.c ============================================================================== --- projects/largeSMP/sbin/ifconfig/ifmedia.c Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/sbin/ifconfig/ifmedia.c Sun May 15 15:47:16 2011 (r221964) @@ -268,13 +268,9 @@ setmedia(const char *val, int d, int s, subtype = get_media_subtype(IFM_TYPE(ifmr->ifm_ulist[0]), val); strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); - ifr.ifr_media = (ifmr->ifm_current & ~(IFM_NMASK|IFM_TMASK)) | + ifr.ifr_media = (ifmr->ifm_current & IFM_IMASK) | IFM_TYPE(ifmr->ifm_ulist[0]) | subtype; - if ((ifr.ifr_media & IFM_TMASK) == 0) { - ifr.ifr_media &= ~(IFM_GMASK | IFM_OMASK); - } - ifmr->ifm_current = ifr.ifr_media; callback_register(setifmediacallback, (void *)ifmr); } Modified: projects/largeSMP/share/man/man4/hpet.4 ============================================================================== --- projects/largeSMP/share/man/man4/hpet.4 Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/share/man/man4/hpet.4 Sun May 15 15:47:16 2011 (r221964) @@ -69,14 +69,14 @@ This driver uses High Precision Event Ti usually enumerated via ACPI) to supply kernel with one time counter and several (usually from 3 to 8) event timers. This hardware includes single main counter with known increment frequency -(10MHz or more), and several programable comparators (optionally with +(10MHz or more), and several programmable comparators (optionally with automatic reload feature). When value of the main counter matches current value of any comparator, interrupt can be generated. Depending on hardware capabilities and configuration, interrupt can be delivered as regular I/O APIC interrupt (ISA or PCI) in range from 0 to 31, or as Front Side Bus interrupt, alike to PCI MSI interrupts, or in so called -"LegacyReplacement Route" HPET can speal IRQ0 of i8254 and IRQ8 of the RTC. +"LegacyReplacement Route" HPET can steal IRQ0 of i8254 and IRQ8 of the RTC. Interrupt can be either edge- or level-triggered. In last case they could be safely shared with PCI IRQs. Driver prefers to use FSB interrupts, if supported, to avoid sharing. Modified: projects/largeSMP/share/man/man4/man4.i386/Makefile ============================================================================== --- projects/largeSMP/share/man/man4/man4.i386/Makefile Sun May 15 14:58:29 2011 (r221963) +++ projects/largeSMP/share/man/man4/man4.i386/Makefile Sun May 15 15:47:16 2011 (r221964) @@ -12,6 +12,7 @@ MAN= aic.4 \ ep.4 \ ex.4 \ fe.4 \ + glxiic.4 \ glxsb.4 \ ie.4 \ longrun.4 \ Copied: projects/largeSMP/share/man/man4/man4.i386/glxiic.4 (from r221963, head/share/man/man4/man4.i386/glxiic.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/share/man/man4/man4.i386/glxiic.4 Sun May 15 15:47:16 2011 (r221964, copy of r221963, head/share/man/man4/man4.i386/glxiic.4) @@ -0,0 +1,106 @@ +.\" Copyright (c) 2011 Henrik Brix Andersen +.\" 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 ``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 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. +.\" +.\" $FreeBSD$ +.\" +.Dd May 15, 2011 +.Dt GLXIIC 4 i386 +.Os +.Sh NAME +.Nm glxiic +.Nd Geode LX CS5536 I2C controller driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device pci" +.Cd "device isa" +.Cd "device glxiic" +.Cd "device iicbus" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +glxiic_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports the System Management Bus controller of the Geode LX +series CS5536 Companion Device. The Geode LX is a member of the AMD +Geode family of integrated x86 system chips. +.Pp +Although AMD refers to this device as a System Management Bus (SMBus) +controller, it is really an I2C controller (it lacks SMBus ALERT# and +Alert Response support). +.Pp +The +.Nm +driver supports both I2C master and slave mode. +.Sh SYSCTL VARIABLE +The +.Nm +driver supports the following variable as both +.Xr sysctl 8 +and +.Xr loader 8 +tunable: +.Bl -tag -width indent +.It Va dev.glxiic.0.timeout +This variable controls the I2C bus timeout in milliseconds. The +default timeout is 35 milliseconds. A value of zero disables the +timeout. +.El +.Sh CAVEAT +The +.Nm +driver uses the interrupt line number configured by the board firmware +by default. If no interrupt line number has been configured by the +board firmware (or to override the interrupt line number configured by +board firmware), place the following line in +.Xr device.hints 5 : +.Bd -ragged -offset indent +hint.glxiic.0.irq="10" +.Ed +.Pp +The interrupt line number must be between 1 and 15. +.Sh SEE ALSO +.Xr iicbus 4 , +.Xr device.hints 5 , +.Xr loader.conf 5 , +.Xr loader 8 , +.Xr sysctl 8 +.Sh HISTORY +The *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon May 16 03:22:41 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B64651065672; Mon, 16 May 2011 03:22:41 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BAEC8FC0C; Mon, 16 May 2011 03:22:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4G3Mfac064234; Mon, 16 May 2011 03:22:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4G3MfM1064232; Mon, 16 May 2011 03:22:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105160322.p4G3MfM1064232@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 03:22:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221979 - projects/pseries/powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 03:22:41 -0000 Author: nwhitehorn Date: Mon May 16 03:22:41 2011 New Revision: 221979 URL: http://svn.freebsd.org/changeset/base/221979 Log: First draft of power hypervisor page replacement algorithm. Modified: projects/pseries/powerpc/pseries/mmu_phyp.c Modified: projects/pseries/powerpc/pseries/mmu_phyp.c ============================================================================== --- projects/pseries/powerpc/pseries/mmu_phyp.c Sun May 15 23:54:45 2011 (r221978) +++ projects/pseries/powerpc/pseries/mmu_phyp.c Mon May 16 03:22:41 2011 (r221979) @@ -218,11 +218,45 @@ mphyp_pte_change(mmu_t mmu, uintptr_t sl panic("mphyp_pte_change() insertion failure: %ld\n", result); } +static __inline int +mphyp_pte_spillable_ident(u_int ptegidx, struct lpte *to_evict) +{ + uint64_t slot, junk, k; + struct lpte pt; + int i, j; + + /* Start at a random slot */ + i = mftb() % 8; + k = -1; + for (j = 0; j < 8; j++) { + slot = (ptegidx << 3) + (i + j) % 8; + phyp_pft_hcall(H_READ, 0, slot, 0, 0, &pt.pte_hi, &pt.pte_lo, + &junk); + + if (pt.pte_hi & (LPTE_LOCKED | LPTE_WIRED)) + continue; + + /* This is a candidate, so remember it */ + k = slot; + + /* Try to get a page that has not been used lately */ + if (!(pt.pte_lo & LPTE_REF)) { + memcpy(to_evict, &pt, sizeof(struct lpte)); + return (k); + } + } + + phyp_pft_hcall(H_READ, 0, slot, 0, 0, &to_evict->pte_hi, + &to_evict->pte_lo, &junk); + return (k); +} + static int mphyp_pte_insert(mmu_t mmu, u_int ptegidx, struct lpte *pvo_pt) { int64_t result; struct lpte evicted; + struct pvo_entry *pvo; uint64_t index, junk; u_int pteg_bktidx; @@ -238,9 +272,12 @@ mphyp_pte_insert(mmu_t mmu, u_int ptegid pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); if (result == H_SUCCESS) return (index & 0x07); + KASSERT(result == H_PTEG_FULL, ("Page insertion error: %ld " + "(ptegidx: %#x/%#x, PTE %#lx/%#lx", result, ptegidx, + moea64_pteg_count, pvo_pt->pte_hi, pvo_pt->pte_lo)); /* - * First try primary hash. + * Next try secondary hash. */ pteg_bktidx ^= moea64_pteg_mask; pvo_pt->pte_hi |= LPTE_HID; @@ -248,8 +285,62 @@ mphyp_pte_insert(mmu_t mmu, u_int ptegid pvo_pt->pte_hi, pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); if (result == H_SUCCESS) return (index & 0x07); + KASSERT(result == H_PTEG_FULL, ("Secondary page insertion error: %ld", + result)); + + /* + * Out of luck. Find a PTE to sacrifice. + */ + pteg_bktidx = ptegidx; + index = mphyp_pte_spillable_ident(pteg_bktidx, &evicted); + if (index == -1L) { + pteg_bktidx ^= moea64_pteg_mask; + index = mphyp_pte_spillable_ident(pteg_bktidx, &evicted); + } + + if (index == -1L) { + /* No freeable slots in either PTEG? We're hosed. */ + panic("mphyp_pte_insert: overflow"); + return (-1); + } + + if (pteg_bktidx == ptegidx) + pvo_pt->pte_hi &= ~LPTE_HID; + else + pvo_pt->pte_hi |= LPTE_HID; + + /* + * Synchronize the sacrifice PTE with its PVO, then mark both + * invalid. The PVO will be reused when/if the VM system comes + * here after a fault. + */ + + if (evicted.pte_hi & LPTE_HID) + pteg_bktidx ^= moea64_pteg_mask; /* PTEs indexed by primary */ + + LIST_FOREACH(pvo, &moea64_pvo_table[pteg_bktidx], pvo_olink) { + if (pvo->pvo_pte.lpte.pte_hi == evicted.pte_hi) { + KASSERT(pvo->pvo_pte.lpte.pte_hi & LPTE_VALID, + ("Invalid PVO for valid PTE!")); + phyp_hcall(H_REMOVE, 0, index, 0); + PVO_PTEGIDX_CLR(pvo); + moea64_pte_overflow++; + break; + } + } + + KASSERT(pvo->pvo_pte.lpte.pte_hi == evicted.pte_hi, + ("Unable to find PVO for spilled PTE")); + + /* + * Set the new PTE. + */ + result = phyp_pft_hcall(H_ENTER, H_EXACT, index, pvo_pt->pte_hi, + pvo_pt->pte_lo, &index, &evicted.pte_lo, &junk); + if (result == H_SUCCESS) + return (index & 0x07); - panic("OVERFLOW (%ld)", result); + panic("Page replacement error: %ld", result); return (-1); } From owner-svn-src-projects@FreeBSD.ORG Mon May 16 03:23:50 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5F0561065670; Mon, 16 May 2011 03:23:50 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4EF418FC08; Mon, 16 May 2011 03:23:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4G3NoeF064303; Mon, 16 May 2011 03:23:50 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4G3NoGK064301; Mon, 16 May 2011 03:23:50 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105160323.p4G3NoGK064301@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 03:23:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221980 - projects/pseries/powerpc/powermac X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 03:23:50 -0000 Author: nwhitehorn Date: Mon May 16 03:23:50 2011 New Revision: 221980 URL: http://svn.freebsd.org/changeset/base/221980 Log: Now that we have platform_chrp, platform_powermac should specifically check for a PowerMac platform instead of generic OF. Modified: projects/pseries/powerpc/powermac/platform_powermac.c Modified: projects/pseries/powerpc/powermac/platform_powermac.c ============================================================================== --- projects/pseries/powerpc/powermac/platform_powermac.c Mon May 16 03:22:41 2011 (r221979) +++ projects/pseries/powerpc/powermac/platform_powermac.c Mon May 16 03:23:50 2011 (r221980) @@ -91,8 +91,22 @@ PLATFORM_DEF(powermac_platform); static int powermac_probe(platform_t plat) { - if (OF_finddevice("/memory") != -1 || OF_finddevice("/memory@0") != -1) - return (BUS_PROBE_GENERIC); + char compat[255]; + ssize_t compatlen; + char *curstr; + phandle_t root; + + root = OF_peer(0); + if (root == 0) + return (ENXIO); + + compatlen = OF_getprop(root, "compatible", compat, sizeof(compat)); + + for (curstr = compat; curstr < compat + compatlen; + curstr += strlen(curstr) + 1) { + if (strncmp(curstr, "MacRISC", 7) == 0) + return (BUS_PROBE_SPECIFIC); + } return (ENXIO); } From owner-svn-src-projects@FreeBSD.ORG Mon May 16 15:19:30 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B90D510656B7; Mon, 16 May 2011 15:19:30 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A86318FC14; Mon, 16 May 2011 15:19:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GFJUkh087762; Mon, 16 May 2011 15:19:30 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GFJUh7087760; Mon, 16 May 2011 15:19:30 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105161519.p4GFJUh7087760@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 15:19:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221987 - projects/pseries/powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 15:19:30 -0000 Author: nwhitehorn Date: Mon May 16 15:19:30 2011 New Revision: 221987 URL: http://svn.freebsd.org/changeset/base/221987 Log: Correct for some SLOF shenanigans. Modified: projects/pseries/powerpc/ofw/ofw_machdep.c Modified: projects/pseries/powerpc/ofw/ofw_machdep.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_machdep.c Mon May 16 13:12:09 2011 (r221986) +++ projects/pseries/powerpc/ofw/ofw_machdep.c Mon May 16 15:19:30 2011 (r221987) @@ -63,7 +63,6 @@ __FBSDID("$FreeBSD$"); #define OFMEM_REGIONS 32 static struct mem_region OFmem[OFMEM_REGIONS + 1], OFavail[OFMEM_REGIONS + 3]; static struct mem_region OFfree[OFMEM_REGIONS + 3]; -static int nOFmem; extern register_t ofmsr[5]; static int (*ofwcall)(void *); @@ -269,17 +268,28 @@ ofw_mem_regions(struct mem_region **memp phandle = OF_finddevice("/memory@0"); msz = parse_ofw_memory(phandle, "reg", OFmem); - nOFmem = msz / sizeof(struct mem_region); + msz /= sizeof(struct mem_region); asz = parse_ofw_memory(phandle, "available", OFavail); + asz /= sizeof(struct mem_region); *memp = OFmem; - *memsz = nOFmem; - + *memsz = msz; + + /* + * On some firmwares (SLOF), some memory may be marked available that + * doesn't actually exist. This manifests as an extension of the last + * available segment past the end of physical memory, so truncate that + * one. + */ + if (OFavail[asz - 1].mr_start + OFavail[asz - 1].mr_size > + OFmem[msz - 1].mr_start + OFmem[msz - 1].mr_size) + OFavail[asz - 1].mr_size = (OFmem[msz - 1].mr_start + + OFmem[msz - 1].mr_size) - OFavail[asz - 1].mr_start; + /* * OFavail may have overlapping regions - collapse these * and copy out remaining regions to OFfree */ - asz /= sizeof(struct mem_region); do { still_merging = FALSE; for (i = 0; i < asz; i++) { From owner-svn-src-projects@FreeBSD.ORG Mon May 16 15:23:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADF12106566B; Mon, 16 May 2011 15:23:18 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 999098FC13; Mon, 16 May 2011 15:23:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GFNIYt088019; Mon, 16 May 2011 15:23:18 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GFNIDH087989; Mon, 16 May 2011 15:23:18 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105161523.p4GFNIDH087989@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 15:23:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221989 - in projects/pseries: conf dev/ath dev/bge dev/glxiic dev/mk48txx dev/scc dev/uart fs/nfs fs/nfsclient geom/part i386/conf modules modules/glxiic nfs nfsclient powerpc/aim powe... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 15:23:18 -0000 Author: nwhitehorn Date: Mon May 16 15:23:17 2011 New Revision: 221989 URL: http://svn.freebsd.org/changeset/base/221989 Log: IFC @ 221988 Added: projects/pseries/dev/glxiic/ - copied from r221988, head/sys/dev/glxiic/ projects/pseries/modules/glxiic/ - copied from r221988, head/sys/modules/glxiic/ Modified: projects/pseries/conf/files.i386 projects/pseries/dev/ath/if_ath.c projects/pseries/dev/ath/if_ath_sysctl.c projects/pseries/dev/ath/if_athioctl.h projects/pseries/dev/bge/if_bge.c projects/pseries/dev/mk48txx/mk48txx.c projects/pseries/dev/mk48txx/mk48txxreg.h projects/pseries/dev/scc/scc_bfe_ebus.c projects/pseries/dev/uart/uart_cpu_sparc64.c projects/pseries/fs/nfs/nfs_commonkrpc.c projects/pseries/fs/nfs/nfs_commonport.c projects/pseries/fs/nfsclient/nfs_clkrpc.c projects/pseries/fs/nfsclient/nfs_clnfsiod.c projects/pseries/fs/nfsclient/nfs_clsubs.c projects/pseries/fs/nfsclient/nfs_clvfsops.c projects/pseries/fs/nfsclient/nfs_clvnops.c projects/pseries/geom/part/g_part.c projects/pseries/i386/conf/NOTES projects/pseries/modules/Makefile projects/pseries/nfs/nfs_common.c projects/pseries/nfsclient/nfs.h projects/pseries/nfsclient/nfs_krpc.c projects/pseries/nfsclient/nfs_nfsiod.c projects/pseries/nfsclient/nfs_subs.c projects/pseries/nfsclient/nfs_vfsops.c projects/pseries/nfsclient/nfs_vnops.c projects/pseries/powerpc/aim/mmu_oea64.c projects/pseries/powerpc/powerpc/platform.c projects/pseries/sparc64/sparc64/eeprom.c Directory Properties: projects/pseries/ (props changed) projects/pseries/amd64/include/xen/ (props changed) projects/pseries/boot/ (props changed) projects/pseries/boot/i386/efi/ (props changed) projects/pseries/boot/ia64/efi/ (props changed) projects/pseries/boot/ia64/ski/ (props changed) projects/pseries/boot/powerpc/boot1.chrp/ (props changed) projects/pseries/boot/powerpc/ofw/ (props changed) projects/pseries/cddl/contrib/opensolaris/ (props changed) projects/pseries/conf/ (props changed) projects/pseries/contrib/dev/acpica/ (props changed) projects/pseries/contrib/octeon-sdk/ (props changed) projects/pseries/contrib/pf/ (props changed) projects/pseries/contrib/x86emu/ (props changed) Modified: projects/pseries/conf/files.i386 ============================================================================== --- projects/pseries/conf/files.i386 Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/conf/files.i386 Mon May 16 15:23:17 2011 (r221989) @@ -171,6 +171,7 @@ dev/fdc/fdc_acpi.c optional fdc dev/fdc/fdc_isa.c optional fdc isa dev/fdc/fdc_pccard.c optional fdc pccard dev/fe/if_fe_isa.c optional fe isa +dev/glxiic/glxiic.c optional glxiic dev/glxsb/glxsb.c optional glxsb dev/glxsb/glxsb_hash.c optional glxsb dev/hptmv/entry.c optional hptmv Modified: projects/pseries/dev/ath/if_ath.c ============================================================================== --- projects/pseries/dev/ath/if_ath.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/ath/if_ath.c Mon May 16 15:23:17 2011 (r221989) @@ -3966,9 +3966,21 @@ ath_tx_processq(struct ath_softc *sc, st sc->sc_stats.ast_tx_fifoerr++; if (ts->ts_status & HAL_TXERR_FILT) sc->sc_stats.ast_tx_filtered++; + if (ts->ts_status & HAL_TXERR_XTXOP) + sc->sc_stats.ast_tx_xtxop++; + if (ts->ts_status & HAL_TXERR_TIMER_EXPIRED) + sc->sc_stats.ast_tx_timerexpired++; + + /* XXX HAL_TX_DATA_UNDERRUN */ + /* XXX HAL_TX_DELIM_UNDERRUN */ + if (bf->bf_m->m_flags & M_FF) sc->sc_stats.ast_ff_txerr++; } + /* XXX when is this valid? */ + if (ts->ts_status & HAL_TX_DESC_CFG_ERR) + sc->sc_stats.ast_tx_desccfgerr++; + sr = ts->ts_shortretry; lr = ts->ts_longretry; sc->sc_stats.ast_tx_shortretry += sr; Modified: projects/pseries/dev/ath/if_ath_sysctl.c ============================================================================== --- projects/pseries/dev/ath/if_ath_sysctl.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/ath/if_ath_sysctl.c Mon May 16 15:23:17 2011 (r221989) @@ -709,6 +709,12 @@ ath_sysctl_stats_attach(struct ath_softc &sc->sc_stats.ast_tx_timeout, 0, "TX Global Timeout"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_cst", CTLFLAG_RD, &sc->sc_stats.ast_tx_cst, 0, "TX Carrier Sense Timeout"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_xtxop", CTLFLAG_RD, + &sc->sc_stats.ast_tx_xtxop, 0, "TX exceeded TXOP"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_timerexpired", CTLFLAG_RD, + &sc->sc_stats.ast_tx_timerexpired, 0, "TX exceeded TX_TIMER register"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_desccfgerr", CTLFLAG_RD, + &sc->sc_stats.ast_tx_desccfgerr, 0, "TX Descriptor Cfg Error"); /* Attach the RX phy error array */ ath_sysctl_stats_attach_rxphyerr(sc, child); Modified: projects/pseries/dev/ath/if_athioctl.h ============================================================================== --- projects/pseries/dev/ath/if_athioctl.h Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/ath/if_athioctl.h Mon May 16 15:23:17 2011 (r221989) @@ -121,17 +121,20 @@ struct ath_stats { u_int32_t ast_be_missed; /* missed beacons */ u_int32_t ast_ani_cal; /* ANI calibrations performed */ u_int32_t ast_rx_agg; /* number of aggregate frames RX'ed */ - u_int32_t ast_rx_halfgi; - u_int32_t ast_rx_2040; - u_int32_t ast_rx_pre_crc_err; - u_int32_t ast_rx_post_crc_err; - u_int32_t ast_rx_decrypt_busy_err; + u_int32_t ast_rx_halfgi; /* RX half-GI */ + u_int32_t ast_rx_2040; /* RX 40mhz frame */ + u_int32_t ast_rx_pre_crc_err; /* RX pre-delimiter CRC error */ + u_int32_t ast_rx_post_crc_err; /* RX post-delimiter CRC error */ + u_int32_t ast_rx_decrypt_busy_err; /* RX decrypt engine busy error */ u_int32_t ast_rx_hi_rx_chain; u_int32_t ast_tx_htprotect; /* HT tx frames with protection */ - u_int32_t ast_rx_hitqueueend; + u_int32_t ast_rx_hitqueueend; /* RX hit descr queue end */ u_int32_t ast_tx_timeout; /* Global TX timeout */ u_int32_t ast_tx_cst; /* Carrier sense timeout */ - u_int32_t ast_pad[16]; + u_int32_t ast_tx_xtxop; /* tx exceeded TXOP */ + u_int32_t ast_tx_timerexpired; /* tx exceeded TX_TIMER */ + u_int32_t ast_tx_desccfgerr; /* tx desc cfg error */ + u_int32_t ast_pad[13]; }; #define SIOCGATHSTATS _IOWR('i', 137, struct ifreq) Modified: projects/pseries/dev/bge/if_bge.c ============================================================================== --- projects/pseries/dev/bge/if_bge.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/bge/if_bge.c Mon May 16 15:23:17 2011 (r221989) @@ -2836,7 +2836,7 @@ bge_attach(device_t dev) if (sc->bge_asicrev == BGE_ASICREV_BCM5719 && sc->bge_chipid == BGE_CHIPID_BCM5719_A0) { /* Jumbo frame on BCM5719 A0 does not work. */ - sc->bge_flags &= ~BGE_FLAG_JUMBO_FRAME; + sc->bge_flags &= ~BGE_FLAG_JUMBO; } break; case BGE_ASICREV_BCM5755: Modified: projects/pseries/dev/mk48txx/mk48txx.c ============================================================================== --- projects/pseries/dev/mk48txx/mk48txx.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/mk48txx/mk48txx.c Mon May 16 15:23:17 2011 (r221989) @@ -33,7 +33,8 @@ __FBSDID("$FreeBSD$"); /* - * Mostek MK48T02, MK48T08, MK48T18, MK48T59 time-of-day chip subroutines + * Mostek MK48T02, MK48T08, MK48T18, MK48T37 and MK48T59 time-of-day chip + * subroutines */ #include @@ -67,6 +68,7 @@ static const struct { { "mk48t02", MK48T02_CLKSZ, MK48T02_CLKOFF, 0 }, { "mk48t08", MK48T08_CLKSZ, MK48T08_CLKOFF, 0 }, { "mk48t18", MK48T18_CLKSZ, MK48T18_CLKOFF, 0 }, + { "mk48t37", MK48T37_CLKSZ, MK48T37_CLKOFF, MK48TXX_EXT_REGISTERS }, { "mk48t59", MK48T59_CLKSZ, MK48T59_CLKOFF, MK48TXX_EXT_REGISTERS }, }; Modified: projects/pseries/dev/mk48txx/mk48txxreg.h ============================================================================== --- projects/pseries/dev/mk48txx/mk48txxreg.h Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/mk48txx/mk48txxreg.h Mon May 16 15:23:17 2011 (r221989) @@ -152,5 +152,8 @@ #define MK48T18_CLKSZ 8192 #define MK48T18_CLKOFF 0x1ff0 +#define MK48T37_CLKSZ 32768 +#define MK48T37_CLKOFF 0x1ff0 + #define MK48T59_CLKSZ 8192 #define MK48T59_CLKOFF 0x1ff0 Modified: projects/pseries/dev/scc/scc_bfe_ebus.c ============================================================================== --- projects/pseries/dev/scc/scc_bfe_ebus.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/scc/scc_bfe_ebus.c Mon May 16 15:23:17 2011 (r221989) @@ -56,7 +56,8 @@ scc_ebus_probe(device_t dev) cmpt = ofw_bus_get_compat(dev); if (cmpt == NULL) cmpt = ""; - if (!strcmp(nm, "se") || !strcmp(cmpt, "sab82532")) { + if (!strcmp(nm, "se") || !strcmp(nm, "FJSV,se") || + !strcmp(cmpt, "sab82532")) { device_set_desc(dev, "Siemens SAB 82532 dual channel SCC"); sc->sc_class = &scc_sab82532_class; return (scc_bfe_probe(dev, EBUS_REGSHFT, EBUS_RCLK, 0)); Modified: projects/pseries/dev/uart/uart_cpu_sparc64.c ============================================================================== --- projects/pseries/dev/uart/uart_cpu_sparc64.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/dev/uart/uart_cpu_sparc64.c Mon May 16 15:23:17 2011 (r221989) @@ -238,7 +238,8 @@ uart_cpu_getdev(int devtype, struct uart di->bas.regshft = 0; di->bas.rclk = 0; class = NULL; - if (!strcmp(buf, "se") || !strcmp(compat, "sab82532")) { + if (!strcmp(buf, "se") || !strcmp(buf, "FJSV,se") || + !strcmp(compat, "sab82532")) { class = &uart_sab82532_class; /* SAB82532 are only known to be used for TTYs. */ if ((di->bas.chan = uart_cpu_channel(dev)) == 0) Modified: projects/pseries/fs/nfs/nfs_commonkrpc.c ============================================================================== --- projects/pseries/fs/nfs/nfs_commonkrpc.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfs/nfs_commonkrpc.c Mon May 16 15:23:17 2011 (r221989) @@ -78,17 +78,17 @@ static int nfs3_jukebox_delay = 10; static int nfs_skip_wcc_data_onerr = 1; static int nfs_keytab_enctype = ETYPE_DES_CBC_CRC; -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, "Buffer reservation size 2 < x < 64"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, "Number of times the nfs client has had to reconnect"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, "Number of seconds to delay a retry after receiving EJUKEBOX"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, "Disable weak cache consistency checking when server returns an error"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, keytab_enctype, CTLFLAG_RW, &nfs_keytab_enctype, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, keytab_enctype, CTLFLAG_RW, &nfs_keytab_enctype, 0, "Encryption type for the keytab entry used by nfs"); static void nfs_down(struct nfsmount *, struct thread *, const char *, Modified: projects/pseries/fs/nfs/nfs_commonport.c ============================================================================== --- projects/pseries/fs/nfs/nfs_commonport.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfs/nfs_commonport.c Mon May 16 15:23:17 2011 (r221989) @@ -69,14 +69,12 @@ void (*ncl_call_invalcaches)(struct vnod static int nfs_realign_test; static int nfs_realign_count; -SYSCTL_NODE(_vfs, OID_AUTO, newnfs, CTLFLAG_RW, 0, "New NFS filesystem"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, realign_test, CTLFLAG_RW, &nfs_realign_test, +SYSCTL_NODE(_vfs, OID_AUTO, nfs, CTLFLAG_RW, 0, "New NFS filesystem"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_test, CTLFLAG_RW, &nfs_realign_test, 0, "Number of realign tests done"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, realign_count, CTLFLAG_RW, &nfs_realign_count, +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_count, CTLFLAG_RW, &nfs_realign_count, 0, "Number of mbuf realignments done"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs4acl_enable, CTLFLAG_RW, &nfsrv_useacl, - 0, "Enable NFSv4 ACLs"); -SYSCTL_STRING(_vfs_newnfs, OID_AUTO, callback_addr, CTLFLAG_RW, +SYSCTL_STRING(_vfs_nfs, OID_AUTO, callback_addr, CTLFLAG_RW, nfsv4_callbackaddr, sizeof(nfsv4_callbackaddr), "NFSv4 callback addr for server to use"); Modified: projects/pseries/fs/nfsclient/nfs_clkrpc.c ============================================================================== --- projects/pseries/fs/nfsclient/nfs_clkrpc.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfsclient/nfs_clkrpc.c Mon May 16 15:23:17 2011 (r221989) @@ -46,8 +46,6 @@ __FBSDID("$FreeBSD$"); NFSDLOCKMUTEX; -SYSCTL_DECL(_vfs_newnfs); - SVCPOOL *nfscbd_pool; static int nfs_cbproc(struct nfsrv_descript *, u_int32_t); Modified: projects/pseries/fs/nfsclient/nfs_clnfsiod.c ============================================================================== --- projects/pseries/fs/nfsclient/nfs_clnfsiod.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfsclient/nfs_clnfsiod.c Mon May 16 15:23:17 2011 (r221989) @@ -80,11 +80,11 @@ static void nfssvc_iod(void *); static int nfs_asyncdaemon[NFS_MAXASYNCDAEMON]; -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); /* Maximum number of seconds a nfsiod kthread will sleep before exiting */ static unsigned int nfs_iodmaxidle = 120; -SYSCTL_UINT(_vfs_newnfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, +SYSCTL_UINT(_vfs_nfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, "Max number of seconds an nfsiod kthread will sleep before exiting"); /* Maximum number of nfsiod kthreads */ @@ -123,7 +123,7 @@ out: mtx_unlock(&ncl_iod_mutex); return (0); } -SYSCTL_PROC(_vfs_newnfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (nfs_iodmin), sysctl_iodmin, "IU", "Min number of nfsiod kthreads to keep as spares"); @@ -159,7 +159,7 @@ out: mtx_unlock(&ncl_iod_mutex); return (0); } -SYSCTL_PROC(_vfs_newnfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (ncl_iodmax), sysctl_iodmax, "IU", "Max number of nfsiod kthreads"); @@ -214,7 +214,7 @@ nfsiod_setup(void *dummy) { int error; - TUNABLE_INT_FETCH("vfs.newnfs.iodmin", &nfs_iodmin); + TUNABLE_INT_FETCH("vfs.nfs.iodmin", &nfs_iodmin); nfscl_init(); mtx_lock(&ncl_iod_mutex); /* Silently limit the start number of nfsiod's */ @@ -231,7 +231,7 @@ nfsiod_setup(void *dummy) SYSINIT(newnfsiod, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, nfsiod_setup, NULL); static int nfs_defect = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, "Allow nfsiods to migrate serving different mounts"); /* Modified: projects/pseries/fs/nfsclient/nfs_clsubs.c ============================================================================== --- projects/pseries/fs/nfsclient/nfs_clsubs.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfsclient/nfs_clsubs.c Mon May 16 15:23:17 2011 (r221989) @@ -174,9 +174,9 @@ ncl_printf(const char *fmt, ...) #ifdef NFS_ACDEBUG #include -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); static int nfs_acdebug; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, ""); +SYSCTL_INT(_vfs_nfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, ""); #endif /* Modified: projects/pseries/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/pseries/fs/nfsclient/nfs_clvfsops.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfsclient/nfs_clvfsops.c Mon May 16 15:23:17 2011 (r221989) @@ -83,18 +83,16 @@ extern struct nfsstats newnfsstats; MALLOC_DEFINE(M_NEWNFSREQ, "newnfsclient_req", "New NFS request header"); MALLOC_DEFINE(M_NEWNFSMNT, "newnfsmnt", "New NFS mount struct"); -SYSCTL_DECL(_vfs_newnfs); -SYSCTL_STRUCT(_vfs_newnfs, NFS_NFSSTATS, nfsstats, CTLFLAG_RW, - &newnfsstats, nfsstats, "S,nfsstats"); +SYSCTL_DECL(_vfs_nfs); static int nfs_ip_paranoia = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, &nfs_ip_paranoia, 0, ""); static int nfs_tprintf_initial_delay = NFS_TPRINTF_INITIAL_DELAY; -SYSCTL_INT(_vfs_newnfs, NFS_TPRINTF_INITIAL_DELAY, +SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_INITIAL_DELAY, downdelayinitial, CTLFLAG_RW, &nfs_tprintf_initial_delay, 0, ""); /* how long between console messages "nfs server foo not responding" */ static int nfs_tprintf_delay = NFS_TPRINTF_DELAY; -SYSCTL_INT(_vfs_newnfs, NFS_TPRINTF_DELAY, +SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_DELAY, downdelayinterval, CTLFLAG_RW, &nfs_tprintf_delay, 0, ""); static int nfs_mountroot(struct mount *); @@ -152,14 +150,14 @@ struct nfsv3_diskless nfsv3_diskless = { int nfs_diskless_valid = 0; #endif -SYSCTL_INT(_vfs_newnfs, OID_AUTO, diskless_valid, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, diskless_valid, CTLFLAG_RD, &nfs_diskless_valid, 0, "Has the diskless struct been filled correctly"); -SYSCTL_STRING(_vfs_newnfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, +SYSCTL_STRING(_vfs_nfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, nfsv3_diskless.root_hostnam, 0, "Path to nfs root"); -SYSCTL_OPAQUE(_vfs_newnfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, +SYSCTL_OPAQUE(_vfs_nfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, &nfsv3_diskless.root_saddr, sizeof(nfsv3_diskless.root_saddr), "%Ssockaddr_in", "Diskless root nfs address"); Modified: projects/pseries/fs/nfsclient/nfs_clvnops.c ============================================================================== --- projects/pseries/fs/nfsclient/nfs_clvnops.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/fs/nfsclient/nfs_clvnops.c Mon May 16 15:23:17 2011 (r221989) @@ -199,27 +199,27 @@ static int nfs_renameit(struct vnode *sd */ #define DIRHDSIZ (sizeof (struct dirent) - (MAXNAMLEN + 1)) -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); static int nfsaccess_cache_timeout = NFS_MAXATTRTIMO; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, &nfsaccess_cache_timeout, 0, "NFS ACCESS cache timeout"); static int nfs_prime_access_cache = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, &nfs_prime_access_cache, 0, "Prime NFS ACCESS cache when fetching attributes"); static int newnfs_commit_on_close = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, commit_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_on_close, CTLFLAG_RW, &newnfs_commit_on_close, 0, "write+commit on close, else only write"); static int nfs_clean_pages_on_close = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, &nfs_clean_pages_on_close, 0, "NFS clean dirty pages on close"); int newnfs_directio_enable = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, &newnfs_directio_enable, 0, "Enable NFS directio"); /* @@ -234,14 +234,14 @@ SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_di * meaningful. */ int newnfs_directio_allow_mmap = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, &newnfs_directio_allow_mmap, 0, "Enable mmaped IO on file with O_DIRECT opens"); #if 0 -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, &newnfsstats.accesscache_hits, 0, "NFS ACCESS cache hit count"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, &newnfsstats.accesscache_misses, 0, "NFS ACCESS cache miss count"); #endif Modified: projects/pseries/geom/part/g_part.c ============================================================================== --- projects/pseries/geom/part/g_part.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/geom/part/g_part.c Mon May 16 15:23:17 2011 (r221989) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -104,6 +105,13 @@ struct g_part_alias_list { { "netbsd-swap", G_PART_ALIAS_NETBSD_SWAP }, }; +SYSCTL_DECL(_kern_geom); +SYSCTL_NODE(_kern_geom, OID_AUTO, part, CTLFLAG_RW, 0, "GEOM_PART stuff"); +static u_int check_integrity = 1; +TUNABLE_INT("kern.geom.part.check_integrity", &check_integrity); +SYSCTL_UINT(_kern_geom_part, OID_AUTO, check_integrity, CTLFLAG_RW, + &check_integrity, 1, "Enable integrity checking"); + /* * The GEOM partitioning class. */ @@ -237,6 +245,7 @@ g_part_check_integrity(struct g_part_tab struct g_part_entry *e1, *e2; struct g_provider *pp; + e1 = e2 = NULL; pp = cp->provider; if (table->gpt_first > table->gpt_last || table->gpt_last > pp->mediasize / pp->sectorsize - 1) @@ -267,9 +276,31 @@ g_part_check_integrity(struct g_part_tab } return (0); fail: - if (bootverbose) - printf("GEOM_PART: integrity check failed (%s, %s)\n", - pp->name, table->gpt_scheme->name); + printf("GEOM_PART: integrity check failed (%s, %s)\n", pp->name, + table->gpt_scheme->name); + if (bootverbose) { + if (e1 == NULL) + printf("GEOM_PART: invalid geom configuration:\n"); + else if (e2 == NULL) + printf("GEOM_PART: invalid partition entry:\n"); + else + printf("GEOM_PART: overlapped partition entries:\n"); + if (e1 != NULL) + printf("GEOM_PART: index: %d, start: %jd, end: %jd\n", + e1->gpe_index, + (intmax_t)e1->gpe_start, (intmax_t)e1->gpe_end); + if (e2 != NULL) + printf("GEOM_PART: index: %d, start: %jd, end: %jd\n", + e2->gpe_index, + (intmax_t)e2->gpe_start, (intmax_t)e2->gpe_end); + printf("GEOM_PART: first: %jd, last: %jd, sectors: %jd\n", + (intmax_t)table->gpt_first, (intmax_t)table->gpt_last, + (intmax_t)pp->mediasize / pp->sectorsize - 1); + } + if (check_integrity == 0) { + table->gpt_corrupt = 1; + return (0); + } return (EINVAL); } Modified: projects/pseries/i386/conf/NOTES ============================================================================== --- projects/pseries/i386/conf/NOTES Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/i386/conf/NOTES Mon May 16 15:23:17 2011 (r221989) @@ -731,6 +731,12 @@ options SAFE_DEBUG # enable debugging s options SAFE_RNDTEST # enable rndtest support # +# glxiic is an I2C driver for the AMD Geode LX CS5536 System Management Bus +# controller. Requires 'device iicbus'. +# +device glxiic # AMD Geode LX CS5536 System Management Bus + +# # glxsb is a driver for the Security Block in AMD Geode LX processors. # Requires 'device crypto'. # Modified: projects/pseries/modules/Makefile ============================================================================== --- projects/pseries/modules/Makefile Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/modules/Makefile Mon May 16 15:23:17 2011 (r221989) @@ -102,6 +102,7 @@ SUBDIR= ${_3dfx} \ fxp \ gem \ geom \ + ${_glxiic} \ ${_glxsb} \ hatm \ hifn \ @@ -419,6 +420,7 @@ _et= et _exca= exca _ext2fs= ext2fs _fe= fe +_glxiic= glxiic _glxsb= glxsb _i2c= i2c _ibcs2= ibcs2 Modified: projects/pseries/nfs/nfs_common.c ============================================================================== --- projects/pseries/nfs/nfs_common.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfs/nfs_common.c Mon May 16 15:23:17 2011 (r221989) @@ -361,7 +361,7 @@ nfsm_adv_xx(int s, struct mbuf **md, cad * * We would prefer to avoid this situation entirely. The situation does not * occur with NFS/UDP and is supposed to only occassionally occur with TCP. - * Use vfs.nfs.realign_count and realign_test to check this. + * Use vfs.nfs_common.realign_count and realign_test to check this. */ int nfs_realign(struct mbuf **pm, int how) Modified: projects/pseries/nfsclient/nfs.h ============================================================================== --- projects/pseries/nfsclient/nfs.h Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs.h Mon May 16 15:23:17 2011 (r221989) @@ -107,7 +107,7 @@ #endif /* - * vfs.nfs sysctl(3) identifiers + * vfs.oldnfs sysctl(3) identifiers */ #define NFS_NFSSTATS 1 /* struct: struct nfsstats */ Modified: projects/pseries/nfsclient/nfs_krpc.c ============================================================================== --- projects/pseries/nfsclient/nfs_krpc.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs_krpc.c Mon May 16 15:23:17 2011 (r221989) @@ -93,16 +93,16 @@ static int nfs3_jukebox_delay = 10; static int nfs_skip_wcc_data_onerr = 1; static int fake_wchan; -SYSCTL_DECL(_vfs_nfs); +SYSCTL_DECL(_vfs_oldnfs); -SYSCTL_INT(_vfs_nfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, "Buffer reservation size 2 < x < 64"); -SYSCTL_INT(_vfs_nfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, "Number of times the nfs client has had to reconnect"); -SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, "Number of seconds to delay a retry after receiving EJUKEBOX"); -SYSCTL_INT(_vfs_nfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, "Disable weak cache consistency checking when server returns an error"); Modified: projects/pseries/nfsclient/nfs_nfsiod.c ============================================================================== --- projects/pseries/nfsclient/nfs_nfsiod.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs_nfsiod.c Mon May 16 15:23:17 2011 (r221989) @@ -78,11 +78,11 @@ static void nfssvc_iod(void *); static int nfs_asyncdaemon[NFS_MAXASYNCDAEMON]; -SYSCTL_DECL(_vfs_nfs); +SYSCTL_DECL(_vfs_oldnfs); /* Maximum number of seconds a nfsiod kthread will sleep before exiting */ static unsigned int nfs_iodmaxidle = 120; -SYSCTL_UINT(_vfs_nfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, +SYSCTL_UINT(_vfs_oldnfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, "Max number of seconds an nfsiod kthread will sleep before exiting"); /* Maximum number of nfsiod kthreads */ @@ -121,7 +121,7 @@ out: mtx_unlock(&nfs_iod_mtx); return (0); } -SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_oldnfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (nfs_iodmin), sysctl_iodmin, "IU", "Min number of nfsiod kthreads to keep as spares"); @@ -158,7 +158,7 @@ out: mtx_unlock(&nfs_iod_mtx); return (0); } -SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_oldnfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (nfs_iodmax), sysctl_iodmax, "IU", "Max number of nfsiod kthreads"); @@ -213,7 +213,7 @@ nfsiod_setup(void *dummy) { int error; - TUNABLE_INT_FETCH("vfs.nfs.iodmin", &nfs_iodmin); + TUNABLE_INT_FETCH("vfs.oldnfs.iodmin", &nfs_iodmin); mtx_lock(&nfs_iod_mtx); /* Silently limit the start number of nfsiod's */ if (nfs_iodmin > NFS_MAXASYNCDAEMON) @@ -229,7 +229,7 @@ nfsiod_setup(void *dummy) SYSINIT(nfsiod, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, nfsiod_setup, NULL); static int nfs_defect = 0; -SYSCTL_INT(_vfs_nfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, "Allow nfsiods to migrate serving different mounts"); /* Modified: projects/pseries/nfsclient/nfs_subs.c ============================================================================== --- projects/pseries/nfsclient/nfs_subs.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs_subs.c Mon May 16 15:23:17 2011 (r221989) @@ -653,9 +653,9 @@ out: #ifdef NFS_ACDEBUG #include -SYSCTL_DECL(_vfs_nfs); +SYSCTL_DECL(_vfs_oldnfs); static int nfs_acdebug; -SYSCTL_INT(_vfs_nfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, "Toggle acdebug (attribute cache debug) flag"); #endif Modified: projects/pseries/nfsclient/nfs_vfsops.c ============================================================================== --- projects/pseries/nfsclient/nfs_vfsops.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs_vfsops.c Mon May 16 15:23:17 2011 (r221989) @@ -90,25 +90,25 @@ uma_zone_t nfsmount_zone; struct nfsstats nfsstats; -SYSCTL_NODE(_vfs, OID_AUTO, nfs, CTLFLAG_RW, 0, "NFS filesystem"); -SYSCTL_STRUCT(_vfs_nfs, NFS_NFSSTATS, nfsstats, CTLFLAG_RW, +SYSCTL_NODE(_vfs, OID_AUTO, oldnfs, CTLFLAG_RW, 0, "Old NFS filesystem"); +SYSCTL_STRUCT(_vfs_oldnfs, NFS_NFSSTATS, nfsstats, CTLFLAG_RW, &nfsstats, nfsstats, "S,nfsstats"); static int nfs_ip_paranoia = 1; -SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, &nfs_ip_paranoia, 0, "Disallow accepting replies from IPs which differ from those sent"); #ifdef NFS_DEBUG int nfs_debug; -SYSCTL_INT(_vfs_nfs, OID_AUTO, debug, CTLFLAG_RW, &nfs_debug, 0, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, debug, CTLFLAG_RW, &nfs_debug, 0, "Toggle debug flag"); #endif static int nfs_tprintf_initial_delay = NFS_TPRINTF_INITIAL_DELAY; -SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_INITIAL_DELAY, +SYSCTL_INT(_vfs_oldnfs, NFS_TPRINTF_INITIAL_DELAY, downdelayinitial, CTLFLAG_RW, &nfs_tprintf_initial_delay, 0, "Delay before printing \"nfs server not responding\" messages"); /* how long between console messages "nfs server foo not responding" */ static int nfs_tprintf_delay = NFS_TPRINTF_DELAY; -SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_DELAY, +SYSCTL_INT(_vfs_oldnfs, NFS_TPRINTF_DELAY, downdelayinterval, CTLFLAG_RW, &nfs_tprintf_delay, 0, "Delay between printing \"nfs server not responding\" messages"); @@ -176,14 +176,14 @@ struct nfsv3_diskless nfsv3_diskless = { int nfs_diskless_valid = 0; #endif -SYSCTL_INT(_vfs_nfs, OID_AUTO, diskless_valid, CTLFLAG_RD, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, diskless_valid, CTLFLAG_RD, &nfs_diskless_valid, 0, "Has the diskless struct been filled correctly"); -SYSCTL_STRING(_vfs_nfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, +SYSCTL_STRING(_vfs_oldnfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, nfsv3_diskless.root_hostnam, 0, "Path to nfs root"); -SYSCTL_OPAQUE(_vfs_nfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, +SYSCTL_OPAQUE(_vfs_oldnfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, &nfsv3_diskless.root_saddr, sizeof nfsv3_diskless.root_saddr, "%Ssockaddr_in", "Diskless root nfs address"); Modified: projects/pseries/nfsclient/nfs_vnops.c ============================================================================== --- projects/pseries/nfsclient/nfs_vnops.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/nfsclient/nfs_vnops.c Mon May 16 15:23:17 2011 (r221989) @@ -217,27 +217,27 @@ struct nfsmount *nfs_iodmount[NFS_MAXASY int nfs_numasync = 0; #define DIRHDSIZ (sizeof (struct dirent) - (MAXNAMLEN + 1)) -SYSCTL_DECL(_vfs_nfs); +SYSCTL_DECL(_vfs_oldnfs); static int nfsaccess_cache_timeout = NFS_MAXATTRTIMO; -SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, &nfsaccess_cache_timeout, 0, "NFS ACCESS cache timeout"); static int nfs_prime_access_cache = 0; -SYSCTL_INT(_vfs_nfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, &nfs_prime_access_cache, 0, "Prime NFS ACCESS cache when fetching attributes"); static int nfsv3_commit_on_close = 0; -SYSCTL_INT(_vfs_nfs, OID_AUTO, nfsv3_commit_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, nfsv3_commit_on_close, CTLFLAG_RW, &nfsv3_commit_on_close, 0, "write+commit on close, else only write"); static int nfs_clean_pages_on_close = 1; -SYSCTL_INT(_vfs_nfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, &nfs_clean_pages_on_close, 0, "NFS clean dirty pages on close"); int nfs_directio_enable = 0; -SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, &nfs_directio_enable, 0, "Enable NFS directio"); /* @@ -252,14 +252,14 @@ SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_direc * meaningful. */ int nfs_directio_allow_mmap = 1; -SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, &nfs_directio_allow_mmap, 0, "Enable mmaped IO on file with O_DIRECT opens"); #if 0 -SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, &nfsstats.accesscache_hits, 0, "NFS ACCESS cache hit count"); -SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, +SYSCTL_INT(_vfs_oldnfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, &nfsstats.accesscache_misses, 0, "NFS ACCESS cache miss count"); #endif Modified: projects/pseries/powerpc/aim/mmu_oea64.c ============================================================================== --- projects/pseries/powerpc/aim/mmu_oea64.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/powerpc/aim/mmu_oea64.c Mon May 16 15:23:17 2011 (r221989) @@ -1141,8 +1141,6 @@ moea64_zero_page_area(mmu_t mmu, vm_page { vm_offset_t pa = VM_PAGE_TO_PHYS(m); - if (!moea64_initialized) - panic("moea64_zero_page: can't zero pa %#" PRIxPTR, pa); if (size + off > PAGE_SIZE) panic("moea64_zero_page: size + off > PAGE_SIZE"); @@ -1165,9 +1163,6 @@ moea64_zero_page(mmu_t mmu, vm_page_t m) vm_offset_t pa = VM_PAGE_TO_PHYS(m); vm_offset_t va, off; - if (!moea64_initialized) - panic("moea64_zero_page: can't zero pa %#zx", pa); - if (!hw_direct_map) { mtx_lock(&moea64_scratchpage_mtx); Modified: projects/pseries/powerpc/powerpc/platform.c ============================================================================== --- projects/pseries/powerpc/powerpc/platform.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/powerpc/powerpc/platform.c Mon May 16 15:23:17 2011 (r221989) @@ -93,7 +93,7 @@ mem_valid(vm_offset_t addr, int len) for (i = 0; i < npregions; i++) if ((addr >= pregions[i].mr_start) - && (addr + len < pregions[i].mr_start + pregions[i].mr_size)) + && (addr + len <= pregions[i].mr_start + pregions[i].mr_size)) return (0); return (EFAULT); Modified: projects/pseries/sparc64/sparc64/eeprom.c ============================================================================== --- projects/pseries/sparc64/sparc64/eeprom.c Mon May 16 15:20:54 2011 (r221988) +++ projects/pseries/sparc64/sparc64/eeprom.c Mon May 16 15:23:17 2011 (r221989) @@ -107,8 +107,11 @@ DRIVER_MODULE(eeprom, sbus, eeprom_drive static int eeprom_probe(device_t dev) { + const char *name; - if (strcmp("eeprom", ofw_bus_get_name(dev)) == 0) { + name = ofw_bus_get_name(dev); + if (strcmp(name, "eeprom") == 0 || + strcmp(name, "FJSV,eeprom") == 0) { device_set_desc(dev, "EEPROM/clock"); return (0); } From owner-svn-src-projects@FreeBSD.ORG Mon May 16 16:19:53 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4BB3106564A; Mon, 16 May 2011 16:19:53 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A9E648FC18; Mon, 16 May 2011 16:19:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GGJrej089926; Mon, 16 May 2011 16:19:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GGJrgp089924; Mon, 16 May 2011 16:19:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105161619.p4GGJrgp089924@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 16:19:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221994 - projects/pseries/powerpc/aim X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 16:19:53 -0000 Author: nwhitehorn Date: Mon May 16 16:19:53 2011 New Revision: 221994 URL: http://svn.freebsd.org/changeset/base/221994 Log: Keep track of useful information like where preloaded metadata and modules are. On some firmwares (SLOF) OF_claim() does not reduce the size of the available array, meaning that these data (a) can be overwritten and (b) are not mapped into the kernel's address space except by accident in the direct-mapped case. loader provides the kernel with the end of the metadata + modules, mapped immediately after the kernel, so just replace endkernel by loader's KERNEND variable, if available. The kernel now boots on emulated POWER7 hardware to probing the device tree (where it stops due to lack of drivers) without any hacks. Note: this patch also affects PS3, and should be merged to HEAD after some more testing. Modified: projects/pseries/powerpc/aim/machdep.c Modified: projects/pseries/powerpc/aim/machdep.c ============================================================================== --- projects/pseries/powerpc/aim/machdep.c Mon May 16 16:18:40 2011 (r221993) +++ projects/pseries/powerpc/aim/machdep.c Mon May 16 16:19:53 2011 (r221994) @@ -251,7 +251,6 @@ powerpc_init(vm_offset_t startkernel, vm vm_offset_t basekernel, void *mdp) { struct pcpu *pc; - vm_offset_t end; void *generictrap; size_t trap_offset; void *kmdp; @@ -263,7 +262,6 @@ powerpc_init(vm_offset_t startkernel, vm int ppc64; #endif - end = 0; kmdp = NULL; trap_offset = 0; cacheline_warn = 0; @@ -279,7 +277,8 @@ powerpc_init(vm_offset_t startkernel, vm if (kmdp != NULL) { boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - end = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); + endkernel = ulmax(endkernel, MD_FETCH(kmdp, + MODINFOMD_KERNEND, vm_offset_t)); #ifdef DDB ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t); ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t); From owner-svn-src-projects@FreeBSD.ORG Mon May 16 16:20:55 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F553106564A; Mon, 16 May 2011 16:20:55 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 14AB78FC0A; Mon, 16 May 2011 16:20:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GGKsxt089997; Mon, 16 May 2011 16:20:54 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GGKsC2089994; Mon, 16 May 2011 16:20:54 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105161620.p4GGKsC2089994@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 16:20:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221995 - projects/pseries/powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 16:20:55 -0000 Author: nwhitehorn Date: Mon May 16 16:20:54 2011 New Revision: 221995 URL: http://svn.freebsd.org/changeset/base/221995 Log: Remove some printfs now that this all works reliably. Modified: projects/pseries/powerpc/pseries/mmu_phyp.c projects/pseries/powerpc/pseries/platform_chrp.c Modified: projects/pseries/powerpc/pseries/mmu_phyp.c ============================================================================== --- projects/pseries/powerpc/pseries/mmu_phyp.c Mon May 16 16:19:53 2011 (r221994) +++ projects/pseries/powerpc/pseries/mmu_phyp.c Mon May 16 16:20:54 2011 (r221995) @@ -100,10 +100,7 @@ mphyp_bootstrap(mmu_t mmup, vm_offset_t phandle_t dev, node, root; int res; - printf("%s: %d\n", __FILE__, __LINE__); - moea64_early_bootstrap(mmup, kernelstart, kernelend); - printf("%s: %d\n", __FILE__, __LINE__); root = OF_peer(0); @@ -128,15 +125,10 @@ mphyp_bootstrap(mmu_t mmup, vm_offset_t if (prop != NULL) final_pteg_count = 1 << prop[1]; - printf("final_pteg_count: %#x\n", (u_int)final_pteg_count); - moea64_pteg_count = final_pteg_count / sizeof(struct lpteg); - printf("%s: %d\n", __FILE__, __LINE__); moea64_mid_bootstrap(mmup, kernelstart, kernelend); - printf("%s: %d\n", __FILE__, __LINE__); moea64_late_bootstrap(mmup, kernelstart, kernelend); - printf("%s: %d\n", __FILE__, __LINE__); } static void @@ -150,10 +142,8 @@ mphyp_cpu_bootstrap(mmu_t mmup, int ap) * Install kernel SLB entries */ - printf("%s: %d\n", __FILE__, __LINE__); __asm __volatile ("slbia"); __asm __volatile ("slbmfee %0,%1; slbie %0;" : "=r"(seg0) : "r"(0)); - printf("%s: %d\n", __FILE__, __LINE__); for (i = 0; i < 64; i++) { if (!(slb[i].slbe & SLBE_VALID)) continue; @@ -161,7 +151,6 @@ mphyp_cpu_bootstrap(mmu_t mmup, int ap) __asm __volatile ("slbmte %0, %1" :: "r"(slb[i].slbv), "r"(slb[i].slbe)); } - printf("%s: %d\n", __FILE__, __LINE__); } static void Modified: projects/pseries/powerpc/pseries/platform_chrp.c ============================================================================== --- projects/pseries/powerpc/pseries/platform_chrp.c Mon May 16 16:19:53 2011 (r221994) +++ projects/pseries/powerpc/pseries/platform_chrp.c Mon May 16 16:20:54 2011 (r221995) @@ -102,7 +102,6 @@ chrp_probe(platform_t plat) static int chrp_attach(platform_t plat) { -printf("Attaching CHRP\n"); #ifdef __powerpc64__ /* XXX: check for /rtas/ibm,hypertas-functions? */ if (!(mfmsr() & PSL_HV)) From owner-svn-src-projects@FreeBSD.ORG Mon May 16 16:34:03 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B92F0106564A; Mon, 16 May 2011 16:34:03 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A52C48FC1C; Mon, 16 May 2011 16:34:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GGY3Me090442; Mon, 16 May 2011 16:34:03 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GGY31X090420; Mon, 16 May 2011 16:34:03 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105161634.p4GGY31X090420@svn.freebsd.org> From: Attilio Rao Date: Mon, 16 May 2011 16:34:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221996 - in projects/largeSMP: bin/sh contrib/top sbin/geom/class/part share/mk sys/cddl/dev/cyclic sys/cddl/dev/cyclic/i386 sys/dev/ath sys/dev/bge sys/dev/glxiic sys/fs/nfs sys/fs/nf... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 16:34:03 -0000 Author: attilio Date: Mon May 16 16:34:03 2011 New Revision: 221996 URL: http://svn.freebsd.org/changeset/base/221996 Log: MFC Modified: projects/largeSMP/bin/sh/eval.c projects/largeSMP/bin/sh/miscbltin.c projects/largeSMP/bin/sh/var.c projects/largeSMP/sbin/geom/class/part/geom_part.c projects/largeSMP/sys/cddl/dev/cyclic/cyclic.c projects/largeSMP/sys/cddl/dev/cyclic/i386/cyclic_machdep.c projects/largeSMP/sys/dev/ath/if_ath.c projects/largeSMP/sys/dev/ath/if_ath_sysctl.c projects/largeSMP/sys/dev/ath/if_athioctl.h projects/largeSMP/sys/dev/bge/if_bge.c projects/largeSMP/sys/dev/glxiic/glxiic.c projects/largeSMP/sys/fs/nfs/nfs_commonkrpc.c projects/largeSMP/sys/fs/nfs/nfs_commonport.c projects/largeSMP/sys/fs/nfsclient/nfs_clkrpc.c projects/largeSMP/sys/fs/nfsclient/nfs_clnfsiod.c projects/largeSMP/sys/fs/nfsclient/nfs_clsubs.c projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c projects/largeSMP/sys/fs/nfsclient/nfs_clvnops.c projects/largeSMP/sys/geom/part/g_part.c projects/largeSMP/sys/kern/kern_clocksource.c projects/largeSMP/sys/kern/subr_sbuf.c projects/largeSMP/sys/nfs/nfs_common.c projects/largeSMP/sys/nfsclient/nfs.h projects/largeSMP/sys/nfsclient/nfs_krpc.c projects/largeSMP/sys/nfsclient/nfs_nfsiod.c projects/largeSMP/sys/nfsclient/nfs_subs.c projects/largeSMP/sys/nfsclient/nfs_vfsops.c projects/largeSMP/sys/nfsclient/nfs_vnops.c projects/largeSMP/sys/powerpc/aim/mmu_oea64.c projects/largeSMP/sys/powerpc/powerpc/platform.c projects/largeSMP/sys/sys/dtrace_bsd.h projects/largeSMP/sys/sys/sbuf.h projects/largeSMP/usr.bin/nfsstat/nfsstat.c projects/largeSMP/usr.sbin/nfsd/nfsv4.4 Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/bin/sh/eval.c ============================================================================== --- projects/largeSMP/bin/sh/eval.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/bin/sh/eval.c Mon May 16 16:34:03 2011 (r221996) @@ -552,7 +552,8 @@ evalpipe(union node *n) if (prevfd >= 0) close(prevfd); prevfd = pip[0]; - close(pip[1]); + if (pip[1] != -1) + close(pip[1]); } INTON; if (n->npipe.backgnd == 0) { Modified: projects/largeSMP/bin/sh/miscbltin.c ============================================================================== --- projects/largeSMP/bin/sh/miscbltin.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/bin/sh/miscbltin.c Mon May 16 16:34:03 2011 (r221996) @@ -465,7 +465,7 @@ ulimitcmd(int argc __unused, char **argv "(-%c) ", l->option); out1fmt("%-18s %18s ", l->name, optbuf); if (val == RLIM_INFINITY) - out1fmt("unlimited\n"); + out1str("unlimited\n"); else { val /= l->factor; @@ -491,7 +491,7 @@ ulimitcmd(int argc __unused, char **argv val = limit.rlim_max; if (val == RLIM_INFINITY) - out1fmt("unlimited\n"); + out1str("unlimited\n"); else { val /= l->factor; Modified: projects/largeSMP/bin/sh/var.c ============================================================================== --- projects/largeSMP/bin/sh/var.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/bin/sh/var.c Mon May 16 16:34:03 2011 (r221996) @@ -681,14 +681,13 @@ exportcmd(int argc, char **argv) out1str(cmdname); out1c(' '); } - p = strchr(vp->text, '='); if (values && !(vp->flags & VUNSET)) { - p++; - outbin(vp->text, p - vp->text, - out1); - out1qstr(p); + outbin(vp->text, + vp->name_len + 1, out1); + out1qstr(vp->text + + vp->name_len + 1); } else - outbin(vp->text, p - vp->text, + outbin(vp->text, vp->name_len, out1); out1c('\n'); } Modified: projects/largeSMP/sbin/geom/class/part/geom_part.c ============================================================================== --- projects/largeSMP/sbin/geom/class/part/geom_part.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sbin/geom/class/part/geom_part.c Mon May 16 16:34:03 2011 (r221996) @@ -416,7 +416,7 @@ gpart_autofill(struct gctl_req *req) struct gprovider *pp; off_t first, last, a_first; off_t size, start, a_lba; - off_t lba, len, alignment; + off_t lba, len, alignment, offset; uintmax_t grade; const char *s; int error, has_size, has_start, has_alignment; @@ -467,8 +467,6 @@ gpart_autofill(struct gctl_req *req) error = g_parse_lba(s, pp->lg_sectorsize, &size); if (error) errc(EXIT_FAILURE, error, "Invalid size param"); - if (size > alignment) - size = ALIGNDOWN(size, alignment); } s = gctl_get_ascii(req, "start"); @@ -478,22 +476,29 @@ gpart_autofill(struct gctl_req *req) error = g_parse_lba(s, pp->lg_sectorsize, &start); if (error) errc(EXIT_FAILURE, error, "Invalid start param"); - start = ALIGNUP(start, alignment); } /* No autofill necessary. */ if (has_size && has_start && !has_alignment) goto done; + /* Adjust parameters to offset value for better alignment */ + s = find_provcfg(pp, "offset"); + offset = (s == NULL) ? 0: + (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; + start = ALIGNUP(start + offset, alignment); + if (size + offset > alignment) + size = ALIGNDOWN(size + offset, alignment); + first = (off_t)strtoimax(find_geomcfg(gp, "first"), NULL, 0); last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); grade = ~0ULL; - a_first = ALIGNUP(first, alignment); - last = ALIGNDOWN(last, alignment); + a_first = ALIGNUP(first + offset, alignment); + last = ALIGNDOWN(last + offset, alignment); while ((pp = find_provider(gp, first)) != NULL) { s = find_provcfg(pp, "start"); lba = (off_t)strtoimax(s, NULL, 0); - a_lba = ALIGNDOWN(lba, alignment); + a_lba = ALIGNDOWN(lba + offset, alignment); if (first < a_lba && a_first < a_lba) { /* Free space [first, lba> */ len = a_lba - a_first; @@ -519,7 +524,7 @@ gpart_autofill(struct gctl_req *req) s = find_provcfg(pp, "end"); first = (off_t)strtoimax(s, NULL, 0) + 1; - a_first = ALIGNUP(first, alignment); + a_first = ALIGNUP(first + offset, alignment); } if (a_first <= last) { /* Free space [first-last] */ @@ -543,12 +548,11 @@ gpart_autofill(struct gctl_req *req) } } } - if (grade == ~0ULL) { geom_deletetree(&mesh); return (ENOSPC); } - + start -= offset; /* Return back to real offset */ done: snprintf(ssize, sizeof(ssize), "%jd", (intmax_t)size); gctl_change_param(req, "size", -1, ssize); Modified: projects/largeSMP/sys/cddl/dev/cyclic/cyclic.c ============================================================================== --- projects/largeSMP/sys/cddl/dev/cyclic/cyclic.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/cddl/dev/cyclic/cyclic.c Mon May 16 16:34:03 2011 (r221996) @@ -341,6 +341,16 @@ static cyc_backend_t cyclic_backend; MALLOC_DEFINE(M_CYCLIC, "cyclic", "Cyclic timer subsystem"); +static __inline hrtime_t +cyc_gethrtime(void) +{ + struct bintime bt; + + binuptime(&bt); + return ((hrtime_t)bt.sec * NANOSEC + + (((uint64_t)NANOSEC * (uint32_t)(bt.frac >> 32)) >> 32)); +} + /* * Returns 1 if the upheap propagated to the root, 0 if it did not. This * allows the caller to reprogram the backend only when the root has been @@ -507,7 +517,7 @@ cyclic_fire(cpu_t *c) cyc_index_t *heap = cpu->cyp_heap; cyclic_t *cyclic, *cyclics = cpu->cyp_cyclics; void *arg = be->cyb_arg; - hrtime_t now = gethrtime(); + hrtime_t now = cyc_gethrtime(); hrtime_t exp; if (cpu->cyp_nelems == 0) { @@ -687,7 +697,7 @@ cyclic_add_xcall(cyc_xcallarg_t *arg) * If a start time hasn't been explicitly specified, we'll * start on the next interval boundary. */ - cyclic->cy_expire = (gethrtime() / cyclic->cy_interval + 1) * + cyclic->cy_expire = (cyc_gethrtime() / cyclic->cy_interval + 1) * cyclic->cy_interval; } else { cyclic->cy_expire = when->cyt_when; Modified: projects/largeSMP/sys/cddl/dev/cyclic/i386/cyclic_machdep.c ============================================================================== --- projects/largeSMP/sys/cddl/dev/cyclic/i386/cyclic_machdep.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/cddl/dev/cyclic/i386/cyclic_machdep.c Mon May 16 16:34:03 2011 (r221996) @@ -30,6 +30,7 @@ static void enable(cyb_arg_t); static void disable(cyb_arg_t); static void reprogram(cyb_arg_t, hrtime_t); static void xcall(cyb_arg_t, cpu_t *, cyc_func_t, void *); +static void cyclic_clock(struct trapframe *frame); static cyc_backend_t be = { NULL, /* cyb_configure */ @@ -45,6 +46,7 @@ static void cyclic_ap_start(void *dummy) { /* Initialise the rest of the CPUs. */ + cyclic_clock_func = cyclic_clock; cyclic_mp_init(); } @@ -63,18 +65,10 @@ cyclic_machdep_init(void) static void cyclic_machdep_uninit(void) { - int i; - - for (i = 0; i <= mp_maxid; i++) - /* Reset the cyclic clock callback hook. */ - cyclic_clock_func[i] = NULL; - /* De-register the cyclic backend. */ cyclic_uninit(); } -static hrtime_t exp_due[MAXCPU]; - /* * This function is the one registered by the machine dependent * initialiser as the callback for high speed timer events. @@ -84,7 +78,7 @@ cyclic_clock(struct trapframe *frame) { cpu_t *c = &solaris_cpu[curcpu]; - if (c->cpu_cyclic != NULL && gethrtime() >= exp_due[curcpu]) { + if (c->cpu_cyclic != NULL) { if (TRAPF_USERMODE(frame)) { c->cpu_profile_pc = 0; c->cpu_profile_upc = TRAPF_PC(frame); @@ -102,24 +96,32 @@ cyclic_clock(struct trapframe *frame) } } -static void enable(cyb_arg_t arg) +static void +enable(cyb_arg_t arg __unused) { - /* Register the cyclic clock callback function. */ - cyclic_clock_func[curcpu] = cyclic_clock; + } -static void disable(cyb_arg_t arg) +static void +disable(cyb_arg_t arg __unused) { - /* Reset the cyclic clock callback function. */ - cyclic_clock_func[curcpu] = NULL; + } -static void reprogram(cyb_arg_t arg, hrtime_t exp) +static void +reprogram(cyb_arg_t arg __unused, hrtime_t exp) { - exp_due[curcpu] = exp; + struct bintime bt; + struct timespec ts; + + ts.tv_sec = exp / 1000000000; + ts.tv_nsec = exp % 1000000000; + timespec2bintime(&ts, &bt); + clocksource_cyc_set(&bt); } -static void xcall(cyb_arg_t arg, cpu_t *c, cyc_func_t func, void *param) +static void xcall(cyb_arg_t arg __unused, cpu_t *c, cyc_func_t func, + void *param) { cpuset_t cpus; Modified: projects/largeSMP/sys/dev/ath/if_ath.c ============================================================================== --- projects/largeSMP/sys/dev/ath/if_ath.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/dev/ath/if_ath.c Mon May 16 16:34:03 2011 (r221996) @@ -3966,9 +3966,21 @@ ath_tx_processq(struct ath_softc *sc, st sc->sc_stats.ast_tx_fifoerr++; if (ts->ts_status & HAL_TXERR_FILT) sc->sc_stats.ast_tx_filtered++; + if (ts->ts_status & HAL_TXERR_XTXOP) + sc->sc_stats.ast_tx_xtxop++; + if (ts->ts_status & HAL_TXERR_TIMER_EXPIRED) + sc->sc_stats.ast_tx_timerexpired++; + + /* XXX HAL_TX_DATA_UNDERRUN */ + /* XXX HAL_TX_DELIM_UNDERRUN */ + if (bf->bf_m->m_flags & M_FF) sc->sc_stats.ast_ff_txerr++; } + /* XXX when is this valid? */ + if (ts->ts_status & HAL_TX_DESC_CFG_ERR) + sc->sc_stats.ast_tx_desccfgerr++; + sr = ts->ts_shortretry; lr = ts->ts_longretry; sc->sc_stats.ast_tx_shortretry += sr; Modified: projects/largeSMP/sys/dev/ath/if_ath_sysctl.c ============================================================================== --- projects/largeSMP/sys/dev/ath/if_ath_sysctl.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/dev/ath/if_ath_sysctl.c Mon May 16 16:34:03 2011 (r221996) @@ -709,6 +709,12 @@ ath_sysctl_stats_attach(struct ath_softc &sc->sc_stats.ast_tx_timeout, 0, "TX Global Timeout"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_cst", CTLFLAG_RD, &sc->sc_stats.ast_tx_cst, 0, "TX Carrier Sense Timeout"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_xtxop", CTLFLAG_RD, + &sc->sc_stats.ast_tx_xtxop, 0, "TX exceeded TXOP"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_timerexpired", CTLFLAG_RD, + &sc->sc_stats.ast_tx_timerexpired, 0, "TX exceeded TX_TIMER register"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tx_desccfgerr", CTLFLAG_RD, + &sc->sc_stats.ast_tx_desccfgerr, 0, "TX Descriptor Cfg Error"); /* Attach the RX phy error array */ ath_sysctl_stats_attach_rxphyerr(sc, child); Modified: projects/largeSMP/sys/dev/ath/if_athioctl.h ============================================================================== --- projects/largeSMP/sys/dev/ath/if_athioctl.h Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/dev/ath/if_athioctl.h Mon May 16 16:34:03 2011 (r221996) @@ -121,17 +121,20 @@ struct ath_stats { u_int32_t ast_be_missed; /* missed beacons */ u_int32_t ast_ani_cal; /* ANI calibrations performed */ u_int32_t ast_rx_agg; /* number of aggregate frames RX'ed */ - u_int32_t ast_rx_halfgi; - u_int32_t ast_rx_2040; - u_int32_t ast_rx_pre_crc_err; - u_int32_t ast_rx_post_crc_err; - u_int32_t ast_rx_decrypt_busy_err; + u_int32_t ast_rx_halfgi; /* RX half-GI */ + u_int32_t ast_rx_2040; /* RX 40mhz frame */ + u_int32_t ast_rx_pre_crc_err; /* RX pre-delimiter CRC error */ + u_int32_t ast_rx_post_crc_err; /* RX post-delimiter CRC error */ + u_int32_t ast_rx_decrypt_busy_err; /* RX decrypt engine busy error */ u_int32_t ast_rx_hi_rx_chain; u_int32_t ast_tx_htprotect; /* HT tx frames with protection */ - u_int32_t ast_rx_hitqueueend; + u_int32_t ast_rx_hitqueueend; /* RX hit descr queue end */ u_int32_t ast_tx_timeout; /* Global TX timeout */ u_int32_t ast_tx_cst; /* Carrier sense timeout */ - u_int32_t ast_pad[16]; + u_int32_t ast_tx_xtxop; /* tx exceeded TXOP */ + u_int32_t ast_tx_timerexpired; /* tx exceeded TX_TIMER */ + u_int32_t ast_tx_desccfgerr; /* tx desc cfg error */ + u_int32_t ast_pad[13]; }; #define SIOCGATHSTATS _IOWR('i', 137, struct ifreq) Modified: projects/largeSMP/sys/dev/bge/if_bge.c ============================================================================== --- projects/largeSMP/sys/dev/bge/if_bge.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/dev/bge/if_bge.c Mon May 16 16:34:03 2011 (r221996) @@ -2836,7 +2836,7 @@ bge_attach(device_t dev) if (sc->bge_asicrev == BGE_ASICREV_BCM5719 && sc->bge_chipid == BGE_CHIPID_BCM5719_A0) { /* Jumbo frame on BCM5719 A0 does not work. */ - sc->bge_flags &= ~BGE_FLAG_JUMBO_FRAME; + sc->bge_flags &= ~BGE_FLAG_JUMBO; } break; case BGE_ASICREV_BCM5755: Modified: projects/largeSMP/sys/dev/glxiic/glxiic.c ============================================================================== --- projects/largeSMP/sys/dev/glxiic/glxiic.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/dev/glxiic/glxiic.c Mon May 16 16:34:03 2011 (r221996) @@ -153,9 +153,10 @@ struct glxiic_softc { }; #ifdef GLXIIC_DEBUG -#define DEBUG(fmt, args...) log(LOG_DEBUG, "%s: " fmt "\n" , __func__ , ## args) +#define GLXIIC_DEBUG_LOG(fmt, args...) \ + log(LOG_DEBUG, "%s: " fmt "\n" , __func__ , ## args) #else -#define DEBUG(fmt, args...) +#define GLXIIC_DEBUG_LOG(fmt, args...) #endif #define GLXIIC_SCLFRQ(n) ((n << 1)) @@ -540,7 +541,7 @@ glxiic_timeout(void *arg) sc = (struct glxiic_softc *)arg; - DEBUG("timeout in state %d", sc->state); + GLXIIC_DEBUG_LOG("timeout in state %d", sc->state); if (glxiic_state_table[sc->state].master) { sc->error = IIC_ETIMEOUT; @@ -604,7 +605,7 @@ glxiic_handle_slave_match_locked(struct glxiic_set_state_locked(sc, GLXIIC_STATE_SLAVE_RX); iicbus_intr(sc->iicbus, INTR_GENERAL, &addr); } else { - DEBUG("unknown slave match"); + GLXIIC_DEBUG_LOG("unknown slave match"); return (IIC_ESTATUS); } @@ -618,7 +619,7 @@ glxiic_state_idle_callback(struct glxiic GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in idle"); + GLXIIC_DEBUG_LOG("bus error in idle"); return (IIC_EBUSERR); } @@ -637,7 +638,7 @@ glxiic_state_slave_tx_callback(struct gl GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in slave tx"); + GLXIIC_DEBUG_LOG("bus error in slave tx"); return (IIC_EBUSERR); } @@ -658,7 +659,7 @@ glxiic_state_slave_tx_callback(struct gl } if ((status & GLXIIC_SMB_STS_SDAST_BIT) == 0) { - DEBUG("not awaiting data in slave tx"); + GLXIIC_DEBUG_LOG("not awaiting data in slave tx"); return (IIC_ESTATUS); } @@ -678,7 +679,7 @@ glxiic_state_slave_rx_callback(struct gl GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in slave rx"); + GLXIIC_DEBUG_LOG("bus error in slave rx"); return (IIC_EBUSERR); } @@ -694,7 +695,7 @@ glxiic_state_slave_rx_callback(struct gl } if ((status & GLXIIC_SMB_STS_SDAST_BIT) == 0) { - DEBUG("no pending data in slave rx"); + GLXIIC_DEBUG_LOG("no pending data in slave rx"); return (IIC_ESTATUS); } @@ -714,17 +715,17 @@ glxiic_state_master_addr_callback(struct GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error after master start"); + GLXIIC_DEBUG_LOG("bus error after master start"); return (IIC_EBUSERR); } if ((status & GLXIIC_SMB_STS_MASTER_BIT) == 0) { - DEBUG("not bus master after master start"); + GLXIIC_DEBUG_LOG("not bus master after master start"); return (IIC_ESTATUS); } if ((status & GLXIIC_SMB_STS_SDAST_BIT) == 0) { - DEBUG("not awaiting address in master addr"); + GLXIIC_DEBUG_LOG("not awaiting address in master addr"); return (IIC_ESTATUS); } @@ -755,17 +756,17 @@ glxiic_state_master_tx_callback(struct g GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in master tx"); + GLXIIC_DEBUG_LOG("bus error in master tx"); return (IIC_EBUSERR); } if ((status & GLXIIC_SMB_STS_MASTER_BIT) == 0) { - DEBUG("not bus master in master tx"); + GLXIIC_DEBUG_LOG("not bus master in master tx"); return (IIC_ESTATUS); } if ((status & GLXIIC_SMB_STS_NEGACK_BIT) != 0) { - DEBUG("slave nack in master tx"); + GLXIIC_DEBUG_LOG("slave nack in master tx"); return (IIC_ENOACK); } @@ -775,7 +776,7 @@ glxiic_state_master_tx_callback(struct g } if ((status & GLXIIC_SMB_STS_SDAST_BIT) == 0) { - DEBUG("not awaiting data in master tx"); + GLXIIC_DEBUG_LOG("not awaiting data in master tx"); return (IIC_ESTATUS); } @@ -796,17 +797,17 @@ glxiic_state_master_rx_callback(struct g GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in master rx"); + GLXIIC_DEBUG_LOG("bus error in master rx"); return (IIC_EBUSERR); } if ((status & GLXIIC_SMB_STS_MASTER_BIT) == 0) { - DEBUG("not bus master in master rx"); + GLXIIC_DEBUG_LOG("not bus master in master rx"); return (IIC_ESTATUS); } if ((status & GLXIIC_SMB_STS_NEGACK_BIT) != 0) { - DEBUG("slave nack in rx"); + GLXIIC_DEBUG_LOG("slave nack in rx"); return (IIC_ENOACK); } @@ -825,7 +826,7 @@ glxiic_state_master_rx_callback(struct g } if ((status & GLXIIC_SMB_STS_SDAST_BIT) == 0) { - DEBUG("no pending data in master rx"); + GLXIIC_DEBUG_LOG("no pending data in master rx"); return (IIC_ESTATUS); } @@ -849,17 +850,17 @@ glxiic_state_master_stop_callback(struct GLXIIC_ASSERT_LOCKED(sc); if ((status & GLXIIC_SMB_STS_BER_BIT) != 0) { - DEBUG("bus error in master stop"); + GLXIIC_DEBUG_LOG("bus error in master stop"); return (IIC_EBUSERR); } if ((status & GLXIIC_SMB_STS_MASTER_BIT) == 0) { - DEBUG("not bus master in master stop"); + GLXIIC_DEBUG_LOG("not bus master in master stop"); return (IIC_ESTATUS); } if ((status & GLXIIC_SMB_STS_NEGACK_BIT) != 0) { - DEBUG("slave nack in master stop"); + GLXIIC_DEBUG_LOG("slave nack in master stop"); return (IIC_ENOACK); } Modified: projects/largeSMP/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- projects/largeSMP/sys/fs/nfs/nfs_commonkrpc.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfs/nfs_commonkrpc.c Mon May 16 16:34:03 2011 (r221996) @@ -78,17 +78,17 @@ static int nfs3_jukebox_delay = 10; static int nfs_skip_wcc_data_onerr = 1; static int nfs_keytab_enctype = ETYPE_DES_CBC_CRC; -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, bufpackets, CTLFLAG_RW, &nfs_bufpackets, 0, "Buffer reservation size 2 < x < 64"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, reconnects, CTLFLAG_RD, &nfs_reconnects, 0, "Number of times the nfs client has had to reconnect"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs3_jukebox_delay, CTLFLAG_RW, &nfs3_jukebox_delay, 0, "Number of seconds to delay a retry after receiving EJUKEBOX"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, skip_wcc_data_onerr, CTLFLAG_RW, &nfs_skip_wcc_data_onerr, 0, "Disable weak cache consistency checking when server returns an error"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, keytab_enctype, CTLFLAG_RW, &nfs_keytab_enctype, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, keytab_enctype, CTLFLAG_RW, &nfs_keytab_enctype, 0, "Encryption type for the keytab entry used by nfs"); static void nfs_down(struct nfsmount *, struct thread *, const char *, Modified: projects/largeSMP/sys/fs/nfs/nfs_commonport.c ============================================================================== --- projects/largeSMP/sys/fs/nfs/nfs_commonport.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfs/nfs_commonport.c Mon May 16 16:34:03 2011 (r221996) @@ -69,14 +69,12 @@ void (*ncl_call_invalcaches)(struct vnod static int nfs_realign_test; static int nfs_realign_count; -SYSCTL_NODE(_vfs, OID_AUTO, newnfs, CTLFLAG_RW, 0, "New NFS filesystem"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, realign_test, CTLFLAG_RW, &nfs_realign_test, +SYSCTL_NODE(_vfs, OID_AUTO, nfs, CTLFLAG_RW, 0, "New NFS filesystem"); +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_test, CTLFLAG_RW, &nfs_realign_test, 0, "Number of realign tests done"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, realign_count, CTLFLAG_RW, &nfs_realign_count, +SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_count, CTLFLAG_RW, &nfs_realign_count, 0, "Number of mbuf realignments done"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs4acl_enable, CTLFLAG_RW, &nfsrv_useacl, - 0, "Enable NFSv4 ACLs"); -SYSCTL_STRING(_vfs_newnfs, OID_AUTO, callback_addr, CTLFLAG_RW, +SYSCTL_STRING(_vfs_nfs, OID_AUTO, callback_addr, CTLFLAG_RW, nfsv4_callbackaddr, sizeof(nfsv4_callbackaddr), "NFSv4 callback addr for server to use"); Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clkrpc.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clkrpc.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clkrpc.c Mon May 16 16:34:03 2011 (r221996) @@ -46,8 +46,6 @@ __FBSDID("$FreeBSD$"); NFSDLOCKMUTEX; -SYSCTL_DECL(_vfs_newnfs); - SVCPOOL *nfscbd_pool; static int nfs_cbproc(struct nfsrv_descript *, u_int32_t); Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clnfsiod.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clnfsiod.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clnfsiod.c Mon May 16 16:34:03 2011 (r221996) @@ -80,11 +80,11 @@ static void nfssvc_iod(void *); static int nfs_asyncdaemon[NFS_MAXASYNCDAEMON]; -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); /* Maximum number of seconds a nfsiod kthread will sleep before exiting */ static unsigned int nfs_iodmaxidle = 120; -SYSCTL_UINT(_vfs_newnfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, +SYSCTL_UINT(_vfs_nfs, OID_AUTO, iodmaxidle, CTLFLAG_RW, &nfs_iodmaxidle, 0, "Max number of seconds an nfsiod kthread will sleep before exiting"); /* Maximum number of nfsiod kthreads */ @@ -123,7 +123,7 @@ out: mtx_unlock(&ncl_iod_mutex); return (0); } -SYSCTL_PROC(_vfs_newnfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmin, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (nfs_iodmin), sysctl_iodmin, "IU", "Min number of nfsiod kthreads to keep as spares"); @@ -159,7 +159,7 @@ out: mtx_unlock(&ncl_iod_mutex); return (0); } -SYSCTL_PROC(_vfs_newnfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, +SYSCTL_PROC(_vfs_nfs, OID_AUTO, iodmax, CTLTYPE_UINT | CTLFLAG_RW, 0, sizeof (ncl_iodmax), sysctl_iodmax, "IU", "Max number of nfsiod kthreads"); @@ -214,7 +214,7 @@ nfsiod_setup(void *dummy) { int error; - TUNABLE_INT_FETCH("vfs.newnfs.iodmin", &nfs_iodmin); + TUNABLE_INT_FETCH("vfs.nfs.iodmin", &nfs_iodmin); nfscl_init(); mtx_lock(&ncl_iod_mutex); /* Silently limit the start number of nfsiod's */ @@ -231,7 +231,7 @@ nfsiod_setup(void *dummy) SYSINIT(newnfsiod, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, nfsiod_setup, NULL); static int nfs_defect = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, +SYSCTL_INT(_vfs_nfs, OID_AUTO, defect, CTLFLAG_RW, &nfs_defect, 0, "Allow nfsiods to migrate serving different mounts"); /* Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clsubs.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clsubs.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clsubs.c Mon May 16 16:34:03 2011 (r221996) @@ -174,9 +174,9 @@ ncl_printf(const char *fmt, ...) #ifdef NFS_ACDEBUG #include -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); static int nfs_acdebug; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, ""); +SYSCTL_INT(_vfs_nfs, OID_AUTO, acdebug, CTLFLAG_RW, &nfs_acdebug, 0, ""); #endif /* Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c Mon May 16 16:34:03 2011 (r221996) @@ -83,18 +83,16 @@ extern struct nfsstats newnfsstats; MALLOC_DEFINE(M_NEWNFSREQ, "newnfsclient_req", "New NFS request header"); MALLOC_DEFINE(M_NEWNFSMNT, "newnfsmnt", "New NFS mount struct"); -SYSCTL_DECL(_vfs_newnfs); -SYSCTL_STRUCT(_vfs_newnfs, NFS_NFSSTATS, nfsstats, CTLFLAG_RW, - &newnfsstats, nfsstats, "S,nfsstats"); +SYSCTL_DECL(_vfs_nfs); static int nfs_ip_paranoia = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_ip_paranoia, CTLFLAG_RW, &nfs_ip_paranoia, 0, ""); static int nfs_tprintf_initial_delay = NFS_TPRINTF_INITIAL_DELAY; -SYSCTL_INT(_vfs_newnfs, NFS_TPRINTF_INITIAL_DELAY, +SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_INITIAL_DELAY, downdelayinitial, CTLFLAG_RW, &nfs_tprintf_initial_delay, 0, ""); /* how long between console messages "nfs server foo not responding" */ static int nfs_tprintf_delay = NFS_TPRINTF_DELAY; -SYSCTL_INT(_vfs_newnfs, NFS_TPRINTF_DELAY, +SYSCTL_INT(_vfs_nfs, NFS_TPRINTF_DELAY, downdelayinterval, CTLFLAG_RW, &nfs_tprintf_delay, 0, ""); static int nfs_mountroot(struct mount *); @@ -152,14 +150,14 @@ struct nfsv3_diskless nfsv3_diskless = { int nfs_diskless_valid = 0; #endif -SYSCTL_INT(_vfs_newnfs, OID_AUTO, diskless_valid, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, diskless_valid, CTLFLAG_RD, &nfs_diskless_valid, 0, "Has the diskless struct been filled correctly"); -SYSCTL_STRING(_vfs_newnfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, +SYSCTL_STRING(_vfs_nfs, OID_AUTO, diskless_rootpath, CTLFLAG_RD, nfsv3_diskless.root_hostnam, 0, "Path to nfs root"); -SYSCTL_OPAQUE(_vfs_newnfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, +SYSCTL_OPAQUE(_vfs_nfs, OID_AUTO, diskless_rootaddr, CTLFLAG_RD, &nfsv3_diskless.root_saddr, sizeof(nfsv3_diskless.root_saddr), "%Ssockaddr_in", "Diskless root nfs address"); Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clvnops.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clvnops.c Mon May 16 16:34:03 2011 (r221996) @@ -199,27 +199,27 @@ static int nfs_renameit(struct vnode *sd */ #define DIRHDSIZ (sizeof (struct dirent) - (MAXNAMLEN + 1)) -SYSCTL_DECL(_vfs_newnfs); +SYSCTL_DECL(_vfs_nfs); static int nfsaccess_cache_timeout = NFS_MAXATTRTIMO; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_timeout, CTLFLAG_RW, &nfsaccess_cache_timeout, 0, "NFS ACCESS cache timeout"); static int nfs_prime_access_cache = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, prime_access_cache, CTLFLAG_RW, &nfs_prime_access_cache, 0, "Prime NFS ACCESS cache when fetching attributes"); static int newnfs_commit_on_close = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, commit_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_on_close, CTLFLAG_RW, &newnfs_commit_on_close, 0, "write+commit on close, else only write"); static int nfs_clean_pages_on_close = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, clean_pages_on_close, CTLFLAG_RW, &nfs_clean_pages_on_close, 0, "NFS clean dirty pages on close"); int newnfs_directio_enable = 0; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_enable, CTLFLAG_RW, &newnfs_directio_enable, 0, "Enable NFS directio"); /* @@ -234,14 +234,14 @@ SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_di * meaningful. */ int newnfs_directio_allow_mmap = 1; -SYSCTL_INT(_vfs_newnfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfs, OID_AUTO, nfs_directio_allow_mmap, CTLFLAG_RW, &newnfs_directio_allow_mmap, 0, "Enable mmaped IO on file with O_DIRECT opens"); #if 0 -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_hits, CTLFLAG_RD, &newnfsstats.accesscache_hits, 0, "NFS ACCESS cache hit count"); -SYSCTL_INT(_vfs_newnfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, +SYSCTL_INT(_vfs_nfs, OID_AUTO, access_cache_misses, CTLFLAG_RD, &newnfsstats.accesscache_misses, 0, "NFS ACCESS cache miss count"); #endif Modified: projects/largeSMP/sys/geom/part/g_part.c ============================================================================== --- projects/largeSMP/sys/geom/part/g_part.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/geom/part/g_part.c Mon May 16 16:34:03 2011 (r221996) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -104,6 +105,13 @@ struct g_part_alias_list { { "netbsd-swap", G_PART_ALIAS_NETBSD_SWAP }, }; +SYSCTL_DECL(_kern_geom); +SYSCTL_NODE(_kern_geom, OID_AUTO, part, CTLFLAG_RW, 0, "GEOM_PART stuff"); +static u_int check_integrity = 1; +TUNABLE_INT("kern.geom.part.check_integrity", &check_integrity); +SYSCTL_UINT(_kern_geom_part, OID_AUTO, check_integrity, CTLFLAG_RW, + &check_integrity, 1, "Enable integrity checking"); + /* * The GEOM partitioning class. */ @@ -231,47 +239,111 @@ g_part_geometry(struct g_part_table *tab } } +#define DPRINTF(...) if (bootverbose) { \ + printf("GEOM_PART: " __VA_ARGS__); \ +} + static int g_part_check_integrity(struct g_part_table *table, struct g_consumer *cp) { struct g_part_entry *e1, *e2; struct g_provider *pp; + int failed; + failed = 0; pp = cp->provider; - if (table->gpt_first > table->gpt_last || - table->gpt_last > pp->mediasize / pp->sectorsize - 1) - goto fail; - + if (table->gpt_last < table->gpt_first) { + DPRINTF("last LBA is below first LBA: %jd < %jd\n", + (intmax_t)table->gpt_last, (intmax_t)table->gpt_first); + failed++; + } + if (table->gpt_last > pp->mediasize / pp->sectorsize - 1) { + DPRINTF("last LBA extends beyond mediasize: " + "%jd > %jd\n", (intmax_t)table->gpt_last, + (intmax_t)pp->mediasize / pp->sectorsize - 1); + failed++; + } LIST_FOREACH(e1, &table->gpt_entry, gpe_entry) { if (e1->gpe_deleted || e1->gpe_internal) continue; - if (e1->gpe_start < table->gpt_first || - e1->gpe_start > table->gpt_last || - e1->gpe_end < e1->gpe_start || - e1->gpe_end > table->gpt_last) - goto fail; + if (e1->gpe_start < table->gpt_first) { + DPRINTF("partition %d has start offset below first " + "LBA: %jd < %jd\n", e1->gpe_index, + (intmax_t)e1->gpe_start, + (intmax_t)table->gpt_first); + failed++; + } + if (e1->gpe_start > table->gpt_last) { + DPRINTF("partition %d has start offset beyond last " + "LBA: %jd > %jd\n", e1->gpe_index, + (intmax_t)e1->gpe_start, + (intmax_t)table->gpt_last); + failed++; + } + if (e1->gpe_end < e1->gpe_start) { + DPRINTF("partition %d has end offset below start " + "offset: %jd < %jd\n", e1->gpe_index, + (intmax_t)e1->gpe_end, + (intmax_t)e1->gpe_start); + failed++; + } + if (e1->gpe_end > table->gpt_last) { + DPRINTF("partition %d has end offset beyond last " + "LBA: %jd > %jd\n", e1->gpe_index, + (intmax_t)e1->gpe_end, + (intmax_t)table->gpt_last); + failed++; + } e2 = e1; while ((e2 = LIST_NEXT(e2, gpe_entry)) != NULL) { if (e2->gpe_deleted || e2->gpe_internal) continue; if (e1->gpe_start >= e2->gpe_start && - e1->gpe_start <= e2->gpe_end) - goto fail; + e1->gpe_start <= e2->gpe_end) { + DPRINTF("partition %d has start offset inside " + "partition %d: start[%d] %jd >= start[%d] " + "%jd <= end[%d] %jd\n", + e1->gpe_index, e2->gpe_index, + e2->gpe_index, (intmax_t)e2->gpe_start, + e1->gpe_index, (intmax_t)e1->gpe_start, + e2->gpe_index, (intmax_t)e2->gpe_end); + failed++; + } if (e1->gpe_end >= e2->gpe_start && - e1->gpe_end <= e2->gpe_end) - goto fail; + e1->gpe_end <= e2->gpe_end) { + DPRINTF("partition %d has end offset inside " + "partition %d: start[%d] %jd >= end[%d] " + "%jd <= end[%d] %jd\n", + e1->gpe_index, e2->gpe_index, + e2->gpe_index, (intmax_t)e2->gpe_start, + e1->gpe_index, (intmax_t)e1->gpe_end, + e2->gpe_index, (intmax_t)e2->gpe_end); + failed++; + } if (e1->gpe_start < e2->gpe_start && - e1->gpe_end > e2->gpe_end) - goto fail; + e1->gpe_end > e2->gpe_end) { + DPRINTF("partition %d contains partition %d: " + "start[%d] %jd > start[%d] %jd, end[%d] " + "%jd < end[%d] %jd\n", + e1->gpe_index, e2->gpe_index, + e1->gpe_index, (intmax_t)e1->gpe_start, + e2->gpe_index, (intmax_t)e2->gpe_start, + e2->gpe_index, (intmax_t)e2->gpe_end, + e1->gpe_index, (intmax_t)e1->gpe_end); + failed++; + } } } - return (0); -fail: - if (bootverbose) + if (failed != 0) { printf("GEOM_PART: integrity check failed (%s, %s)\n", pp->name, table->gpt_scheme->name); - return (EINVAL); + if (check_integrity != 0) + return (EINVAL); + table->gpt_corrupt = 1; + } + return (0); } +#undef DPRINTF struct g_part_entry * g_part_new_entry(struct g_part_table *table, int index, quad_t start, Modified: projects/largeSMP/sys/kern/kern_clocksource.c ============================================================================== --- projects/largeSMP/sys/kern/kern_clocksource.c Mon May 16 16:20:54 2011 (r221995) +++ projects/largeSMP/sys/kern/kern_clocksource.c Mon May 16 16:34:03 2011 (r221996) @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); #ifdef KDTRACE_HOOKS #include -cyclic_clock_func_t cyclic_clock_func[MAXCPU]; +cyclic_clock_func_t cyclic_clock_func = NULL; #endif int cpu_disable_deep_sleep = 0; /* Timer dies in C3. */ @@ -128,6 +128,9 @@ struct pcpu_state { struct bintime nexthard; /* Next hardlock() event. */ struct bintime nextstat; /* Next statclock() event. */ struct bintime nextprof; /* Next profclock() event. */ +#ifdef KDTRACE_HOOKS + struct bintime nextcyc; /* Next OpenSolaris cyclics event. */ +#endif int ipi; /* This CPU needs IPI. */ int idle; /* This CPU is in idle mode. */ }; @@ -190,17 +193,10 @@ handleevents(struct bintime *now, int fa usermode = TRAPF_USERMODE(frame); pc = TRAPF_PC(frame); } -#ifdef KDTRACE_HOOKS - /* - * If the DTrace hooks are configured and a callback function - * has been registered, then call it to process the high speed - * timers. - */ - if (!fake && cyclic_clock_func[curcpu] != NULL) - (*cyclic_clock_func[curcpu])(frame); -#endif + runs = 0; state = DPCPU_PTR(timerstate); + while (bintime_cmp(now, &state->nexthard, >=)) { bintime_add(&state->nexthard, &hardperiod); runs++; @@ -224,6 +220,16 @@ handleevents(struct bintime *now, int fa } } else state->nextprof = state->nextstat; + +#ifdef KDTRACE_HOOKS + if (fake == 0 && cyclic_clock_func != NULL && + state->nextcyc.sec != -1 && + bintime_cmp(now, &state->nextcyc, >=)) { + state->nextcyc.sec = -1; + (*cyclic_clock_func)(frame); + } +#endif + getnextcpuevent(&t, 0); if (fake == 2) { state->nextevent = t; @@ -263,10 +269,13 @@ getnextcpuevent(struct bintime *event, i } else { /* If CPU is active - handle all types of events. */ if (bintime_cmp(event, &state->nextstat, >)) *event = state->nextstat; - if (profiling && - bintime_cmp(event, &state->nextprof, >)) + if (profiling && bintime_cmp(event, &state->nextprof, >)) *event = state->nextprof; } +#ifdef KDTRACE_HOOKS + if (state->nextcyc.sec != -1 && bintime_cmp(event, &state->nextcyc, >)) + *event = state->nextcyc; +#endif } /* @@ -590,6 +599,9 @@ cpu_initclocks_bsp(void) CPU_FOREACH(cpu) { state = DPCPU_ID_PTR(cpu, timerstate); mtx_init(&state->et_hw_mtx, "et_hw_mtx", NULL, MTX_SPIN); +#ifdef KDTRACE_HOOKS + state->nextcyc.sec = -1; +#endif } #ifdef SMP callout_new_inserted = cpu_new_callout; @@ -784,6 +796,43 @@ cpu_activeclock(void) spinlock_exit(); } +#ifdef KDTRACE_HOOKS +void +clocksource_cyc_set(const struct bintime *t) +{ + struct bintime now; + struct pcpu_state *state; + + state = DPCPU_PTR(timerstate); + if (periodic) + now = state->now; + else + binuptime(&now); + + CTR4(KTR_SPARE2, "set_cyc at %d: now %d.%08x%08x", + curcpu, now.sec, (unsigned int)(now.frac >> 32), + (unsigned int)(now.frac & 0xffffffff)); + CTR4(KTR_SPARE2, "set_cyc at %d: t %d.%08x%08x", + curcpu, t->sec, (unsigned int)(t->frac >> 32), + (unsigned int)(t->frac & 0xffffffff)); + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon May 16 16:55:17 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 863901065673; Mon, 16 May 2011 16:55:17 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5B7678FC08; Mon, 16 May 2011 16:55:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GGtHfg091078; Mon, 16 May 2011 16:55:17 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GGtHFZ091076; Mon, 16 May 2011 16:55:17 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105161655.p4GGtHFZ091076@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 16 May 2011 16:55:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221997 - projects/pseries/powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 16:55:17 -0000 Author: nwhitehorn Date: Mon May 16 16:55:17 2011 New Revision: 221997 URL: http://svn.freebsd.org/changeset/base/221997 Log: Set the maximum real address to the end of the first element of the physical memory array, per the PAPR spec. Modified: projects/pseries/powerpc/pseries/platform_chrp.c Modified: projects/pseries/powerpc/pseries/platform_chrp.c ============================================================================== --- projects/pseries/powerpc/pseries/platform_chrp.c Mon May 16 16:34:03 2011 (r221996) +++ projects/pseries/powerpc/pseries/platform_chrp.c Mon May 16 16:55:17 2011 (r221997) @@ -55,10 +55,13 @@ __FBSDID("$FreeBSD$"); extern void *ap_pcpu; #endif +static vm_offset_t realmaxaddr = VM_MAX_ADDRESS; + static int chrp_probe(platform_t); static int chrp_attach(platform_t); void chrp_mem_regions(platform_t, struct mem_region **phys, int *physsz, struct mem_region **avail, int *availsz); +static vm_offset_t chrp_real_maxaddr(platform_t); static u_long chrp_timebase_freq(platform_t, struct cpuref *cpuref); static int chrp_smp_first_cpu(platform_t, struct cpuref *cpuref); static int chrp_smp_next_cpu(platform_t, struct cpuref *cpuref); @@ -70,6 +73,7 @@ static platform_method_t chrp_methods[] PLATFORMMETHOD(platform_probe, chrp_probe), PLATFORMMETHOD(platform_attach, chrp_attach), PLATFORMMETHOD(platform_mem_regions, chrp_mem_regions), + PLATFORMMETHOD(platform_real_maxaddr, chrp_real_maxaddr), PLATFORMMETHOD(platform_timebase_freq, chrp_timebase_freq), PLATFORMMETHOD(platform_smp_first_cpu, chrp_smp_first_cpu), @@ -104,8 +108,14 @@ chrp_attach(platform_t plat) { #ifdef __powerpc64__ /* XXX: check for /rtas/ibm,hypertas-functions? */ - if (!(mfmsr() & PSL_HV)) + if (!(mfmsr() & PSL_HV)) { + struct mem_region *phys, *avail; + int nphys, navail; + mem_regions(&phys, &nphys, &avail, &navail); + realmaxaddr = phys[0].mr_size; + pmap_mmu_install("mmu_phyp", BUS_PROBE_SPECIFIC); + } #endif return (0); @@ -118,6 +128,12 @@ chrp_mem_regions(platform_t plat, struct ofw_mem_regions(phys,physsz,avail,availsz); } +static vm_offset_t +chrp_real_maxaddr(platform_t plat) +{ + return (realmaxaddr); +} + static u_long chrp_timebase_freq(platform_t plat, struct cpuref *cpuref) { From owner-svn-src-projects@FreeBSD.ORG Mon May 16 17:21:22 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0470106564A; Mon, 16 May 2011 17:21:22 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B64908FC0C; Mon, 16 May 2011 17:21:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GHLMlW091973; Mon, 16 May 2011 17:21:22 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GHLMVv091972; Mon, 16 May 2011 17:21:22 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201105161721.p4GHLMVv091972@svn.freebsd.org> From: Sean Bruno Date: Mon, 16 May 2011 17:21:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221998 - projects/sbruno_64cpus X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 17:21:23 -0000 Author: sbruno Date: Mon May 16 17:21:22 2011 New Revision: 221998 URL: http://svn.freebsd.org/changeset/base/221998 Log: Just in case anyone tries to use this, delete it so they use the largeSMP project branch. This tree is dead as cpuset_t migrations have worked out pretty good. Deleted: projects/sbruno_64cpus/ From owner-svn-src-projects@FreeBSD.ORG Mon May 16 19:30:00 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 78020106566B; Mon, 16 May 2011 19:30:00 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 615DE8FC1F; Mon, 16 May 2011 19:30:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4GJU0Hq096096; Mon, 16 May 2011 19:30:00 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4GJU0wZ096081; Mon, 16 May 2011 19:30:00 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201105161930.p4GJU0wZ096081@svn.freebsd.org> From: Sean Bruno Date: Mon, 16 May 2011 19:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222000 - in projects/stable_7_xen: . bin/df bin/ed bin/sh bin/test contrib/bind9 contrib/bind9/bin/named contrib/bind9/doc/draft contrib/bind9/lib/dns contrib/bind9/lib/dns/include/dns... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 May 2011 19:30:00 -0000 Author: sbruno Date: Mon May 16 19:29:58 2011 New Revision: 222000 URL: http://svn.freebsd.org/changeset/base/222000 Log: IFV to stable-7 in preparation to merge yahoo xen7 code Added: projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html - copied unchanged from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.pdf - copied unchanged from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.pdf projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt - copied unchanged from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt - copied unchanged from r221999, stable/7/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-12.txt - copied unchanged from r221999, stable/7/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-12.txt projects/stable_7_xen/contrib/bind9/release-notes.css - copied unchanged from r221999, stable/7/contrib/bind9/release-notes.css projects/stable_7_xen/contrib/gcc/ChangeLog.gcc43 - copied unchanged from r221999, stable/7/contrib/gcc/ChangeLog.gcc43 projects/stable_7_xen/contrib/gcc/config/i386/geode.md - copied unchanged from r221999, stable/7/contrib/gcc/config/i386/geode.md projects/stable_7_xen/contrib/gcc/config/i386/tmmintrin.h - copied unchanged from r221999, stable/7/contrib/gcc/config/i386/tmmintrin.h projects/stable_7_xen/crypto/openssl/ACKNOWLEDGMENTS - copied unchanged from r221999, stable/7/crypto/openssl/ACKNOWLEDGMENTS projects/stable_7_xen/etc/periodic/daily/220.backup-pkgdb - copied unchanged from r221999, stable/7/etc/periodic/daily/220.backup-pkgdb projects/stable_7_xen/share/man/man4/ixgbe.4 - copied unchanged from r221999, stable/7/share/man/man4/ixgbe.4 projects/stable_7_xen/share/man/man4/rgephy.4 - copied unchanged from r221999, stable/7/share/man/man4/rgephy.4 projects/stable_7_xen/share/man/man4/vte.4 - copied unchanged from r221999, stable/7/share/man/man4/vte.4 projects/stable_7_xen/share/man/man9/fail.9 - copied unchanged from r221999, stable/7/share/man/man9/fail.9 projects/stable_7_xen/share/man/man9/osd.9 - copied unchanged from r221999, stable/7/share/man/man9/osd.9 projects/stable_7_xen/sys/dev/mii/rdcphy.c - copied unchanged from r221999, stable/7/sys/dev/mii/rdcphy.c projects/stable_7_xen/sys/dev/mii/rdcphyreg.h - copied unchanged from r221999, stable/7/sys/dev/mii/rdcphyreg.h projects/stable_7_xen/sys/dev/vte/ - copied from r221999, stable/7/sys/dev/vte/ projects/stable_7_xen/sys/kern/kern_fail.c - copied unchanged from r221999, stable/7/sys/kern/kern_fail.c projects/stable_7_xen/sys/modules/vte/ - copied from r221999, stable/7/sys/modules/vte/ projects/stable_7_xen/sys/sparc64/pci/ofw_pci_if.m - copied unchanged from r221999, stable/7/sys/sparc64/pci/ofw_pci_if.m projects/stable_7_xen/sys/sys/fail.h - copied unchanged from r221999, stable/7/sys/sys/fail.h projects/stable_7_xen/tools/tools/nanobsd/Files/root/update - copied unchanged from r221999, stable/7/tools/tools/nanobsd/Files/root/update Deleted: projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-behave-dns64-10.txt projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-10.txt Modified: projects/stable_7_xen/COPYRIGHT (contents, props changed) projects/stable_7_xen/Makefile (contents, props changed) projects/stable_7_xen/ObsoleteFiles.inc (contents, props changed) projects/stable_7_xen/UPDATING (contents, props changed) projects/stable_7_xen/bin/df/df.c projects/stable_7_xen/bin/ed/ed.1 projects/stable_7_xen/bin/sh/expand.c projects/stable_7_xen/bin/sh/var.c projects/stable_7_xen/bin/test/test.c projects/stable_7_xen/contrib/bind9/CHANGES projects/stable_7_xen/contrib/bind9/bin/named/query.c projects/stable_7_xen/contrib/bind9/lib/dns/api projects/stable_7_xen/contrib/bind9/lib/dns/include/dns/db.h projects/stable_7_xen/contrib/bind9/lib/dns/rbtdb.c projects/stable_7_xen/contrib/bind9/lib/dns/validator.c projects/stable_7_xen/contrib/bind9/lib/isc/api projects/stable_7_xen/contrib/bind9/lib/isc/print.c projects/stable_7_xen/contrib/bind9/version projects/stable_7_xen/contrib/csup/updater.c projects/stable_7_xen/contrib/gcc/BASE-VER projects/stable_7_xen/contrib/gcc/ChangeLog projects/stable_7_xen/contrib/gcc/DATESTAMP projects/stable_7_xen/contrib/gcc/DEV-PHASE projects/stable_7_xen/contrib/gcc/config.gcc projects/stable_7_xen/contrib/gcc/config/i386/driver-i386.c projects/stable_7_xen/contrib/gcc/config/i386/i386.c projects/stable_7_xen/contrib/gcc/config/i386/i386.h projects/stable_7_xen/contrib/gcc/config/i386/i386.md projects/stable_7_xen/contrib/gcc/config/i386/i386.opt projects/stable_7_xen/contrib/gcc/config/i386/sse.md projects/stable_7_xen/contrib/gcc/config/i386/xmmintrin.h projects/stable_7_xen/contrib/gcc/config/mips/predicates.md projects/stable_7_xen/contrib/gcc/config/rs6000/rs6000.c projects/stable_7_xen/contrib/gcc/config/s390/s390.md projects/stable_7_xen/contrib/gcc/cp/ChangeLog projects/stable_7_xen/contrib/gcc/cp/call.c projects/stable_7_xen/contrib/gcc/cp/cp-tree.h projects/stable_7_xen/contrib/gcc/cp/cxx-pretty-print.c projects/stable_7_xen/contrib/gcc/cp/decl.c projects/stable_7_xen/contrib/gcc/cp/decl2.c projects/stable_7_xen/contrib/gcc/cp/error.c projects/stable_7_xen/contrib/gcc/cp/lex.c projects/stable_7_xen/contrib/gcc/cp/name-lookup.c projects/stable_7_xen/contrib/gcc/cp/pt.c projects/stable_7_xen/contrib/gcc/cp/semantics.c projects/stable_7_xen/contrib/gcc/cp/typeck.c projects/stable_7_xen/contrib/gcc/doc/contrib.texi projects/stable_7_xen/contrib/gcc/doc/extend.texi projects/stable_7_xen/contrib/gcc/doc/gcc.1 projects/stable_7_xen/contrib/gcc/doc/invoke.texi projects/stable_7_xen/contrib/gcc/dwarf2out.c projects/stable_7_xen/contrib/gcc/expr.c projects/stable_7_xen/contrib/gcc/fold-const.c projects/stable_7_xen/contrib/gcc/gimplify.c projects/stable_7_xen/contrib/gcc/reload1.c projects/stable_7_xen/contrib/gcc/simplify-rtx.c projects/stable_7_xen/contrib/gcc/target-def.h projects/stable_7_xen/contrib/gcc/target.h projects/stable_7_xen/contrib/gcc/targhooks.c projects/stable_7_xen/contrib/gcc/targhooks.h projects/stable_7_xen/contrib/gcc/tree-if-conv.c projects/stable_7_xen/contrib/gcc/tree-ssa-structalias.c projects/stable_7_xen/contrib/gcc/tree-vect-analyze.c projects/stable_7_xen/contrib/gcc/tree-vect-patterns.c projects/stable_7_xen/contrib/gcc/tree.c projects/stable_7_xen/contrib/gcc/tree.h projects/stable_7_xen/contrib/groff/font/devutf8/R.proto projects/stable_7_xen/contrib/groff/tmac/an-old.tmac projects/stable_7_xen/contrib/groff/tmac/doc-common projects/stable_7_xen/contrib/groff/tmac/doc-old.tmac projects/stable_7_xen/contrib/groff/tmac/doc-syms projects/stable_7_xen/contrib/groff/tmac/doc.tmac projects/stable_7_xen/contrib/groff/tmac/groff_mdoc.man projects/stable_7_xen/contrib/libstdc++/ChangeLog projects/stable_7_xen/contrib/libstdc++/include/std/std_valarray.h projects/stable_7_xen/contrib/libstdc++/include/tr1/random projects/stable_7_xen/contrib/lukemftp/src/main.c projects/stable_7_xen/contrib/top/display.c projects/stable_7_xen/crypto/openssl/CHANGES projects/stable_7_xen/crypto/openssl/FAQ projects/stable_7_xen/crypto/openssl/Makefile projects/stable_7_xen/crypto/openssl/NEWS projects/stable_7_xen/crypto/openssl/README projects/stable_7_xen/crypto/openssl/crypto/evp/p_sign.c projects/stable_7_xen/crypto/openssl/crypto/evp/p_verify.c projects/stable_7_xen/crypto/openssl/crypto/jpake/jpake.c projects/stable_7_xen/crypto/openssl/crypto/jpake/jpake.h projects/stable_7_xen/crypto/openssl/crypto/jpake/jpake_err.c projects/stable_7_xen/crypto/openssl/crypto/opensslv.h projects/stable_7_xen/crypto/openssl/crypto/stack/safestack.h projects/stable_7_xen/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod projects/stable_7_xen/crypto/openssl/openssl.spec projects/stable_7_xen/crypto/openssl/ssl/s3_clnt.c projects/stable_7_xen/crypto/openssl/ssl/s3_srvr.c projects/stable_7_xen/crypto/openssl/ssl/t1_lib.c projects/stable_7_xen/etc/defaults/periodic.conf projects/stable_7_xen/etc/defaults/rc.conf projects/stable_7_xen/etc/devd.conf projects/stable_7_xen/etc/namedb/named.conf projects/stable_7_xen/etc/periodic/daily/310.accounting projects/stable_7_xen/etc/periodic/daily/Makefile projects/stable_7_xen/etc/periodic/security/Makefile projects/stable_7_xen/etc/rc projects/stable_7_xen/etc/rc.d/accounting projects/stable_7_xen/etc/rc.d/devd (contents, props changed) projects/stable_7_xen/etc/rc.d/mountcritlocal projects/stable_7_xen/etc/rc.d/named projects/stable_7_xen/etc/rc.d/rpcbind projects/stable_7_xen/etc/rc.d/tmp (contents, props changed) projects/stable_7_xen/etc/rc.subr projects/stable_7_xen/etc/termcap.small projects/stable_7_xen/games/fortune/datfiles/fortunes projects/stable_7_xen/games/fortune/datfiles/fortunes-o.real projects/stable_7_xen/gnu/usr.bin/cc/include/Makefile projects/stable_7_xen/gnu/usr.bin/groff/tmac/mdoc.local (contents, props changed) projects/stable_7_xen/include/assert.h projects/stable_7_xen/lib/csu/i386-elf/crt1_s.S projects/stable_7_xen/lib/csu/ia64/Makefile projects/stable_7_xen/lib/libc/arm/gen/modf.c projects/stable_7_xen/lib/libc/gen/errlst.c projects/stable_7_xen/lib/libc/gen/syslog.c projects/stable_7_xen/lib/libc/ia64/gen/modf.c projects/stable_7_xen/lib/libc/powerpc/gen/modf.c projects/stable_7_xen/lib/libc/rpc/PSD.doc/rpc.prog.ms projects/stable_7_xen/lib/libc/rpc/svc_vc.c projects/stable_7_xen/lib/libc/stdio/freopen.c projects/stable_7_xen/lib/libc/stdlib/atol.3 projects/stable_7_xen/lib/libc/string/ffs.3 projects/stable_7_xen/lib/libc/string/strerror.3 projects/stable_7_xen/lib/libc/string/strerror.c projects/stable_7_xen/lib/libc/sys/cpuset_getaffinity.2 projects/stable_7_xen/lib/libc/sys/getfh.2 projects/stable_7_xen/lib/libc/sys/getgroups.2 projects/stable_7_xen/lib/libc/sys/kldstat.2 projects/stable_7_xen/lib/libc/sys/mknod.2 projects/stable_7_xen/lib/libc/sys/setpgid.2 projects/stable_7_xen/lib/libc/yp/xdryp.c projects/stable_7_xen/lib/libdevstat/devstat.c projects/stable_7_xen/lib/libelf/elf.3 projects/stable_7_xen/lib/libelf/elf_begin.3 projects/stable_7_xen/lib/libelf/elf_cntl.3 projects/stable_7_xen/lib/libelf/elf_end.3 projects/stable_7_xen/lib/libelf/elf_errmsg.3 projects/stable_7_xen/lib/libelf/elf_fill.3 projects/stable_7_xen/lib/libelf/elf_flagdata.3 projects/stable_7_xen/lib/libelf/elf_getarhdr.3 projects/stable_7_xen/lib/libelf/elf_getarsym.3 projects/stable_7_xen/lib/libelf/elf_getbase.3 projects/stable_7_xen/lib/libelf/elf_getdata.3 projects/stable_7_xen/lib/libelf/elf_getident.3 projects/stable_7_xen/lib/libelf/elf_getphnum.3 projects/stable_7_xen/lib/libelf/elf_getscn.3 projects/stable_7_xen/lib/libelf/elf_getshnum.3 projects/stable_7_xen/lib/libelf/elf_getshstrndx.3 projects/stable_7_xen/lib/libelf/elf_hash.3 projects/stable_7_xen/lib/libelf/elf_kind.3 projects/stable_7_xen/lib/libelf/elf_memory.3 projects/stable_7_xen/lib/libelf/elf_next.3 projects/stable_7_xen/lib/libelf/elf_rand.3 projects/stable_7_xen/lib/libelf/elf_rawfile.3 projects/stable_7_xen/lib/libelf/elf_strptr.3 projects/stable_7_xen/lib/libelf/elf_update.3 projects/stable_7_xen/lib/libelf/elf_version.3 projects/stable_7_xen/lib/libelf/gelf.3 projects/stable_7_xen/lib/libelf/gelf_checksum.3 projects/stable_7_xen/lib/libelf/gelf_fsize.3 projects/stable_7_xen/lib/libelf/gelf_getcap.3 projects/stable_7_xen/lib/libelf/gelf_getclass.3 projects/stable_7_xen/lib/libelf/gelf_getdyn.3 projects/stable_7_xen/lib/libelf/gelf_getehdr.3 projects/stable_7_xen/lib/libelf/gelf_getmove.3 projects/stable_7_xen/lib/libelf/gelf_getphdr.3 projects/stable_7_xen/lib/libelf/gelf_getrel.3 projects/stable_7_xen/lib/libelf/gelf_getrela.3 projects/stable_7_xen/lib/libelf/gelf_getshdr.3 projects/stable_7_xen/lib/libelf/gelf_getsym.3 projects/stable_7_xen/lib/libelf/gelf_getsyminfo.3 projects/stable_7_xen/lib/libelf/gelf_getsymshndx.3 projects/stable_7_xen/lib/libelf/gelf_newehdr.3 projects/stable_7_xen/lib/libelf/gelf_newphdr.3 projects/stable_7_xen/lib/libelf/gelf_update_ehdr.3 projects/stable_7_xen/lib/libelf/gelf_xlatetof.3 projects/stable_7_xen/lib/libfetch/common.c projects/stable_7_xen/lib/libfetch/ftp.c projects/stable_7_xen/lib/libfetch/http.c projects/stable_7_xen/lib/libkse/thread/thr_sig.c projects/stable_7_xen/lib/libutil/humanize_number.3 projects/stable_7_xen/lib/libutil/humanize_number.c projects/stable_7_xen/libexec/rtld-elf/rtld.c projects/stable_7_xen/libexec/talkd/announce.c projects/stable_7_xen/release/Makefile projects/stable_7_xen/release/doc/en_US.ISO8859-1/errata/article.sgml projects/stable_7_xen/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/stable_7_xen/release/doc/share/sgml/release.dsl projects/stable_7_xen/release/doc/share/sgml/release.ent projects/stable_7_xen/release/scripts/package-split.py projects/stable_7_xen/sbin/fsck_ffs/fsck_ffs.8 projects/stable_7_xen/sbin/geom/class/journal/gjournal.8 projects/stable_7_xen/sbin/growfs/growfs.c projects/stable_7_xen/sbin/ifconfig/ifconfig.8 projects/stable_7_xen/sbin/ifconfig/ifmedia.c projects/stable_7_xen/sbin/ipfw/main.c projects/stable_7_xen/sbin/mdconfig/mdconfig.c projects/stable_7_xen/sbin/newfs/newfs.8 projects/stable_7_xen/sbin/newfs_msdos/newfs_msdos.8 projects/stable_7_xen/secure/lib/libcrypto/Makefile projects/stable_7_xen/secure/lib/libcrypto/Makefile.inc projects/stable_7_xen/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/ASN1_STRING_length.3 projects/stable_7_xen/secure/lib/libcrypto/man/ASN1_STRING_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 projects/stable_7_xen/secure/lib/libcrypto/man/ASN1_generate_nconf.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_ctrl.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_base64.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_buffer.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_cipher.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_md.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_null.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_f_ssl.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_find_type.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_push.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_read.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_accept.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_bio.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_connect.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_fd.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_file.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_mem.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_null.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_s_socket.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_set_callback.3 projects/stable_7_xen/secure/lib/libcrypto/man/BIO_should_retry.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_BLINDING_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_CTX_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_CTX_start.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_add.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_add_word.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_bn2bin.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_cmp.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_copy.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_generate_prime.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_mod_inverse.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_num_bytes.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_rand.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_set_bit.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_swap.3 projects/stable_7_xen/secure/lib/libcrypto/man/BN_zero.3 projects/stable_7_xen/secure/lib/libcrypto/man/CONF_modules_free.3 projects/stable_7_xen/secure/lib/libcrypto/man/CONF_modules_load_file.3 projects/stable_7_xen/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_generate_key.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_generate_parameters.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_get_ex_new_index.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_set_method.3 projects/stable_7_xen/secure/lib/libcrypto/man/DH_size.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_SIG_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_do_sign.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_dup_DH.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_generate_key.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_generate_parameters.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_set_method.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_sign.3 projects/stable_7_xen/secure/lib/libcrypto/man/DSA_size.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_GET_LIB.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_clear_error.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_error_string.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_get_error.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_load_strings.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_print_errors.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_put_error.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_remove_state.3 projects/stable_7_xen/secure/lib/libcrypto/man/ERR_set_mark.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_BytesToKey.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_DigestInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_EncryptInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_OpenInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_PKEY_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_SealInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_SignInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/EVP_VerifyInit.3 projects/stable_7_xen/secure/lib/libcrypto/man/OBJ_nid2obj.3 projects/stable_7_xen/secure/lib/libcrypto/man/OPENSSL_Applink.3 projects/stable_7_xen/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 projects/stable_7_xen/secure/lib/libcrypto/man/OPENSSL_config.3 projects/stable_7_xen/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 projects/stable_7_xen/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 projects/stable_7_xen/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS12_create.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS12_parse.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS7_decrypt.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS7_encrypt.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS7_sign.3 projects/stable_7_xen/secure/lib/libcrypto/man/PKCS7_verify.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_add.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_bytes.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_cleanup.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_egd.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_load_file.3 projects/stable_7_xen/secure/lib/libcrypto/man/RAND_set_rand_method.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_blinding_on.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_check_key.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_generate_key.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_print.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_private_encrypt.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_public_encrypt.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_set_method.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_sign.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 projects/stable_7_xen/secure/lib/libcrypto/man/RSA_size.3 projects/stable_7_xen/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 projects/stable_7_xen/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 projects/stable_7_xen/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 projects/stable_7_xen/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 projects/stable_7_xen/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 projects/stable_7_xen/secure/lib/libcrypto/man/X509_NAME_print_ex.3 projects/stable_7_xen/secure/lib/libcrypto/man/X509_new.3 projects/stable_7_xen/secure/lib/libcrypto/man/bio.3 projects/stable_7_xen/secure/lib/libcrypto/man/blowfish.3 projects/stable_7_xen/secure/lib/libcrypto/man/bn.3 projects/stable_7_xen/secure/lib/libcrypto/man/bn_internal.3 projects/stable_7_xen/secure/lib/libcrypto/man/buffer.3 projects/stable_7_xen/secure/lib/libcrypto/man/crypto.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_DHparams.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509_CRL.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509_NAME.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509_REQ.3 projects/stable_7_xen/secure/lib/libcrypto/man/d2i_X509_SIG.3 projects/stable_7_xen/secure/lib/libcrypto/man/des.3 projects/stable_7_xen/secure/lib/libcrypto/man/dh.3 projects/stable_7_xen/secure/lib/libcrypto/man/dsa.3 projects/stable_7_xen/secure/lib/libcrypto/man/ecdsa.3 projects/stable_7_xen/secure/lib/libcrypto/man/engine.3 projects/stable_7_xen/secure/lib/libcrypto/man/err.3 projects/stable_7_xen/secure/lib/libcrypto/man/evp.3 projects/stable_7_xen/secure/lib/libcrypto/man/hmac.3 projects/stable_7_xen/secure/lib/libcrypto/man/lh_stats.3 projects/stable_7_xen/secure/lib/libcrypto/man/lhash.3 projects/stable_7_xen/secure/lib/libcrypto/man/md5.3 projects/stable_7_xen/secure/lib/libcrypto/man/mdc2.3 projects/stable_7_xen/secure/lib/libcrypto/man/pem.3 projects/stable_7_xen/secure/lib/libcrypto/man/rand.3 projects/stable_7_xen/secure/lib/libcrypto/man/rc4.3 projects/stable_7_xen/secure/lib/libcrypto/man/ripemd.3 projects/stable_7_xen/secure/lib/libcrypto/man/rsa.3 projects/stable_7_xen/secure/lib/libcrypto/man/sha.3 projects/stable_7_xen/secure/lib/libcrypto/man/threads.3 projects/stable_7_xen/secure/lib/libcrypto/man/ui.3 projects/stable_7_xen/secure/lib/libcrypto/man/ui_compat.3 projects/stable_7_xen/secure/lib/libcrypto/man/x509.3 projects/stable_7_xen/secure/lib/libssl/Makefile projects/stable_7_xen/secure/usr.bin/openssl/man/CA.pl.1 projects/stable_7_xen/secure/usr.bin/openssl/man/asn1parse.1 projects/stable_7_xen/secure/usr.bin/openssl/man/ca.1 projects/stable_7_xen/secure/usr.bin/openssl/man/ciphers.1 projects/stable_7_xen/secure/usr.bin/openssl/man/crl.1 projects/stable_7_xen/secure/usr.bin/openssl/man/crl2pkcs7.1 projects/stable_7_xen/secure/usr.bin/openssl/man/dgst.1 projects/stable_7_xen/secure/usr.bin/openssl/man/dhparam.1 projects/stable_7_xen/secure/usr.bin/openssl/man/dsa.1 projects/stable_7_xen/secure/usr.bin/openssl/man/dsaparam.1 projects/stable_7_xen/secure/usr.bin/openssl/man/ec.1 projects/stable_7_xen/secure/usr.bin/openssl/man/ecparam.1 projects/stable_7_xen/secure/usr.bin/openssl/man/enc.1 projects/stable_7_xen/secure/usr.bin/openssl/man/errstr.1 projects/stable_7_xen/secure/usr.bin/openssl/man/gendsa.1 projects/stable_7_xen/secure/usr.bin/openssl/man/genrsa.1 projects/stable_7_xen/secure/usr.bin/openssl/man/nseq.1 projects/stable_7_xen/secure/usr.bin/openssl/man/ocsp.1 projects/stable_7_xen/secure/usr.bin/openssl/man/openssl.1 projects/stable_7_xen/secure/usr.bin/openssl/man/passwd.1 projects/stable_7_xen/secure/usr.bin/openssl/man/pkcs12.1 projects/stable_7_xen/secure/usr.bin/openssl/man/pkcs7.1 projects/stable_7_xen/secure/usr.bin/openssl/man/pkcs8.1 projects/stable_7_xen/secure/usr.bin/openssl/man/rand.1 projects/stable_7_xen/secure/usr.bin/openssl/man/req.1 projects/stable_7_xen/secure/usr.bin/openssl/man/rsa.1 projects/stable_7_xen/secure/usr.bin/openssl/man/rsautl.1 projects/stable_7_xen/secure/usr.bin/openssl/man/s_client.1 projects/stable_7_xen/secure/usr.bin/openssl/man/s_server.1 projects/stable_7_xen/secure/usr.bin/openssl/man/s_time.1 projects/stable_7_xen/secure/usr.bin/openssl/man/sess_id.1 projects/stable_7_xen/secure/usr.bin/openssl/man/smime.1 projects/stable_7_xen/secure/usr.bin/openssl/man/speed.1 projects/stable_7_xen/secure/usr.bin/openssl/man/spkac.1 projects/stable_7_xen/secure/usr.bin/openssl/man/verify.1 projects/stable_7_xen/secure/usr.bin/openssl/man/version.1 projects/stable_7_xen/secure/usr.bin/openssl/man/x509.1 projects/stable_7_xen/secure/usr.bin/openssl/man/x509v3_config.1 projects/stable_7_xen/share/doc/papers/devfs/paper.me projects/stable_7_xen/share/examples/cvsup/cvs-supfile projects/stable_7_xen/share/examples/cvsup/ports-supfile projects/stable_7_xen/share/examples/etc/make.conf projects/stable_7_xen/share/examples/pf/pf.conf projects/stable_7_xen/share/man/man3/queue.3 projects/stable_7_xen/share/man/man4/Makefile projects/stable_7_xen/share/man/man4/altq.4 projects/stable_7_xen/share/man/man4/amdtemp.4 projects/stable_7_xen/share/man/man4/ath_hal.4 projects/stable_7_xen/share/man/man4/axe.4 projects/stable_7_xen/share/man/man4/ip6.4 projects/stable_7_xen/share/man/man4/jme.4 projects/stable_7_xen/share/man/man4/miibus.4 projects/stable_7_xen/share/man/man4/nfe.4 projects/stable_7_xen/share/man/man4/ng_one2many.4 projects/stable_7_xen/share/man/man4/nve.4 projects/stable_7_xen/share/man/man4/re.4 projects/stable_7_xen/share/man/man4/sge.4 projects/stable_7_xen/share/man/man4/splash.4 projects/stable_7_xen/share/man/man4/tcp.4 projects/stable_7_xen/share/man/man4/vlan.4 projects/stable_7_xen/share/man/man5/devfs.5 projects/stable_7_xen/share/man/man5/fdescfs.5 projects/stable_7_xen/share/man/man5/make.conf.5 projects/stable_7_xen/share/man/man5/quota.user.5 projects/stable_7_xen/share/man/man5/rc.conf.5 projects/stable_7_xen/share/man/man5/tmpfs.5 projects/stable_7_xen/share/man/man5/xfs.5 projects/stable_7_xen/share/man/man7/build.7 projects/stable_7_xen/share/man/man7/security.7 projects/stable_7_xen/share/man/man9/Makefile projects/stable_7_xen/share/man/man9/bus_space.9 projects/stable_7_xen/share/man/man9/devclass_get_maxunit.9 projects/stable_7_xen/share/mk/bsd.cpu.mk projects/stable_7_xen/share/syscons/fonts/INDEX.fonts projects/stable_7_xen/share/syscons/keymaps/Makefile projects/stable_7_xen/share/zoneinfo/africa projects/stable_7_xen/share/zoneinfo/asia projects/stable_7_xen/share/zoneinfo/australasia projects/stable_7_xen/share/zoneinfo/etcetera projects/stable_7_xen/share/zoneinfo/europe projects/stable_7_xen/share/zoneinfo/leapseconds projects/stable_7_xen/share/zoneinfo/northamerica projects/stable_7_xen/share/zoneinfo/southamerica projects/stable_7_xen/share/zoneinfo/zone.tab projects/stable_7_xen/sys/amd64/amd64/machdep.c projects/stable_7_xen/sys/amd64/amd64/trap.c projects/stable_7_xen/sys/amd64/conf/NOTES projects/stable_7_xen/sys/amd64/ia32/ia32_signal.c projects/stable_7_xen/sys/amd64/include/specialreg.h projects/stable_7_xen/sys/amd64/linux32/linux32_dummy.c projects/stable_7_xen/sys/amd64/linux32/linux32_proto.h projects/stable_7_xen/sys/amd64/linux32/linux32_syscall.h projects/stable_7_xen/sys/amd64/linux32/linux32_sysent.c projects/stable_7_xen/sys/amd64/linux32/linux32_sysvec.c projects/stable_7_xen/sys/amd64/linux32/syscalls.master projects/stable_7_xen/sys/arm/arm/machdep.c projects/stable_7_xen/sys/arm/xscale/i80321/iq80321.c projects/stable_7_xen/sys/boot/common/interp.c projects/stable_7_xen/sys/boot/ficl/words.c projects/stable_7_xen/sys/boot/forth/loader.conf projects/stable_7_xen/sys/boot/i386/cdboot/cdboot.s projects/stable_7_xen/sys/boot/pc98/cdboot/cdboot.s projects/stable_7_xen/sys/cam/cam_xpt.c projects/stable_7_xen/sys/cam/scsi/scsi_da.c projects/stable_7_xen/sys/cam/scsi/scsi_sa.c projects/stable_7_xen/sys/cddl/compat/opensolaris/sys/cyclic_impl.h projects/stable_7_xen/sys/cddl/dev/cyclic/cyclic.c projects/stable_7_xen/sys/cddl/dev/cyclic/i386/cyclic_machdep.c projects/stable_7_xen/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/stable_7_xen/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/stable_7_xen/sys/compat/linprocfs/linprocfs.c projects/stable_7_xen/sys/compat/linux/linux_futex.c projects/stable_7_xen/sys/compat/linux/linux_misc.c projects/stable_7_xen/sys/compat/linux/linux_misc.h projects/stable_7_xen/sys/compat/linux/linux_socket.c projects/stable_7_xen/sys/compat/linux/linux_socket.h projects/stable_7_xen/sys/compat/ndis/kern_ndis.c projects/stable_7_xen/sys/compat/ndis/subr_ntoskrnl.c projects/stable_7_xen/sys/conf/NOTES projects/stable_7_xen/sys/conf/files projects/stable_7_xen/sys/conf/files.sparc64 projects/stable_7_xen/sys/conf/files.sun4v projects/stable_7_xen/sys/conf/kern.pre.mk projects/stable_7_xen/sys/conf/newvers.sh projects/stable_7_xen/sys/crypto/sha2/sha2.c projects/stable_7_xen/sys/ddb/db_command.c projects/stable_7_xen/sys/dev/aac/aac.c projects/stable_7_xen/sys/dev/aac/aac_cam.c projects/stable_7_xen/sys/dev/acpi_support/acpi_fujitsu.c projects/stable_7_xen/sys/dev/acpica/acpi_battery.c projects/stable_7_xen/sys/dev/acpica/acpi_cmbat.c projects/stable_7_xen/sys/dev/acpica/acpi_pcib.c projects/stable_7_xen/sys/dev/acpica/acpi_pcib_acpi.c projects/stable_7_xen/sys/dev/acpica/acpi_pcib_pci.c projects/stable_7_xen/sys/dev/acpica/acpi_pcibvar.h projects/stable_7_xen/sys/dev/acpica/acpi_resource.c projects/stable_7_xen/sys/dev/acpica/acpi_smbat.c projects/stable_7_xen/sys/dev/acpica/acpiio.h projects/stable_7_xen/sys/dev/advansys/adwcam.c projects/stable_7_xen/sys/dev/ae/if_ae.c projects/stable_7_xen/sys/dev/ae/if_aevar.h projects/stable_7_xen/sys/dev/age/if_age.c projects/stable_7_xen/sys/dev/age/if_agevar.h projects/stable_7_xen/sys/dev/alc/if_alc.c projects/stable_7_xen/sys/dev/alc/if_alcreg.h projects/stable_7_xen/sys/dev/alc/if_alcvar.h projects/stable_7_xen/sys/dev/ale/if_ale.c projects/stable_7_xen/sys/dev/ale/if_alevar.h projects/stable_7_xen/sys/dev/asr/i2omsg.h projects/stable_7_xen/sys/dev/ata/ata-chipset.c projects/stable_7_xen/sys/dev/ata/ata-pci.h projects/stable_7_xen/sys/dev/ata/ata-queue.c projects/stable_7_xen/sys/dev/bge/if_bge.c projects/stable_7_xen/sys/dev/bge/if_bgereg.h projects/stable_7_xen/sys/dev/bktr/bktr_card.c projects/stable_7_xen/sys/dev/bktr/bktr_os.c projects/stable_7_xen/sys/dev/ctau/ctau.c projects/stable_7_xen/sys/dev/ctau/ctddk.h projects/stable_7_xen/sys/dev/cxgb/common/cxgb_common.h projects/stable_7_xen/sys/dev/cxgb/common/cxgb_t3_hw.c projects/stable_7_xen/sys/dev/cxgb/cxgb_adapter.h projects/stable_7_xen/sys/dev/cxgb/cxgb_main.c projects/stable_7_xen/sys/dev/cxgb/cxgb_multiq.c projects/stable_7_xen/sys/dev/cxgb/cxgb_sge.c projects/stable_7_xen/sys/dev/cxgb/cxgb_t3fw.h projects/stable_7_xen/sys/dev/cxgb/ulp/tom/cxgb_tom.c projects/stable_7_xen/sys/dev/dc/dcphy.c projects/stable_7_xen/sys/dev/dc/if_dc.c projects/stable_7_xen/sys/dev/dc/if_dcreg.h projects/stable_7_xen/sys/dev/dc/pnphy.c projects/stable_7_xen/sys/dev/drm/drm_irq.c projects/stable_7_xen/sys/dev/drm/mach64_dma.c projects/stable_7_xen/sys/dev/drm/r300_reg.h projects/stable_7_xen/sys/dev/e1000/e1000_82575.c projects/stable_7_xen/sys/dev/e1000/e1000_ich8lan.c projects/stable_7_xen/sys/dev/e1000/if_em.c projects/stable_7_xen/sys/dev/e1000/if_igb.c projects/stable_7_xen/sys/dev/ep/if_epreg.h projects/stable_7_xen/sys/dev/fdc/fdc.c projects/stable_7_xen/sys/dev/fxp/if_fxp.c projects/stable_7_xen/sys/dev/if_ndis/if_ndis_pccard.c projects/stable_7_xen/sys/dev/if_ndis/if_ndis_pci.c projects/stable_7_xen/sys/dev/ixgb/ixgb_ee.c projects/stable_7_xen/sys/dev/jme/if_jme.c projects/stable_7_xen/sys/dev/jme/if_jmereg.h projects/stable_7_xen/sys/dev/jme/if_jmevar.h projects/stable_7_xen/sys/dev/malo/if_malohal.h projects/stable_7_xen/sys/dev/mfi/mfi_cam.c projects/stable_7_xen/sys/dev/mii/atphy.c projects/stable_7_xen/sys/dev/mii/brgphy.c projects/stable_7_xen/sys/dev/mii/ciphy.c projects/stable_7_xen/sys/dev/mii/e1000phy.c projects/stable_7_xen/sys/dev/mii/ip1000phy.c projects/stable_7_xen/sys/dev/mii/jmphy.c projects/stable_7_xen/sys/dev/mii/jmphyreg.h projects/stable_7_xen/sys/dev/mii/mii_physubr.c projects/stable_7_xen/sys/dev/mii/miidevs projects/stable_7_xen/sys/dev/mii/nsgphy.c projects/stable_7_xen/sys/dev/mii/rgephy.c projects/stable_7_xen/sys/dev/mii/xmphy.c projects/stable_7_xen/sys/dev/mpt/mpt_cam.c projects/stable_7_xen/sys/dev/mpt/mpt_pci.c projects/stable_7_xen/sys/dev/mxge/if_mxge.c projects/stable_7_xen/sys/dev/mxge/mxge_lro.c projects/stable_7_xen/sys/dev/nfe/if_nfe.c projects/stable_7_xen/sys/dev/nfe/if_nfevar.h projects/stable_7_xen/sys/dev/nxge/xgehal/xgehal-device.c projects/stable_7_xen/sys/dev/nxge/xgehal/xgehal-ring-fp.c projects/stable_7_xen/sys/dev/pci/pci.c projects/stable_7_xen/sys/dev/pci/pcib_private.h projects/stable_7_xen/sys/dev/pci/pcivar.h projects/stable_7_xen/sys/dev/pci/vga_pci.c projects/stable_7_xen/sys/dev/puc/pucdata.c projects/stable_7_xen/sys/dev/random/randomdev_soft.c projects/stable_7_xen/sys/dev/re/if_re.c projects/stable_7_xen/sys/dev/sis/if_sis.c projects/stable_7_xen/sys/dev/sis/if_sisreg.h projects/stable_7_xen/sys/dev/sound/pci/emu10k1.c projects/stable_7_xen/sys/dev/sound/pci/emu10kx.c projects/stable_7_xen/sys/dev/sound/pci/es137x.c projects/stable_7_xen/sys/dev/sound/pci/hda/hdac.c projects/stable_7_xen/sys/dev/sound/pcm/dsp.c projects/stable_7_xen/sys/dev/sym/sym_fw1.h projects/stable_7_xen/sys/dev/sym/sym_fw2.h projects/stable_7_xen/sys/dev/ti/if_ti.c projects/stable_7_xen/sys/dev/uart/uart_dev_ns8250.c projects/stable_7_xen/sys/dev/usb/uftdi.c projects/stable_7_xen/sys/dev/usb/umass.c projects/stable_7_xen/sys/dev/usb/usbdevs projects/stable_7_xen/sys/dev/vx/if_vxreg.h projects/stable_7_xen/sys/dev/wpi/if_wpi.c projects/stable_7_xen/sys/fs/devfs/devfs_rule.c projects/stable_7_xen/sys/fs/fdescfs/fdesc_vnops.c projects/stable_7_xen/sys/fs/msdosfs/msdosfs_vnops.c projects/stable_7_xen/sys/fs/nullfs/null_vnops.c projects/stable_7_xen/sys/gdb/gdb_main.c projects/stable_7_xen/sys/gdb/gdb_packet.c projects/stable_7_xen/sys/geom/eli/g_eli.c projects/stable_7_xen/sys/geom/geom_event.c projects/stable_7_xen/sys/geom/geom_vfs.c projects/stable_7_xen/sys/geom/label/g_label.c projects/stable_7_xen/sys/geom/part/g_part_apm.c projects/stable_7_xen/sys/geom/part/g_part_ebr.c projects/stable_7_xen/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/stable_7_xen/sys/i386/conf/GENERIC projects/stable_7_xen/sys/i386/cpufreq/est.c projects/stable_7_xen/sys/i386/i386/initcpu.c projects/stable_7_xen/sys/i386/i386/machdep.c projects/stable_7_xen/sys/i386/i386/trap.c projects/stable_7_xen/sys/i386/include/specialreg.h projects/stable_7_xen/sys/i386/isa/vesa.c projects/stable_7_xen/sys/i386/linux/linux_dummy.c projects/stable_7_xen/sys/i386/linux/linux_proto.h projects/stable_7_xen/sys/i386/linux/linux_syscall.h projects/stable_7_xen/sys/i386/linux/linux_sysent.c projects/stable_7_xen/sys/i386/linux/syscalls.master projects/stable_7_xen/sys/ia64/ia64/machdep.c projects/stable_7_xen/sys/kern/imgact_shell.c projects/stable_7_xen/sys/kern/init_main.c projects/stable_7_xen/sys/kern/kern_conf.c projects/stable_7_xen/sys/kern/kern_context.c projects/stable_7_xen/sys/kern/kern_cpuset.c projects/stable_7_xen/sys/kern/kern_exec.c projects/stable_7_xen/sys/kern/kern_exit.c projects/stable_7_xen/sys/kern/kern_fork.c projects/stable_7_xen/sys/kern/kern_intr.c projects/stable_7_xen/sys/kern/kern_kthread.c projects/stable_7_xen/sys/kern/kern_ktrace.c projects/stable_7_xen/sys/kern/kern_proc.c projects/stable_7_xen/sys/kern/kern_synch.c projects/stable_7_xen/sys/kern/kern_sysctl.c projects/stable_7_xen/sys/kern/kern_umtx.c projects/stable_7_xen/sys/kern/p1003_1b.c projects/stable_7_xen/sys/kern/posix4_mib.c projects/stable_7_xen/sys/kern/sched_4bsd.c projects/stable_7_xen/sys/kern/sched_ule.c projects/stable_7_xen/sys/kern/subr_autoconf.c projects/stable_7_xen/sys/kern/subr_kdb.c projects/stable_7_xen/sys/kern/subr_turnstile.c projects/stable_7_xen/sys/kern/subr_unit.c projects/stable_7_xen/sys/kern/subr_witness.c projects/stable_7_xen/sys/kern/uipc_mbuf.c projects/stable_7_xen/sys/kern/uipc_sem.c projects/stable_7_xen/sys/kern/uipc_usrreq.c projects/stable_7_xen/sys/kern/vfs_bio.c projects/stable_7_xen/sys/kern/vfs_subr.c projects/stable_7_xen/sys/modules/Makefile projects/stable_7_xen/sys/modules/mii/Makefile projects/stable_7_xen/sys/net/if_gif.c projects/stable_7_xen/sys/net/if_gre.c projects/stable_7_xen/sys/net/if_media.c projects/stable_7_xen/sys/net/if_media.h projects/stable_7_xen/sys/net/route.c projects/stable_7_xen/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c projects/stable_7_xen/sys/netgraph/ng_one2many.c projects/stable_7_xen/sys/netgraph/ng_one2many.h projects/stable_7_xen/sys/netgraph/ng_patch.c projects/stable_7_xen/sys/netgraph/ng_source.c projects/stable_7_xen/sys/netinet/if_ether.c projects/stable_7_xen/sys/netinet/in_pcb.c projects/stable_7_xen/sys/netinet/in_pcb.h projects/stable_7_xen/sys/netinet/ip_fastfwd.c projects/stable_7_xen/sys/netinet/ip_input.c projects/stable_7_xen/sys/netinet/ip_output.c projects/stable_7_xen/sys/netinet/tcp_input.c projects/stable_7_xen/sys/netinet/tcp_offload.h projects/stable_7_xen/sys/netinet/tcp_subr.c projects/stable_7_xen/sys/netinet/tcp_syncache.c projects/stable_7_xen/sys/netinet/tcp_timer.c projects/stable_7_xen/sys/netinet/tcp_timewait.c projects/stable_7_xen/sys/netinet/tcp_usrreq.c projects/stable_7_xen/sys/netinet6/in6.h projects/stable_7_xen/sys/netinet6/in6_pcb.c projects/stable_7_xen/sys/netinet6/in6_src.c projects/stable_7_xen/sys/netinet6/nd6_nbr.c projects/stable_7_xen/sys/netinet6/udp6_usrreq.c projects/stable_7_xen/sys/netipsec/xform_ipcomp.c projects/stable_7_xen/sys/nfsserver/nfs_syscalls.c projects/stable_7_xen/sys/pc98/cbus/fdc.c projects/stable_7_xen/sys/pc98/pc98/machdep.c projects/stable_7_xen/sys/pci/if_rlreg.h projects/stable_7_xen/sys/powerpc/powerpc/machdep.c projects/stable_7_xen/sys/sparc64/include/asmacros.h projects/stable_7_xen/sys/sparc64/include/cpufunc.h projects/stable_7_xen/sys/sparc64/include/intr_machdep.h projects/stable_7_xen/sys/sparc64/include/iommureg.h projects/stable_7_xen/sys/sparc64/pci/apb.c projects/stable_7_xen/sys/sparc64/pci/fire.c projects/stable_7_xen/sys/sparc64/pci/ofw_pci.h projects/stable_7_xen/sys/sparc64/pci/ofw_pcib.c projects/stable_7_xen/sys/sparc64/pci/ofw_pcibus.c projects/stable_7_xen/sys/sparc64/pci/psycho.c projects/stable_7_xen/sys/sparc64/pci/psychovar.h projects/stable_7_xen/sys/sparc64/pci/schizo.c projects/stable_7_xen/sys/sparc64/pci/schizoreg.h projects/stable_7_xen/sys/sparc64/pci/schizovar.h projects/stable_7_xen/sys/sparc64/sbus/sbus.c projects/stable_7_xen/sys/sparc64/sparc64/intr_machdep.c projects/stable_7_xen/sys/sparc64/sparc64/machdep.c projects/stable_7_xen/sys/sparc64/sparc64/support.S projects/stable_7_xen/sys/sparc64/sparc64/tick.c projects/stable_7_xen/sys/sparc64/sparc64/tlb.c projects/stable_7_xen/sys/sparc64/sparc64/trap.c projects/stable_7_xen/sys/sun4v/sun4v/machdep.c projects/stable_7_xen/sys/sys/aac_ioctl.h projects/stable_7_xen/sys/sys/bus.h projects/stable_7_xen/sys/sys/copyright.h projects/stable_7_xen/sys/sys/ktrace.h projects/stable_7_xen/sys/sys/param.h projects/stable_7_xen/sys/sys/priority.h projects/stable_7_xen/sys/sys/proc.h projects/stable_7_xen/sys/sys/queue.h projects/stable_7_xen/sys/sys/sysctl.h projects/stable_7_xen/sys/sys/systm.h projects/stable_7_xen/sys/sys/taskqueue.h projects/stable_7_xen/sys/sys/umtx.h projects/stable_7_xen/sys/sys/user.h projects/stable_7_xen/sys/ufs/ffs/ffs_alloc.c projects/stable_7_xen/sys/ufs/ufs/dirhash.h projects/stable_7_xen/sys/ufs/ufs/ufs_dirhash.c projects/stable_7_xen/sys/vm/swap_pager.c projects/stable_7_xen/sys/vm/vm_map.c projects/stable_7_xen/sys/vm/vm_map.h projects/stable_7_xen/sys/vm/vm_object.c projects/stable_7_xen/tools/regression/acct/Makefile projects/stable_7_xen/tools/regression/acct/pack.c projects/stable_7_xen/tools/regression/acct/regress.t projects/stable_7_xen/tools/regression/bin/date/regress.sh projects/stable_7_xen/tools/regression/lib/libc/string/test-strerror.c projects/stable_7_xen/tools/test/malloc/Makefile projects/stable_7_xen/tools/test/malloc/main.c projects/stable_7_xen/tools/tools/aac/Makefile projects/stable_7_xen/tools/tools/aac/aac_checkq.c projects/stable_7_xen/tools/tools/iwi/Makefile projects/stable_7_xen/tools/tools/iwi/iwistats.c projects/stable_7_xen/tools/tools/tinybsd/tinybsd projects/stable_7_xen/usr.bin/checknr/checknr.c projects/stable_7_xen/usr.bin/cpuset/cpuset.1 projects/stable_7_xen/usr.bin/cpuset/cpuset.c projects/stable_7_xen/usr.bin/fetch/Makefile projects/stable_7_xen/usr.bin/find/find.1 projects/stable_7_xen/usr.bin/gcore/Makefile projects/stable_7_xen/usr.bin/gcore/elfcore.c projects/stable_7_xen/usr.bin/gcore/extern.h projects/stable_7_xen/usr.bin/gcore/gcore.1 projects/stable_7_xen/usr.bin/gcore/gcore.c projects/stable_7_xen/usr.bin/getopt/getopt.1 projects/stable_7_xen/usr.bin/gzip/zmore.1 projects/stable_7_xen/usr.bin/lex/misc.c projects/stable_7_xen/usr.bin/logger/logger.1 projects/stable_7_xen/usr.bin/logger/logger.c projects/stable_7_xen/usr.bin/m4/gnum4.c projects/stable_7_xen/usr.bin/mail/mail.1 projects/stable_7_xen/usr.bin/make/lst.c projects/stable_7_xen/usr.bin/netstat/sctp.c projects/stable_7_xen/usr.bin/rpcinfo/rpcinfo.c projects/stable_7_xen/usr.bin/stat/Makefile projects/stable_7_xen/usr.bin/stat/stat.1 projects/stable_7_xen/usr.bin/stat/stat.c projects/stable_7_xen/usr.bin/su/su.c projects/stable_7_xen/usr.bin/tip/tip/tip.h projects/stable_7_xen/usr.bin/top/top.local.1 projects/stable_7_xen/usr.bin/truss/setup.c projects/stable_7_xen/usr.bin/truss/syscalls.c projects/stable_7_xen/usr.bin/xinstall/xinstall.c projects/stable_7_xen/usr.bin/xlint/lint1/lint1.h projects/stable_7_xen/usr.sbin/boot0cfg/boot0cfg.c projects/stable_7_xen/usr.sbin/config/config.y projects/stable_7_xen/usr.sbin/config/mkmakefile.c projects/stable_7_xen/usr.sbin/config/mkoptions.c projects/stable_7_xen/usr.sbin/diskinfo/diskinfo.c projects/stable_7_xen/usr.sbin/faithd/faithd.c projects/stable_7_xen/usr.sbin/fdformat/fdformat.c projects/stable_7_xen/usr.sbin/freebsd-update/freebsd-update.sh projects/stable_7_xen/usr.sbin/mfiutil/Makefile projects/stable_7_xen/usr.sbin/mfiutil/mfi_cmd.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_config.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_evt.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_flash.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_patrol.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_show.c projects/stable_7_xen/usr.sbin/mfiutil/mfi_volume.c projects/stable_7_xen/usr.sbin/mfiutil/mfiutil.8 projects/stable_7_xen/usr.sbin/mountd/mountd.c projects/stable_7_xen/usr.sbin/moused/moused.8 projects/stable_7_xen/usr.sbin/moused/moused.c projects/stable_7_xen/usr.sbin/newsyslog/newsyslog.c projects/stable_7_xen/usr.sbin/nfsd/nfsd.c projects/stable_7_xen/usr.sbin/ntp/doc/ntp.conf.5 projects/stable_7_xen/usr.sbin/ntp/doc/ntpq.8 projects/stable_7_xen/usr.sbin/pkg_install/add/main.c projects/stable_7_xen/usr.sbin/pstat/pstat.c projects/stable_7_xen/usr.sbin/pw/pw_user.c projects/stable_7_xen/usr.sbin/rpcbind/util.c projects/stable_7_xen/usr.sbin/rtadvd/Makefile projects/stable_7_xen/usr.sbin/rtadvd/rtadvd.8 projects/stable_7_xen/usr.sbin/rtadvd/rtadvd.c projects/stable_7_xen/usr.sbin/sysinstall/devices.c projects/stable_7_xen/usr.sbin/sysinstall/dist.c projects/stable_7_xen/usr.sbin/sysinstall/install.c projects/stable_7_xen/usr.sbin/sysinstall/label.c projects/stable_7_xen/usr.sbin/sysinstall/menus.c Directory Properties: projects/stable_7_xen/ (props changed) projects/stable_7_xen/Makefile.inc1 (props changed) projects/stable_7_xen/bin/ (props changed) projects/stable_7_xen/bin/chflags/ (props changed) projects/stable_7_xen/bin/chio/ (props changed) projects/stable_7_xen/bin/cp/ (props changed) projects/stable_7_xen/bin/csh/ (props changed) projects/stable_7_xen/bin/dd/ (props changed) projects/stable_7_xen/bin/df/ (props changed) projects/stable_7_xen/bin/echo/ (props changed) projects/stable_7_xen/bin/ed/ (props changed) projects/stable_7_xen/bin/expr/ (props changed) projects/stable_7_xen/bin/kill/ (props changed) projects/stable_7_xen/bin/ln/ (props changed) projects/stable_7_xen/bin/ls/ (props changed) projects/stable_7_xen/bin/pax/ (props changed) projects/stable_7_xen/bin/ps/ (props changed) projects/stable_7_xen/bin/rm/ (props changed) projects/stable_7_xen/bin/sh/ (props changed) projects/stable_7_xen/bin/test/ (props changed) projects/stable_7_xen/cddl/contrib/opensolaris/ (props changed) projects/stable_7_xen/cddl/lib/libzpool/ (props changed) projects/stable_7_xen/contrib/bind9/ (props changed) projects/stable_7_xen/contrib/binutils/ (props changed) projects/stable_7_xen/contrib/bsnmp/ (props changed) projects/stable_7_xen/contrib/bsnmp/snmpd/bsnmpd.1 (props changed) projects/stable_7_xen/contrib/cpio/ (props changed) projects/stable_7_xen/contrib/csup/ (props changed) projects/stable_7_xen/contrib/expat/ (props changed) projects/stable_7_xen/contrib/gcc/ (props changed) projects/stable_7_xen/contrib/gdb/ (props changed) projects/stable_7_xen/contrib/gdtoa/ (props changed) projects/stable_7_xen/contrib/groff/ (props changed) projects/stable_7_xen/contrib/ipfilter/ (props changed) projects/stable_7_xen/contrib/less/ (props changed) projects/stable_7_xen/contrib/libpcap/ (props changed) projects/stable_7_xen/contrib/libstdc++/ (props changed) projects/stable_7_xen/contrib/lukemftp/ (props changed) projects/stable_7_xen/contrib/ncurses/ (props changed) projects/stable_7_xen/contrib/netcat/ (props changed) projects/stable_7_xen/contrib/ntp/ (props changed) projects/stable_7_xen/contrib/nvi/ (props changed) projects/stable_7_xen/contrib/pf/ (props changed) projects/stable_7_xen/contrib/sendmail/ (props changed) projects/stable_7_xen/contrib/smbfs/ (props changed) projects/stable_7_xen/contrib/tcp_wrappers/ (props changed) projects/stable_7_xen/contrib/tcsh/ (props changed) projects/stable_7_xen/contrib/telnet/ (props changed) projects/stable_7_xen/contrib/top/ (props changed) projects/stable_7_xen/contrib/traceroute/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/COPYING (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ChangeLog (props changed) projects/stable_7_xen/contrib/wpa_supplicant/FREEBSD-Xlist (props changed) projects/stable_7_xen/contrib/wpa_supplicant/FREEBSD-upgrade (props changed) projects/stable_7_xen/contrib/wpa_supplicant/Makefile (props changed) projects/stable_7_xen/contrib/wpa_supplicant/README (props changed) projects/stable_7_xen/contrib/wpa_supplicant/aes.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/aes.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/aes_wrap.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/aes_wrap.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/asn1.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/asn1.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/asn1_test.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/base64.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/base64.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/bignum.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/bignum.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/build_config.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config_file.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config_none.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config_ssid.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config_types.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/config_winreg.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto_cryptoapi.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto_gnutls.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto_internal.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto_libtomcrypt.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/crypto_none.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_dbus.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_dbus.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_dbus_handlers.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_dbus_handlers.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_named_pipe.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_udp.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ctrl_iface_unix.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/dbus-wpa_supplicant.conf (props changed) projects/stable_7_xen/contrib/wpa_supplicant/dbus-wpa_supplicant.service (props changed) projects/stable_7_xen/contrib/wpa_supplicant/dbus_dict_helpers.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/dbus_dict_helpers.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/defconfig (props changed) projects/stable_7_xen/contrib/wpa_supplicant/defs.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/des.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/doc/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/driver.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/driver_hostap.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/driver_ndis.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/driver_ndis.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/driver_wired.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/drivers.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_aka.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_defs.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_fast.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_gpsk.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_gpsk_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_gpsk_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_gtc.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_i.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_leap.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_md5.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_methods.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_methods.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_mschapv2.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_otp.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_pax.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_pax_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_pax_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_peap.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_psk.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_psk_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_psk_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sake.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sake_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sake_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sim.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sim_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_sim_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_testing.txt (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_tls.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_tls_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_tls_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_tlv.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_tlv.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_ttls.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_ttls.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eap_vendor_test.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eapol_sm.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eapol_sm.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eapol_test.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eloop.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eloop.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eloop_none.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/eloop_win.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/events.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/examples/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/hostapd.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/includes.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/l2_packet.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/libtommath.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/main.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/md4.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/md5.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/md5.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/mlme.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/mlme.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ms_funcs.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/ms_funcs.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/nmake.mak (props changed) projects/stable_7_xen/contrib/wpa_supplicant/openssl-0.9.8d-tls-extensions.patch (props changed) projects/stable_7_xen/contrib/wpa_supplicant/openssl-0.9.8e-tls-extensions.patch (props changed) projects/stable_7_xen/contrib/wpa_supplicant/openssl-tls-extensions.patch (props changed) projects/stable_7_xen/contrib/wpa_supplicant/os.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/os_internal.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/os_none.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/os_unix.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/pcsc_funcs.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/pcsc_funcs.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/pmksa_cache.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/pmksa_cache.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/preauth.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/preauth.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/preauth_test.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/radius.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/radius.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/radius_client.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/radius_client.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/rc4.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/rc4.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/rsa.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/rsa.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/sha1.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/sha1.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/sha256.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/sha256.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/state_machine.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls_gnutls.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls_internal.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls_none.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls_openssl.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tls_schannel.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tlsv1_client.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tlsv1_client.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tlsv1_common.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/tlsv1_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/todo.txt (props changed) projects/stable_7_xen/contrib/wpa_supplicant/version.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_cli.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_common.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_ctrl.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_ctrl.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_gui/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_gui-qt4/ (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_i.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_passphrase.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_supplicant.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_supplicant.conf (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_supplicant.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/wpa_supplicant_i.h (props changed) projects/stable_7_xen/contrib/wpa_supplicant/x509v3.c (props changed) projects/stable_7_xen/contrib/wpa_supplicant/x509v3.h (props changed) projects/stable_7_xen/crypto/openssh/ (props changed) projects/stable_7_xen/crypto/openssl/ (props changed) projects/stable_7_xen/etc/ (props changed) projects/stable_7_xen/etc/periodic/daily/404.status-zfs (props changed) projects/stable_7_xen/etc/periodic/daily/405.status-ata-raid (props changed) projects/stable_7_xen/etc/periodic/daily/406.status-gmirror (props changed) projects/stable_7_xen/etc/periodic/daily/407.status-graid3 (props changed) projects/stable_7_xen/etc/periodic/daily/408.status-gstripe (props changed) projects/stable_7_xen/etc/periodic/daily/409.status-gconcat (props changed) projects/stable_7_xen/etc/periodic/daily/480.status-ntpd (props changed) projects/stable_7_xen/etc/periodic/security/410.logincheck (props changed) projects/stable_7_xen/etc/periodic/security/510.ipfdenied (props changed) projects/stable_7_xen/etc/periodic/security/520.pfdenied (props changed) projects/stable_7_xen/etc/periodic/security/610.ipf6denied (props changed) projects/stable_7_xen/etc/periodic/weekly/340.noid (props changed) projects/stable_7_xen/etc/rc.d/FILESYSTEMS (props changed) projects/stable_7_xen/etc/rc.d/Makefile (props changed) projects/stable_7_xen/etc/rc.d/NETWORKING (props changed) projects/stable_7_xen/etc/rc.d/abi (props changed) projects/stable_7_xen/etc/rc.d/addswap (props changed) projects/stable_7_xen/etc/rc.d/adjkerntz (props changed) projects/stable_7_xen/etc/rc.d/apm (props changed) projects/stable_7_xen/etc/rc.d/archdep (props changed) projects/stable_7_xen/etc/rc.d/atm1 (props changed) projects/stable_7_xen/etc/rc.d/atm2 (props changed) projects/stable_7_xen/etc/rc.d/atm3 (props changed) projects/stable_7_xen/etc/rc.d/auditd (props changed) projects/stable_7_xen/etc/rc.d/auto_linklocal (props changed) projects/stable_7_xen/etc/rc.d/bgfsck (props changed) projects/stable_7_xen/etc/rc.d/bluetooth (props changed) projects/stable_7_xen/etc/rc.d/bridge (props changed) projects/stable_7_xen/etc/rc.d/bsnmpd (props changed) projects/stable_7_xen/etc/rc.d/bthidd (props changed) projects/stable_7_xen/etc/rc.d/cleanvar (props changed) projects/stable_7_xen/etc/rc.d/ddb (props changed) projects/stable_7_xen/etc/rc.d/devfs (props changed) projects/stable_7_xen/etc/rc.d/dumpon (props changed) projects/stable_7_xen/etc/rc.d/early.sh (props changed) projects/stable_7_xen/etc/rc.d/encswap (props changed) projects/stable_7_xen/etc/rc.d/ftp-proxy (props changed) projects/stable_7_xen/etc/rc.d/ftpd (props changed) projects/stable_7_xen/etc/rc.d/gbde (props changed) projects/stable_7_xen/etc/rc.d/geli (props changed) projects/stable_7_xen/etc/rc.d/geli2 (props changed) projects/stable_7_xen/etc/rc.d/hcsecd (props changed) projects/stable_7_xen/etc/rc.d/hostapd (props changed) projects/stable_7_xen/etc/rc.d/hostid (props changed) projects/stable_7_xen/etc/rc.d/hostname (props changed) projects/stable_7_xen/etc/rc.d/idmapd (props changed) projects/stable_7_xen/etc/rc.d/initrandom (props changed) projects/stable_7_xen/etc/rc.d/ip6addrctl (props changed) projects/stable_7_xen/etc/rc.d/ip6fw (props changed) projects/stable_7_xen/etc/rc.d/ipfw (props changed) projects/stable_7_xen/etc/rc.d/ipxrouted (props changed) projects/stable_7_xen/etc/rc.d/isdnd (props changed) projects/stable_7_xen/etc/rc.d/jail (props changed) projects/stable_7_xen/etc/rc.d/kadmind (props changed) projects/stable_7_xen/etc/rc.d/kerberos (props changed) projects/stable_7_xen/etc/rc.d/keyserv (props changed) projects/stable_7_xen/etc/rc.d/kldxref (props changed) projects/stable_7_xen/etc/rc.d/kpasswdd (props changed) projects/stable_7_xen/etc/rc.d/localpkg (props changed) projects/stable_7_xen/etc/rc.d/lockd (props changed) projects/stable_7_xen/etc/rc.d/mdconfig (props changed) projects/stable_7_xen/etc/rc.d/mdconfig2 (props changed) projects/stable_7_xen/etc/rc.d/mixer (props changed) projects/stable_7_xen/etc/rc.d/mountlate (props changed) projects/stable_7_xen/etc/rc.d/moused (props changed) projects/stable_7_xen/etc/rc.d/mroute6d (props changed) projects/stable_7_xen/etc/rc.d/msgs (props changed) projects/stable_7_xen/etc/rc.d/natd (props changed) projects/stable_7_xen/etc/rc.d/netif (props changed) projects/stable_7_xen/etc/rc.d/netoptions (props changed) projects/stable_7_xen/etc/rc.d/network_ipv6 (props changed) projects/stable_7_xen/etc/rc.d/nfsclient (props changed) projects/stable_7_xen/etc/rc.d/nfsserver (props changed) projects/stable_7_xen/etc/rc.d/nisdomain (props changed) projects/stable_7_xen/etc/rc.d/nscd (props changed) projects/stable_7_xen/etc/rc.d/nsswitch (props changed) projects/stable_7_xen/etc/rc.d/othermta (props changed) projects/stable_7_xen/etc/rc.d/pf (props changed) projects/stable_7_xen/etc/rc.d/pflog (props changed) projects/stable_7_xen/etc/rc.d/pfsync (props changed) projects/stable_7_xen/etc/rc.d/power_profile (props changed) projects/stable_7_xen/etc/rc.d/powerd (props changed) projects/stable_7_xen/etc/rc.d/ppp (props changed) projects/stable_7_xen/etc/rc.d/pppoed (props changed) projects/stable_7_xen/etc/rc.d/random (props changed) projects/stable_7_xen/etc/rc.d/resolv (props changed) projects/stable_7_xen/etc/rc.d/rfcomm_pppd_server (props changed) projects/stable_7_xen/etc/rc.d/routing (props changed) projects/stable_7_xen/etc/rc.d/sdpd (props changed) projects/stable_7_xen/etc/rc.d/serial (props changed) projects/stable_7_xen/etc/rc.d/sppp (props changed) projects/stable_7_xen/etc/rc.d/statd (props changed) projects/stable_7_xen/etc/rc.d/static_arp (props changed) projects/stable_7_xen/etc/rc.d/syscons (props changed) projects/stable_7_xen/etc/rc.d/sysctl (props changed) projects/stable_7_xen/etc/rc.d/ugidfw (props changed) projects/stable_7_xen/etc/rc.d/var (props changed) projects/stable_7_xen/etc/rc.d/watchdogd (props changed) projects/stable_7_xen/etc/rc.d/wpa_supplicant (props changed) projects/stable_7_xen/etc/rc.d/ypset (props changed) projects/stable_7_xen/etc/rc.d/ypupdated (props changed) projects/stable_7_xen/etc/rc.d/ypxfrd (props changed) projects/stable_7_xen/etc/rc.d/zfs (props changed) projects/stable_7_xen/games/factor/ (props changed) projects/stable_7_xen/games/fortune/ (props changed) projects/stable_7_xen/games/grdc/ (props changed) projects/stable_7_xen/gnu/ (props changed) projects/stable_7_xen/gnu/lib/libstdc++/ (props changed) projects/stable_7_xen/gnu/usr.bin/ (props changed) projects/stable_7_xen/gnu/usr.bin/cc/ (props changed) projects/stable_7_xen/gnu/usr.bin/cc/include/ (props changed) projects/stable_7_xen/gnu/usr.bin/cpio/ (props changed) projects/stable_7_xen/gnu/usr.bin/cvs/ (props changed) projects/stable_7_xen/gnu/usr.bin/gdb/ (props changed) projects/stable_7_xen/gnu/usr.bin/gdb/kgdb/ (props changed) projects/stable_7_xen/gnu/usr.bin/grep/ (props changed) projects/stable_7_xen/gnu/usr.bin/groff/ (props changed) projects/stable_7_xen/gnu/usr.bin/man/ (props changed) projects/stable_7_xen/gnu/usr.bin/sort/ (props changed) projects/stable_7_xen/include/ (props changed) projects/stable_7_xen/kerberos5/ (props changed) projects/stable_7_xen/lib/ (props changed) projects/stable_7_xen/lib/bind/ (props changed) projects/stable_7_xen/lib/csu/ (props changed) projects/stable_7_xen/lib/libarchive/ (props changed) projects/stable_7_xen/lib/libbluetooth/ (props changed) projects/stable_7_xen/lib/libc/ (props changed) projects/stable_7_xen/lib/libc/stdtime/ (props changed) projects/stable_7_xen/lib/libc_r/ (props changed) projects/stable_7_xen/lib/libcam/ (props changed) projects/stable_7_xen/lib/libdevstat/ (props changed) projects/stable_7_xen/lib/libdisk/ (props changed) projects/stable_7_xen/lib/libdwarf/ (props changed) projects/stable_7_xen/lib/libelf/ (props changed) projects/stable_7_xen/lib/libexpat/ (props changed) projects/stable_7_xen/lib/libfetch/ (props changed) projects/stable_7_xen/lib/libftpio/ (props changed) projects/stable_7_xen/lib/libgeom/ (props changed) projects/stable_7_xen/lib/libgssapi/ (props changed) projects/stable_7_xen/lib/libkse/ (props changed) projects/stable_7_xen/lib/libkvm/ (props changed) projects/stable_7_xen/lib/libmagic/ (props changed) projects/stable_7_xen/lib/libmemstat/ (props changed) projects/stable_7_xen/lib/libpmc/ (props changed) projects/stable_7_xen/lib/libradius/ (props changed) projects/stable_7_xen/lib/libsm/ (props changed) projects/stable_7_xen/lib/libstand/ (props changed) projects/stable_7_xen/lib/libthr/ (props changed) projects/stable_7_xen/lib/libthread_db/ (props changed) projects/stable_7_xen/lib/libufs/ (props changed) projects/stable_7_xen/lib/libutil/ (props changed) projects/stable_7_xen/lib/msun/ (props changed) projects/stable_7_xen/libexec/ (props changed) projects/stable_7_xen/libexec/ftpd/ (props changed) projects/stable_7_xen/libexec/rpc.rquotad/ (props changed) projects/stable_7_xen/libexec/rpc.rstatd/ (props changed) projects/stable_7_xen/libexec/rtld-elf/ (props changed) projects/stable_7_xen/libexec/talkd/ (props changed) projects/stable_7_xen/libexec/tftpd/ (props changed) projects/stable_7_xen/release/ (props changed) projects/stable_7_xen/release/doc/ (props changed) projects/stable_7_xen/release/doc/en_US.ISO8859-1/hardware/ (props changed) projects/stable_7_xen/release/picobsd/tinyware/login/ (props changed) projects/stable_7_xen/rescue/ (props changed) projects/stable_7_xen/sbin/ (props changed) projects/stable_7_xen/sbin/atacontrol/ (props changed) projects/stable_7_xen/sbin/bsdlabel/ (props changed) projects/stable_7_xen/sbin/clri/ (props changed) projects/stable_7_xen/sbin/ddb/ (props changed) projects/stable_7_xen/sbin/devd/ (props changed) projects/stable_7_xen/sbin/devfs/ (props changed) projects/stable_7_xen/sbin/dhclient/ (props changed) projects/stable_7_xen/sbin/dumpfs/ (props changed) projects/stable_7_xen/sbin/fdisk/ (props changed) projects/stable_7_xen/sbin/fdisk_pc98/ (props changed) projects/stable_7_xen/sbin/fsck/ (props changed) projects/stable_7_xen/sbin/fsck_ffs/ (props changed) projects/stable_7_xen/sbin/fsck_msdosfs/ (props changed) projects/stable_7_xen/sbin/geom/ (props changed) projects/stable_7_xen/sbin/geom/class/journal/ (props changed) projects/stable_7_xen/sbin/geom/class/label/ (props changed) projects/stable_7_xen/sbin/geom/class/part/ (props changed) projects/stable_7_xen/sbin/geom/class/stripe/ (props changed) projects/stable_7_xen/sbin/geom/misc/ (props changed) projects/stable_7_xen/sbin/growfs/ (props changed) projects/stable_7_xen/sbin/ifconfig/ (props changed) projects/stable_7_xen/sbin/init/ (props changed) projects/stable_7_xen/sbin/ipf/ (props changed) projects/stable_7_xen/sbin/ipfw/ (props changed) projects/stable_7_xen/sbin/md5/ (props changed) projects/stable_7_xen/sbin/mdconfig/ (props changed) projects/stable_7_xen/sbin/mksnap_ffs/ (props changed) projects/stable_7_xen/sbin/mount/ (props changed) projects/stable_7_xen/sbin/mount_msdosfs/ (props changed) projects/stable_7_xen/sbin/natd/ (props changed) projects/stable_7_xen/sbin/newfs/ (props changed) projects/stable_7_xen/sbin/newfs_msdos/ (props changed) projects/stable_7_xen/sbin/ping6/ (props changed) projects/stable_7_xen/sbin/reboot/ (props changed) projects/stable_7_xen/sbin/restore/ (props changed) projects/stable_7_xen/sbin/route/ (props changed) projects/stable_7_xen/sbin/savecore/ (props changed) projects/stable_7_xen/sbin/sconfig/ (props changed) projects/stable_7_xen/sbin/shutdown/ (props changed) projects/stable_7_xen/sbin/sysctl/ (props changed) projects/stable_7_xen/sbin/tunefs/ (props changed) projects/stable_7_xen/secure/lib/libcrypto/ (props changed) projects/stable_7_xen/secure/lib/libssh/ (props changed) projects/stable_7_xen/secure/lib/libssl/ (props changed) projects/stable_7_xen/secure/libexec/sftp-server/ (props changed) projects/stable_7_xen/secure/usr.bin/bdes/ (props changed) projects/stable_7_xen/secure/usr.bin/openssl/ (props changed) projects/stable_7_xen/secure/usr.bin/ssh/ (props changed) projects/stable_7_xen/secure/usr.sbin/sshd/ (props changed) projects/stable_7_xen/share/ (props changed) projects/stable_7_xen/share/colldef/ (props changed) projects/stable_7_xen/share/dict/ (props changed) projects/stable_7_xen/share/doc/bind9/ (props changed) projects/stable_7_xen/share/doc/papers/devfs/ (props changed) projects/stable_7_xen/share/doc/papers/jail/ (props changed) projects/stable_7_xen/share/doc/smm/01.setup/ (props changed) projects/stable_7_xen/share/examples/ (props changed) projects/stable_7_xen/share/man/ (props changed) projects/stable_7_xen/share/man/man1/ (props changed) projects/stable_7_xen/share/man/man3/ (props changed) projects/stable_7_xen/share/man/man4/ (props changed) projects/stable_7_xen/share/man/man5/ (props changed) projects/stable_7_xen/share/man/man7/ (props changed) projects/stable_7_xen/share/man/man8/ (props changed) projects/stable_7_xen/share/man/man9/ (props changed) projects/stable_7_xen/share/misc/ (props changed) projects/stable_7_xen/share/misc/iso639 (props changed) projects/stable_7_xen/share/misc/pci_vendors (props changed) projects/stable_7_xen/share/mk/ (props changed) projects/stable_7_xen/share/mklocale/ (props changed) projects/stable_7_xen/share/monetdef/ (props changed) projects/stable_7_xen/share/msgdef/ (props changed) projects/stable_7_xen/share/numericdef/ (props changed) projects/stable_7_xen/share/sendmail/ (props changed) projects/stable_7_xen/share/syscons/ (props changed) projects/stable_7_xen/share/syscons/keymaps/ (props changed) projects/stable_7_xen/share/termcap/ (props changed) projects/stable_7_xen/share/timedef/ (props changed) projects/stable_7_xen/share/zoneinfo/ (props changed) projects/stable_7_xen/sys/ (props changed) projects/stable_7_xen/sys/cddl/contrib/opensolaris/ (props changed) projects/stable_7_xen/sys/contrib/dev/acpica/ (props changed) projects/stable_7_xen/sys/contrib/pf/ (props changed) projects/stable_7_xen/tools/ (props changed) projects/stable_7_xen/tools/build/ (props changed) projects/stable_7_xen/tools/build/options/ (props changed) projects/stable_7_xen/tools/debugscripts/ (props changed) projects/stable_7_xen/tools/regression/acct/ (props changed) projects/stable_7_xen/tools/regression/atm/ (props changed) projects/stable_7_xen/tools/regression/bin/ (props changed) projects/stable_7_xen/tools/regression/bin/date/ (props changed) projects/stable_7_xen/tools/regression/bin/sh/ (props changed) projects/stable_7_xen/tools/regression/file/ (props changed) projects/stable_7_xen/tools/regression/file/flock/ (props changed) projects/stable_7_xen/tools/regression/lib/libc/ (props changed) projects/stable_7_xen/tools/regression/usr.bin/ (props changed) projects/stable_7_xen/tools/regression/usr.bin/jot/ (props changed) projects/stable_7_xen/tools/regression/usr.bin/tr/ (props changed) projects/stable_7_xen/tools/sched/ (props changed) projects/stable_7_xen/tools/test/ (props changed) projects/stable_7_xen/tools/test/malloc/ (props changed) projects/stable_7_xen/tools/tools/ (props changed) projects/stable_7_xen/tools/tools/aac/ (props changed) projects/stable_7_xen/tools/tools/crypto/ (props changed) projects/stable_7_xen/tools/tools/editing/ (props changed) projects/stable_7_xen/tools/tools/iwi/ (props changed) projects/stable_7_xen/tools/tools/nanobsd/ (props changed) projects/stable_7_xen/tools/tools/nanobsd/FlashDevice.sub (props changed) projects/stable_7_xen/tools/tools/nanobsd/nanobsd.sh (props changed) projects/stable_7_xen/tools/tools/netrate/ (props changed) projects/stable_7_xen/tools/tools/tinybsd/ (props changed) projects/stable_7_xen/tools/tools/umastat/ (props changed) projects/stable_7_xen/tools/tools/usb/ (props changed) projects/stable_7_xen/usr.bin/ (props changed) projects/stable_7_xen/usr.bin/basename/ (props changed) projects/stable_7_xen/usr.bin/bluetooth/rfcomm_sppd/ (props changed) projects/stable_7_xen/usr.bin/calendar/ (props changed) projects/stable_7_xen/usr.bin/catman/ (props changed) projects/stable_7_xen/usr.bin/checknr/ (props changed) projects/stable_7_xen/usr.bin/cksum/ (props changed) projects/stable_7_xen/usr.bin/comm/ (props changed) projects/stable_7_xen/usr.bin/cpuset/ (props changed) projects/stable_7_xen/usr.bin/csup/ (props changed) projects/stable_7_xen/usr.bin/dirname/ (props changed) projects/stable_7_xen/usr.bin/du/ (props changed) projects/stable_7_xen/usr.bin/fetch/ (props changed) projects/stable_7_xen/usr.bin/file/ (props changed) projects/stable_7_xen/usr.bin/find/ (props changed) projects/stable_7_xen/usr.bin/finger/ (props changed) projects/stable_7_xen/usr.bin/fold/ (props changed) projects/stable_7_xen/usr.bin/fstat/ (props changed) projects/stable_7_xen/usr.bin/gcore/ (props changed) projects/stable_7_xen/usr.bin/getopt/ (props changed) projects/stable_7_xen/usr.bin/gprof/ (props changed) projects/stable_7_xen/usr.bin/gzip/ (props changed) projects/stable_7_xen/usr.bin/hexdump/ (props changed) projects/stable_7_xen/usr.bin/id/ (props changed) projects/stable_7_xen/usr.bin/indent/ (props changed) projects/stable_7_xen/usr.bin/ipcrm/ (props changed) projects/stable_7_xen/usr.bin/ipcs/ (props changed) projects/stable_7_xen/usr.bin/jot/ (props changed) projects/stable_7_xen/usr.bin/kdump/ (props changed) projects/stable_7_xen/usr.bin/ktrace/ (props changed) projects/stable_7_xen/usr.bin/ldd/ (props changed) projects/stable_7_xen/usr.bin/less/ (props changed) projects/stable_7_xen/usr.bin/lex/ (props changed) projects/stable_7_xen/usr.bin/locate/ (props changed) projects/stable_7_xen/usr.bin/lockf/ (props changed) projects/stable_7_xen/usr.bin/logger/ (props changed) projects/stable_7_xen/usr.bin/m4/ (props changed) projects/stable_7_xen/usr.bin/mail/ (props changed) projects/stable_7_xen/usr.bin/make/ (props changed) projects/stable_7_xen/usr.bin/ncal/ (props changed) projects/stable_7_xen/usr.bin/netstat/ (props changed) projects/stable_7_xen/usr.bin/newgrp/ (props changed) projects/stable_7_xen/usr.bin/nsupdate/ (props changed) projects/stable_7_xen/usr.bin/pkill/ (props changed) projects/stable_7_xen/usr.bin/procstat/ (props changed) projects/stable_7_xen/usr.bin/quota/ (props changed) projects/stable_7_xen/usr.bin/rpcgen/ (props changed) projects/stable_7_xen/usr.bin/rpcinfo/ (props changed) projects/stable_7_xen/usr.bin/ruptime/ (props changed) projects/stable_7_xen/usr.bin/script/ (props changed) projects/stable_7_xen/usr.bin/sed/ (props changed) projects/stable_7_xen/usr.bin/shar/ (props changed) projects/stable_7_xen/usr.bin/sockstat/ (props changed) projects/stable_7_xen/usr.bin/stat/ (props changed) projects/stable_7_xen/usr.bin/su/ (props changed) projects/stable_7_xen/usr.bin/systat/ (props changed) projects/stable_7_xen/usr.bin/tail/ (props changed) projects/stable_7_xen/usr.bin/tar/ (props changed) projects/stable_7_xen/usr.bin/tftp/ (props changed) projects/stable_7_xen/usr.bin/tip/ (props changed) projects/stable_7_xen/usr.bin/top/ (props changed) projects/stable_7_xen/usr.bin/truncate/ (props changed) projects/stable_7_xen/usr.bin/truss/ (props changed) projects/stable_7_xen/usr.bin/uname/ (props changed) projects/stable_7_xen/usr.bin/unifdef/ (props changed) projects/stable_7_xen/usr.bin/units/ (props changed) projects/stable_7_xen/usr.bin/uudecode/ (props changed) projects/stable_7_xen/usr.bin/vmstat/ (props changed) projects/stable_7_xen/usr.bin/w/ (props changed) projects/stable_7_xen/usr.bin/wc/ (props changed) projects/stable_7_xen/usr.bin/whereis/ (props changed) projects/stable_7_xen/usr.bin/whois/ (props changed) projects/stable_7_xen/usr.bin/window/ (props changed) projects/stable_7_xen/usr.bin/xargs/ (props changed) projects/stable_7_xen/usr.bin/xinstall/ (props changed) projects/stable_7_xen/usr.bin/xlint/ (props changed) projects/stable_7_xen/usr.bin/ypcat/ (props changed) projects/stable_7_xen/usr.bin/ypmatch/ (props changed) projects/stable_7_xen/usr.bin/ypwhich/ (props changed) projects/stable_7_xen/usr.sbin/ (props changed) projects/stable_7_xen/usr.sbin/IPXrouted/ (props changed) projects/stable_7_xen/usr.sbin/Makefile (props changed) projects/stable_7_xen/usr.sbin/Makefile.inc (props changed) projects/stable_7_xen/usr.sbin/ac/ (props changed) projects/stable_7_xen/usr.sbin/accton/ (props changed) projects/stable_7_xen/usr.sbin/acpi/ (props changed) projects/stable_7_xen/usr.sbin/adduser/ (props changed) projects/stable_7_xen/usr.sbin/amd/ (props changed) projects/stable_7_xen/usr.sbin/ancontrol/ (props changed) projects/stable_7_xen/usr.sbin/apm/ (props changed) projects/stable_7_xen/usr.sbin/apmd/ (props changed) projects/stable_7_xen/usr.sbin/arlcontrol/ (props changed) projects/stable_7_xen/usr.sbin/arp/ (props changed) projects/stable_7_xen/usr.sbin/asf/ (props changed) projects/stable_7_xen/usr.sbin/audit/ (props changed) projects/stable_7_xen/usr.sbin/auditd/ (props changed) projects/stable_7_xen/usr.sbin/auditreduce/ (props changed) projects/stable_7_xen/usr.sbin/authpf/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/btpand/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/hcsecd/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/hcseriald/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/rfcomm_pppd/ (props changed) projects/stable_7_xen/usr.sbin/bluetooth/sdpd/ (props changed) projects/stable_7_xen/usr.sbin/boot0cfg/ (props changed) projects/stable_7_xen/usr.sbin/boot98cfg/ (props changed) projects/stable_7_xen/usr.sbin/bootparamd/ (props changed) projects/stable_7_xen/usr.sbin/bsnmpd/ (props changed) projects/stable_7_xen/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_processor_tbl.c (props changed) projects/stable_7_xen/usr.sbin/bsnmpd/modules/snmp_pf/ (props changed) projects/stable_7_xen/usr.sbin/btxld/ (props changed) projects/stable_7_xen/usr.sbin/burncd/ (props changed) projects/stable_7_xen/usr.sbin/cdcontrol/ (props changed) projects/stable_7_xen/usr.sbin/chkgrp/ (props changed) projects/stable_7_xen/usr.sbin/chown/ (props changed) projects/stable_7_xen/usr.sbin/chroot/ (props changed) projects/stable_7_xen/usr.sbin/ckdist/ (props changed) projects/stable_7_xen/usr.sbin/clear_locks/ (props changed) projects/stable_7_xen/usr.sbin/config/ (props changed) projects/stable_7_xen/usr.sbin/config/SMM.doc/ (props changed) projects/stable_7_xen/usr.sbin/cpucontrol/ (props changed) projects/stable_7_xen/usr.sbin/crashinfo/ (props changed) projects/stable_7_xen/usr.sbin/cron/ (props changed) projects/stable_7_xen/usr.sbin/cron/cron/ (props changed) projects/stable_7_xen/usr.sbin/crunch/ (props changed) projects/stable_7_xen/usr.sbin/ctm/ (props changed) projects/stable_7_xen/usr.sbin/cxgbtool/ (props changed) projects/stable_7_xen/usr.sbin/daemon/ (props changed) projects/stable_7_xen/usr.sbin/dconschat/ (props changed) projects/stable_7_xen/usr.sbin/devinfo/ (props changed) projects/stable_7_xen/usr.sbin/digictl/ (props changed) projects/stable_7_xen/usr.sbin/diskinfo/ (props changed) projects/stable_7_xen/usr.sbin/dnssec-keygen/ (props changed) projects/stable_7_xen/usr.sbin/dnssec-signzone/ (props changed) projects/stable_7_xen/usr.sbin/editmap/ (props changed) projects/stable_7_xen/usr.sbin/edquota/ (props changed) projects/stable_7_xen/usr.sbin/eeprom/ (props changed) projects/stable_7_xen/usr.sbin/extattr/ (props changed) projects/stable_7_xen/usr.sbin/extattrctl/ (props changed) projects/stable_7_xen/usr.sbin/faithd/ (props changed) projects/stable_7_xen/usr.sbin/fdcontrol/ (props changed) projects/stable_7_xen/usr.sbin/fdformat/ (props changed) projects/stable_7_xen/usr.sbin/fdread/ (props changed) projects/stable_7_xen/usr.sbin/fdwrite/ (props changed) projects/stable_7_xen/usr.sbin/fifolog/ (props changed) projects/stable_7_xen/usr.sbin/flowctl/ (props changed) projects/stable_7_xen/usr.sbin/freebsd-update/ (props changed) projects/stable_7_xen/usr.sbin/ftp-proxy/ (props changed) projects/stable_7_xen/usr.sbin/fwcontrol/ (props changed) projects/stable_7_xen/usr.sbin/getfmac/ (props changed) projects/stable_7_xen/usr.sbin/getpmac/ (props changed) projects/stable_7_xen/usr.sbin/gstat/ (props changed) projects/stable_7_xen/usr.sbin/i4b/ (props changed) projects/stable_7_xen/usr.sbin/ifmcstat/ (props changed) projects/stable_7_xen/usr.sbin/inetd/ (props changed) projects/stable_7_xen/usr.sbin/iostat/ (props changed) projects/stable_7_xen/usr.sbin/ip6addrctl/ (props changed) projects/stable_7_xen/usr.sbin/ipfwpcap/ (props changed) projects/stable_7_xen/usr.sbin/jail/ (props changed) projects/stable_7_xen/usr.sbin/jexec/ (props changed) projects/stable_7_xen/usr.sbin/jls/ (props changed) projects/stable_7_xen/usr.sbin/kbdcontrol/ (props changed) projects/stable_7_xen/usr.sbin/kbdmap/ (props changed) projects/stable_7_xen/usr.sbin/kernbb/ (props changed) projects/stable_7_xen/usr.sbin/keyserv/ (props changed) projects/stable_7_xen/usr.sbin/kgmon/ (props changed) projects/stable_7_xen/usr.sbin/kgzip/ (props changed) projects/stable_7_xen/usr.sbin/kldxref/ (props changed) projects/stable_7_xen/usr.sbin/lastlogin/ (props changed) projects/stable_7_xen/usr.sbin/lmcconfig/ (props changed) projects/stable_7_xen/usr.sbin/lpr/ (props changed) projects/stable_7_xen/usr.sbin/lptcontrol/ (props changed) projects/stable_7_xen/usr.sbin/mailstats/ (props changed) projects/stable_7_xen/usr.sbin/mailwrapper/ (props changed) projects/stable_7_xen/usr.sbin/makefs/ (props changed) projects/stable_7_xen/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/stable_7_xen/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/stable_7_xen/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/stable_7_xen/usr.sbin/makefs/getid.c (props changed) projects/stable_7_xen/usr.sbin/makemap/ (props changed) projects/stable_7_xen/usr.sbin/manctl/ (props changed) projects/stable_7_xen/usr.sbin/memcontrol/ (props changed) projects/stable_7_xen/usr.sbin/mergemaster/ (props changed) projects/stable_7_xen/usr.sbin/mfiutil/ (props changed) projects/stable_7_xen/usr.sbin/mixer/ (props changed) projects/stable_7_xen/usr.sbin/mld6query/ (props changed) projects/stable_7_xen/usr.sbin/mlxcontrol/ (props changed) projects/stable_7_xen/usr.sbin/mount_nwfs/ (props changed) projects/stable_7_xen/usr.sbin/mount_portalfs/ (props changed) projects/stable_7_xen/usr.sbin/mount_smbfs/ (props changed) projects/stable_7_xen/usr.sbin/mountd/ (props changed) projects/stable_7_xen/usr.sbin/moused/ (props changed) projects/stable_7_xen/usr.sbin/mptable/ (props changed) projects/stable_7_xen/usr.sbin/mptutil/ (props changed) projects/stable_7_xen/usr.sbin/mtest/ (props changed) projects/stable_7_xen/usr.sbin/mtree/ (props changed) projects/stable_7_xen/usr.sbin/named/ (props changed) projects/stable_7_xen/usr.sbin/named-checkconf/ (props changed) projects/stable_7_xen/usr.sbin/named-checkzone/ (props changed) projects/stable_7_xen/usr.sbin/named.reload/ (props changed) projects/stable_7_xen/usr.sbin/ndiscvt/ (props changed) projects/stable_7_xen/usr.sbin/ndp/ (props changed) projects/stable_7_xen/usr.sbin/newsyslog/ (props changed) projects/stable_7_xen/usr.sbin/nfsd/ (props changed) projects/stable_7_xen/usr.sbin/ngctl/ (props changed) projects/stable_7_xen/usr.sbin/nghook/ (props changed) projects/stable_7_xen/usr.sbin/nologin/ (props changed) projects/stable_7_xen/usr.sbin/nscd/ (props changed) projects/stable_7_xen/usr.sbin/ntp/ (props changed) projects/stable_7_xen/usr.sbin/nvram/ (props changed) projects/stable_7_xen/usr.sbin/ofwdump/ (props changed) projects/stable_7_xen/usr.sbin/pccard/ (props changed) projects/stable_7_xen/usr.sbin/pciconf/ (props changed) projects/stable_7_xen/usr.sbin/periodic/ (props changed) projects/stable_7_xen/usr.sbin/pkg_install/ (props changed) projects/stable_7_xen/usr.sbin/pmcannotate/ (props changed) projects/stable_7_xen/usr.sbin/pmccontrol/ (props changed) projects/stable_7_xen/usr.sbin/pmcstat/ (props changed) projects/stable_7_xen/usr.sbin/pnpinfo/ (props changed) projects/stable_7_xen/usr.sbin/portsnap/ (props changed) projects/stable_7_xen/usr.sbin/powerd/ (props changed) projects/stable_7_xen/usr.sbin/ppp/ (props changed) projects/stable_7_xen/usr.sbin/pppctl/ (props changed) projects/stable_7_xen/usr.sbin/pppd/ (props changed) projects/stable_7_xen/usr.sbin/pppstats/ (props changed) projects/stable_7_xen/usr.sbin/praliases/ (props changed) projects/stable_7_xen/usr.sbin/praudit/ (props changed) projects/stable_7_xen/usr.sbin/procctl/ (props changed) projects/stable_7_xen/usr.sbin/pstat/ (props changed) projects/stable_7_xen/usr.sbin/pw/ (props changed) projects/stable_7_xen/usr.sbin/pwd_mkdb/ (props changed) projects/stable_7_xen/usr.sbin/quot/ (props changed) projects/stable_7_xen/usr.sbin/quotaon/ (props changed) projects/stable_7_xen/usr.sbin/rarpd/ (props changed) projects/stable_7_xen/usr.sbin/raycontrol/ (props changed) projects/stable_7_xen/usr.sbin/repquota/ (props changed) projects/stable_7_xen/usr.sbin/rip6query/ (props changed) projects/stable_7_xen/usr.sbin/rmt/ (props changed) projects/stable_7_xen/usr.sbin/rndc/ (props changed) projects/stable_7_xen/usr.sbin/rndc-confgen/ (props changed) projects/stable_7_xen/usr.sbin/route6d/ (props changed) projects/stable_7_xen/usr.sbin/rpc.lockd/ (props changed) projects/stable_7_xen/usr.sbin/rpc.statd/ (props changed) projects/stable_7_xen/usr.sbin/rpc.umntall/ (props changed) projects/stable_7_xen/usr.sbin/rpc.yppasswdd/ (props changed) projects/stable_7_xen/usr.sbin/rpc.ypupdated/ (props changed) projects/stable_7_xen/usr.sbin/rpc.ypxfrd/ (props changed) projects/stable_7_xen/usr.sbin/rpcbind/ (props changed) projects/stable_7_xen/usr.sbin/rrenumd/ (props changed) projects/stable_7_xen/usr.sbin/rtadvd/ (props changed) projects/stable_7_xen/usr.sbin/rtprio/ (props changed) projects/stable_7_xen/usr.sbin/rtsold/ (props changed) projects/stable_7_xen/usr.sbin/rwhod/ (props changed) projects/stable_7_xen/usr.sbin/sa/ (props changed) projects/stable_7_xen/usr.sbin/sade/ (props changed) projects/stable_7_xen/usr.sbin/sendmail/ (props changed) projects/stable_7_xen/usr.sbin/service/ (props changed) projects/stable_7_xen/usr.sbin/service/Makefile (props changed) projects/stable_7_xen/usr.sbin/service/service.8 (props changed) projects/stable_7_xen/usr.sbin/service/service.sh (props changed) projects/stable_7_xen/usr.sbin/setfib/ (props changed) projects/stable_7_xen/usr.sbin/setfmac/ (props changed) projects/stable_7_xen/usr.sbin/setpmac/ (props changed) projects/stable_7_xen/usr.sbin/sicontrol/ (props changed) projects/stable_7_xen/usr.sbin/sliplogin/ (props changed) projects/stable_7_xen/usr.sbin/slstat/ (props changed) projects/stable_7_xen/usr.sbin/smbmsg/ (props changed) projects/stable_7_xen/usr.sbin/snapinfo/ (props changed) projects/stable_7_xen/usr.sbin/spkrtest/ (props changed) projects/stable_7_xen/usr.sbin/spray/ (props changed) projects/stable_7_xen/usr.sbin/sysinstall/ (props changed) projects/stable_7_xen/usr.sbin/syslogd/ (props changed) projects/stable_7_xen/usr.sbin/tcpdchk/ (props changed) projects/stable_7_xen/usr.sbin/tcpdmatch/ (props changed) projects/stable_7_xen/usr.sbin/tcpdrop/ (props changed) projects/stable_7_xen/usr.sbin/tcpdump/ (props changed) projects/stable_7_xen/usr.sbin/timed/ (props changed) projects/stable_7_xen/usr.sbin/traceroute/ (props changed) projects/stable_7_xen/usr.sbin/traceroute6/ (props changed) projects/stable_7_xen/usr.sbin/trpt/ (props changed) projects/stable_7_xen/usr.sbin/tzsetup/ (props changed) projects/stable_7_xen/usr.sbin/ugidfw/ (props changed) projects/stable_7_xen/usr.sbin/usbdevs/ (props changed) projects/stable_7_xen/usr.sbin/vidcontrol/ (props changed) projects/stable_7_xen/usr.sbin/vipw/ (props changed) projects/stable_7_xen/usr.sbin/watch/ (props changed) projects/stable_7_xen/usr.sbin/watchdogd/ (props changed) projects/stable_7_xen/usr.sbin/wlandebug/ (props changed) projects/stable_7_xen/usr.sbin/wlconfig/ (props changed) projects/stable_7_xen/usr.sbin/wpa/ (props changed) projects/stable_7_xen/usr.sbin/wpa/wpa_supplicant/ (props changed) projects/stable_7_xen/usr.sbin/yp_mkdb/ (props changed) projects/stable_7_xen/usr.sbin/ypbind/ (props changed) projects/stable_7_xen/usr.sbin/yppoll/ (props changed) projects/stable_7_xen/usr.sbin/yppush/ (props changed) projects/stable_7_xen/usr.sbin/ypserv/ (props changed) projects/stable_7_xen/usr.sbin/ypset/ (props changed) projects/stable_7_xen/usr.sbin/zic/ (props changed) projects/stable_7_xen/usr.sbin/zzz/ (props changed) Modified: projects/stable_7_xen/COPYRIGHT ============================================================================== --- projects/stable_7_xen/COPYRIGHT Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/COPYRIGHT Mon May 16 19:29:58 2011 (r222000) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2010 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2011 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: projects/stable_7_xen/Makefile ============================================================================== --- projects/stable_7_xen/Makefile Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/Makefile Mon May 16 19:29:58 2011 (r222000) @@ -57,7 +57,7 @@ # 6. `mergemaster -p' # 7. `make installworld' # 8. `make delete-old' -# 9. `mergemaster' (you may wish to use -U or -ai). +# 9. `mergemaster' (you may wish to use -i, along with -U or -F). # 10. `reboot' # 11. `make delete-old-libs' (in case no 3rd party program uses them anymore) # Modified: projects/stable_7_xen/ObsoleteFiles.inc ============================================================================== --- projects/stable_7_xen/ObsoleteFiles.inc Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/ObsoleteFiles.inc Mon May 16 19:29:58 2011 (r222000) @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20101114: Remove long-obsolete MAKEDEV.8 +OLD_FILES+=usr/share/man/man8/MAKEDEV.8.gz # 20101112: vgonel(9) has gone to private API a while ago OLD_FILES+=usr/share/man/man9/vgonel.9.gz # 20101025: catch up with vm_page_sleep_if_busy rename Modified: projects/stable_7_xen/UPDATING ============================================================================== --- projects/stable_7_xen/UPDATING Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/UPDATING Mon May 16 19:29:58 2011 (r222000) @@ -8,6 +8,9 @@ Items affecting the ports and packages s /usr/ports/UPDATING. Please read that file before running portupgrade. +20110221: + FreeBSD 7.4-RELEASE + 20101126: New version of minidump format for amd64 architecture was introduced in r215874. To analyze vmcore files produced by @@ -985,8 +988,8 @@ COMMON ITEMS: [3] mergemaster -p [5] make installworld - make delete-old mergemaster [4] + make delete-old [6] @@ -1023,8 +1026,8 @@ COMMON ITEMS: [3] mergemaster -p [5] make installworld - make delete-old mergemaster -i [4] + make delete-old [6] Make sure that you've read the UPDATING file to understand the @@ -1066,6 +1069,10 @@ COMMON ITEMS: install) after the buildworld before this step if you last updated from current before 20020224 or from -stable before 20020408. + [6] This only deletes old files and directories. Old libraries + can be deleted by "make delete-old-libs", but you have to make + sure that no program is using those libraries anymore. + [8] In order to have a kernel that can run the 4.x binaries needed to do an installworld, you must include the COMPAT_FREEBSD4 option in your kernel. Failure to do so may leave you with a system Modified: projects/stable_7_xen/bin/df/df.c ============================================================================== --- projects/stable_7_xen/bin/df/df.c Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/bin/df/df.c Mon May 16 19:29:58 2011 (r222000) @@ -124,7 +124,7 @@ main(int argc, char *argv[]) /* FALLTHROUGH */ case 'P': /* - * POSIX specifically discusses the the behavior of + * POSIX specifically discusses the behavior of * both -k and -P. It states that the blocksize should * be set to 1024. Thus, if this occurs, simply break * rather than clobbering the old blocksize. Modified: projects/stable_7_xen/bin/ed/ed.1 ============================================================================== --- projects/stable_7_xen/bin/ed/ed.1 Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/bin/ed/ed.1 Mon May 16 19:29:58 2011 (r222000) @@ -231,7 +231,7 @@ The current line (address) in the buffer The last line in the buffer. .It n The -.Em n Ns th, +.Em n Ns th line in the buffer where .Em n @@ -649,7 +649,7 @@ The mark is not cleared until the line i deleted or otherwise modified. .It (.,.)l Print the addressed lines unambiguously. -If a single line fills for than one screen (as might be the case +If a single line fills more than one screen (as might be the case when viewing a binary file, for instance), a .Dq Li --More-- prompt is printed on the last line. Modified: projects/stable_7_xen/bin/sh/expand.c ============================================================================== --- projects/stable_7_xen/bin/sh/expand.c Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/bin/sh/expand.c Mon May 16 19:29:58 2011 (r222000) @@ -944,7 +944,7 @@ numvar: /* - * Record the the fact that we have to scan this region of the + * Record the fact that we have to scan this region of the * string for IFS characters. */ Modified: projects/stable_7_xen/bin/sh/var.c ============================================================================== --- projects/stable_7_xen/bin/sh/var.c Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/bin/sh/var.c Mon May 16 19:29:58 2011 (r222000) @@ -523,9 +523,8 @@ var_compare(const void *a, const void *b /* - * Command to list all variables which are set. Currently this command - * is invoked from the set command when the set command is called without - * any variables. + * Command to list all variables which are set. This is invoked from the + * set command when it is called without any options or operands. */ int @@ -760,9 +759,7 @@ setvarcmd(int argc, char **argv) /* - * The unset builtin command. We unset the function before we unset the - * variable to allow a function to be unset when there is a readonly variable - * with the same name. + * The unset builtin command. */ int Modified: projects/stable_7_xen/bin/test/test.c ============================================================================== --- projects/stable_7_xen/bin/test/test.c Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/bin/test/test.c Mon May 16 19:29:58 2011 (r222000) @@ -9,6 +9,10 @@ * * This program is in the Public Domain. */ +/* + * Important: This file is used both as a standalone program /bin/test and + * as a builtin for /bin/sh (#define SHELL). + */ #include __FBSDID("$FreeBSD$"); Modified: projects/stable_7_xen/contrib/bind9/CHANGES ============================================================================== --- projects/stable_7_xen/contrib/bind9/CHANGES Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/contrib/bind9/CHANGES Mon May 16 19:29:58 2011 (r222000) @@ -1,3 +1,30 @@ + --- 9.4-ESV-R4 released --- + +2970. [security] Adding a NO DATA negative cache entry failed to clear + any matching RRSIG records. A subsequent lookup of + of NO DATA cache entry could trigger a INSIST when the + unexpected RRSIG was also returned with the NO DATA + cache entry. + + CVE-2010-3613, VU#706148. [RT #22288] + +2968. [security] Named could fail to prove a data set was insecure + before marking it as insecure. One set of conditions + that can trigger this occurs naturally when rolling + DNSKEY algorithms. + + CVE-2010-3614, VU#837744. [RT #22309] + +2966. [bug] isc_print_vsnprintf() failed to check if there was + space available in the buffer when adding a left + justified character with a non zero width, + (e.g. "%-1c"). [RT #22270] + +2962. [port] win32: add more dependancies to BINDBuild.dsw. + [RT #22062] + +2786. [bug] Additional could be promoted to answer. [RT #20663] + --- 9.4-ESV-R3 released --- 2925. [bug] Named failed to accept uncachable negative responses Copied: projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html (from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html Mon May 16 19:29:58 2011 (r222000, copy of r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.html) @@ -0,0 +1,123 @@ + + + + + + +

+ +

Introduction

+ +

+ BIND 9.3-ESV-R4 is a maintenance release for BIND 9.4-ESV. +

+

+ This document summarizes changes from BIND 9.4-ESV-R3 to BIND 9.4-ESV-R4. + Please see the CHANGES file in the source code release for a + complete list of all changes. +

+
+ +

Download

+ +

+ The latest release of BIND 9 software can always be found + on our web site at + http://www.isc.org/software/bind. + There you will find additional information about each release, + source code, and some pre-compiled versions for certain operating + systems. +

+
+ +

Support

+ +

Product support information is available on + http://www.isc.org/services/support + for paid support options. Free support is provided by our user + community via a mailing list. Information on all public email + lists is available at + https://lists.isc.org/mailman/listinfo. +

+
+ +

New Features

+ +

9.4-ESV-R4

+ +

None.

+
+
+ +

Feature Changes

+ +

9.4-ESV-R4

+ +

None.

+
+
+ +

Security Fixes

+ +

9.4-ESV-R4

+ +
  • + Adding a NO DATA signed negative response to cache failed to clear + any matching RRSIG records already in cache. A subsequent lookup + of the cached NO DATA entry could crash named (INSIST) when the + unexpected RRSIG was also returned with the NO DATA cache entry. + [RT #22288] [CVE-2010-3613] [VU#706148] +
  • + BIND, acting as a DNSSEC validator, was determining if the NS RRset + is insecure based on a value that could mean either that the RRset + is actually insecure or that there wasn't a matching key for the RRSIG + in the DNSKEY RRset when resuming from validating the DNSKEY RRset. + This can happen when in the middle of a DNSKEY algorithm rollover, + when two different algorithms were used to sign a zone but only the + new set of keys are in the zone DNSKEY RRset. + [RT #22309] [CVE-2010-3614] [VU#837744] +
+
+
+ +

Bug Fixes

+ +

9.4-ESV-R4

+ +
  • + isc_print_vsnprintf() failed to check if there was + space available in the buffer when adding a left + justified character with a non zero width, + (e.g. "%-1c"). + [RT #22270] +
  • + win32: add more dependencies to BINDBuild.dsw. + [RT #22062] +
+
+
+ +

Thank You

+ +

+ Thank you to everyone who assisted us in making this release possible. + If you would like to contribute to ISC to assist us in continuing to make + quality open source software, please visit our donations page at + http://www.isc.org/supportisc. +

+
+
Copied: projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.pdf (from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.pdf) ============================================================================== Binary file (source and/or target). No diff available. Copied: projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt (from r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/stable_7_xen/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt Mon May 16 19:29:58 2011 (r222000, copy of r221999, stable/7/contrib/bind9/RELEASE-NOTES-BIND-9.4-ESV.txt) @@ -0,0 +1,70 @@ + __________________________________________________________________ + +Introduction + + BIND 9.3-ESV-R4 is a maintenance release for BIND 9.4-ESV. + + This document summarizes changes from BIND 9.4-ESV-R3 to BIND + 9.4-ESV-R4. Please see the CHANGES file in the source code release for + a complete list of all changes. + +Download + + The latest release of BIND 9 software can always be found on our web + site at http://www.isc.org/software/bind. There you will find + additional information about each release, source code, and some + pre-compiled versions for certain operating systems. + +Support + + Product support information is available on + http://www.isc.org/services/support for paid support options. Free + support is provided by our user community via a mailing list. + Information on all public email lists is available at + https://lists.isc.org/mailman/listinfo. + +New Features + +9.4-ESV-R4 + + None. + +Feature Changes + +9.4-ESV-R4 + + None. + +Security Fixes + +9.4-ESV-R4 + + * Adding a NO DATA signed negative response to cache failed to clear + any matching RRSIG records already in cache. A subsequent lookup of + the cached NO DATA entry could crash named (INSIST) when the + unexpected RRSIG was also returned with the NO DATA cache entry. + [RT #22288] [CVE-2010-3613] [VU#706148] + * BIND, acting as a DNSSEC validator, was determining if the NS RRset + is insecure based on a value that could mean either that the RRset + is actually insecure or that there wasn't a matching key for the + RRSIG in the DNSKEY RRset when resuming from validating the DNSKEY + RRset. This can happen when in the middle of a DNSKEY algorithm + rollover, when two different algorithms were used to sign a zone + but only the new set of keys are in the zone DNSKEY RRset. [RT + #22309] [CVE-2010-3614] [VU#837744] + +Bug Fixes + +9.4-ESV-R4 + + * isc_print_vsnprintf() failed to check if there was space available + in the buffer when adding a left justified character with a non + zero width, (e.g. "%-1c"). [RT #22270] + * win32: add more dependencies to BINDBuild.dsw. [RT #22062] + +Thank You + + Thank you to everyone who assisted us in making this release possible. + If you would like to contribute to ISC to assist us in continuing to + make quality open source software, please visit our donations page at + http://www.isc.org/supportisc. Modified: projects/stable_7_xen/contrib/bind9/bin/named/query.c ============================================================================== --- projects/stable_7_xen/contrib/bind9/bin/named/query.c Mon May 16 18:12:32 2011 (r221999) +++ projects/stable_7_xen/contrib/bind9/bin/named/query.c Mon May 16 19:29:58 2011 (r222000) @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: query.c,v 1.257.18.55 2010/07/03 23:45:26 tbox Exp $ */ +/* $Id: query.c,v 1.257.18.56 2010/11/17 10:21:01 marka Exp $ */ /*! \file */ @@ -1129,7 +1129,8 @@ query_addadditional(void *arg, dns_name_ goto cleanup; } result = dns_db_find(db, name, version, type, - client->query.dboptions | DNS_DBFIND_GLUEOK, + client->query.dboptions | + DNS_DBFIND_GLUEOK | DNS_DBFIND_ADDITIONALOK, client->now, &node, fname, rdataset, sigrdataset); if (result == DNS_R_GLUE && @@ -1614,7 +1615,8 @@ query_addadditional2(void *arg, dns_name goto try_glue; result = dns_db_find(db, name, version, type, - client->query.dboptions | DNS_DBFIND_GLUEOK, + client->query.dboptions | + DNS_DBFIND_GLUEOK | DNS_DBFIND_ADDITIONALOK, client->now, &node, fname, NULL, NULL); if (result == ISC_R_SUCCESS) goto found; Copied: projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt (from r221999, stable/7/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/stable_7_xen/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt Mon May 16 19:29:58 2011 (r222000, copy of r221999, stable/7/contrib/bind9/doc/draft/draft-ietf-behave-dns64-11.txt) @@ -0,0 +1,1792 @@ + + + +BEHAVE WG M. Bagnulo +Internet-Draft UC3M +Intended status: Standards Track A. Sullivan +Expires: April 4, 2011 Shinkuro + P. Matthews + Alcatel-Lucent + I. van Beijnum + IMDEA Networks + October 1, 2010 + + +DNS64: DNS extensions for Network Address Translation from IPv6 Clients + to IPv4 Servers + draft-ietf-behave-dns64-11 + +Abstract + + DNS64 is a mechanism for synthesizing AAAA records from A records. + DNS64 is used with an IPv6/IPv4 translator to enable client-server + communication between an IPv6-only client and an IPv4-only server, + without requiring any changes to either the IPv6 or the IPv4 node, + for the class of applications that work through NATs. This document + specifies DNS64, and provides suggestions on how it should be + deployed in conjunction with IPv6/IPv4 translators. + +Status of this Memo + + This Internet-Draft is submitted in full conformance with the + provisions of BCP 78 and BCP 79. + + Internet-Drafts are working documents of the Internet Engineering + Task Force (IETF). Note that other groups may also distribute + working documents as Internet-Drafts. The list of current Internet- + Drafts is at http://datatracker.ietf.org/drafts/current/. + + Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress." + + This Internet-Draft will expire on April 4, 2011. + +Copyright Notice + + Copyright (c) 2010 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + + + +Bagnulo, et al. Expires April 4, 2011 [Page 1] + +Internet-Draft DNS64 October 2010 + + + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 2] + +Internet-Draft DNS64 October 2010 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 3. Background to DNS64-DNSSEC interaction . . . . . . . . . . . . 8 + 4. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 10 + 5. DNS64 Normative Specification . . . . . . . . . . . . . . . . 11 + 5.1. Resolving AAAA queries and the answer section . . . . . . 11 + 5.1.1. The answer when there is AAAA data available . . . . . 12 + 5.1.2. The answer when there is an error . . . . . . . . . . 12 + 5.1.3. Dealing with timeouts . . . . . . . . . . . . . . . . 12 + 5.1.4. Special exclusion set for AAAA records . . . . . . . . 13 + 5.1.5. Dealing with CNAME and DNAME . . . . . . . . . . . . . 13 + 5.1.6. Data for the answer when performing synthesis . . . . 13 + 5.1.7. Performing the synthesis . . . . . . . . . . . . . . . 14 + 5.1.8. Querying in parallel . . . . . . . . . . . . . . . . . 14 + 5.2. Generation of the IPv6 representations of IPv4 + addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 + 5.3. Handling other Resource Records and the Additional + Section . . . . . . . . . . . . . . . . . . . . . . . . . 16 + 5.3.1. PTR Resource Record . . . . . . . . . . . . . . . . . 16 + 5.3.2. Handling the additional section . . . . . . . . . . . 17 + 5.3.3. Other Resource Records . . . . . . . . . . . . . . . . 17 + 5.4. Assembling a synthesized response to a AAAA query . . . . 18 + 5.5. DNSSEC processing: DNS64 in validating resolver mode . . . 18 + 6. Deployment notes . . . . . . . . . . . . . . . . . . . . . . . 19 + 6.1. DNS resolvers and DNS64 . . . . . . . . . . . . . . . . . 19 + 6.2. DNSSEC validators and DNS64 . . . . . . . . . . . . . . . 20 + 6.3. DNS64 and multihomed and dual-stack hosts . . . . . . . . 20 + 6.3.1. IPv6 multihomed hosts . . . . . . . . . . . . . . . . 20 + 6.3.2. Accidental dual-stack DNS64 use . . . . . . . . . . . 21 + 6.3.3. Intentional dual-stack DNS64 use . . . . . . . . . . . 21 + 7. Deployment scenarios and examples . . . . . . . . . . . . . . 22 + 7.1. Example of An-IPv6-network-to-IPv4-Internet setup with + DNS64 in DNS server mode . . . . . . . . . . . . . . . . . 22 + 7.2. An example of an-IPv6-network-to-IPv4-Internet setup + with DNS64 in stub-resolver mode . . . . . . . . . . . . . 24 + 7.3. Example of IPv6-Internet-to-an-IPv4-network setup + DNS64 in DNS server mode . . . . . . . . . . . . . . . . . 25 + 8. Security Considerations . . . . . . . . . . . . . . . . . . . 27 + 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 + 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 28 + 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28 + 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28 + 12.1. Normative References . . . . . . . . . . . . . . . . . . . 28 + 12.2. Informative References . . . . . . . . . . . . . . . . . . 29 + Appendix A. Motivations and Implications of synthesizing AAAA + Resource Records when real AAAA Resource Records + + + +Bagnulo, et al. Expires April 4, 2011 [Page 3] + +Internet-Draft DNS64 October 2010 + + + exist . . . . . . . . . . . . . . . . . . . . . . . . 30 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 4] + +Internet-Draft DNS64 October 2010 + + +1. Introduction + + This document specifies DNS64, a mechanism that is part of the + toolbox for IPv6-IPv4 transition and co-existence. DNS64, used + together with an IPv6/IPv4 translator such as stateful NAT64 + [I-D.ietf-behave-v6v4-xlate-stateful], allows an IPv6-only client to + initiate communications by name to an IPv4-only server. + + DNS64 is a mechanism for synthesizing AAAA resource records (RRs) + from A RRs. A synthetic AAAA RR created by the DNS64 from an + original A RR contains the same owner name of the original A RR but + it contains an IPv6 address instead of an IPv4 address. The IPv6 + address is an IPv6 representation of the IPv4 address contained in + the original A RR. The IPv6 representation of the IPv4 address is + algorithmically generated from the IPv4 address returned in the A RR + and a set of parameters configured in the DNS64 (typically, an IPv6 + prefix used by IPv6 representations of IPv4 addresses and optionally + other parameters). + + Together with an IPv6/IPv4 translator, these two mechanisms allow an + IPv6-only client to initiate communications to an IPv4-only server + using the FQDN of the server. + + These mechanisms are expected to play a critical role in the IPv4- + IPv6 transition and co-existence. Due to IPv4 address depletion, it + is likely that in the future, many IPv6-only clients will want to + connect to IPv4-only servers. In the typical case, the approach only + requires the deployment of IPv6/IPv4 translators that connect an + IPv6-only network to an IPv4-only network, along with the deployment + of one or more DNS64-enabled name servers. However, some features + require performing the DNS64 function directly in the end-hosts + themselves. + + This document is structured as follows: section 2 provides a non- + normative overview of the behaviour of DNS64. Section 3 provides a + non-normative background required to understand the interaction + between DNS64 and DNSSEC. The normative specification of DNS64 is + provided in sections 4, 5 and 6. Section 4 defines the terminology, + section 5 is the actual DNS64 specification and section 6 covers + deployments issues. Section 7 is non-normative and provides a set of + examples and typical deployment scenarios. + + +2. Overview + + This section provides an introduction to the DNS64 mechanism. + + We assume that we have one or more IPv6/IPv4 translator boxes + + + +Bagnulo, et al. Expires April 4, 2011 [Page 5] + +Internet-Draft DNS64 October 2010 + + + connecting an IPv4 network and an IPv6 network. The IPv6/IPv4 + translator device provides translation services between the two + networks enabling communication between IPv4-only hosts and IPv6-only + hosts. (NOTE: By IPv6-only hosts we mean hosts running IPv6-only + applications, hosts that can only use IPv6, as well as cases where + only IPv6 connectivity is available to the client. By IPv4-only + servers we mean servers running IPv4-only applications, servers that + can only use IPv4, as well as cases where only IPv4 connectivity is + available to the server). Each IPv6/IPv4 translator used in + conjunction with DNS64 must allow communications initiated from the + IPv6-only host to the IPv4-only host. + + To allow an IPv6 initiator to do a standard AAAA RR DNS lookup to + learn the address of the responder, DNS64 is used to synthesize a + AAAA record from an A record containing a real IPv4 address of the + responder, whenever the DNS64 cannot retrieve a AAAA record for the + queried name. The DNS64 service appears as a regular DNS server or + resolver to the IPv6 initiator. The DNS64 receives a AAAA DNS query + generated by the IPv6 initiator. It first attempts a resolution for + the requested AAAA records. If there are no AAAA records available + for the target node (which is the normal case when the target node is + an IPv4-only node), DNS64 performs a query for A records. For each A + record discovered, DNS64 creates a synthetic AAAA RR from the + information retrieved in the A RR. + + The owner name of a synthetic AAAA RR is the same as that of the + original A RR, but an IPv6 representation of the IPv4 address + contained in the original A RR is included in the AAAA RR. The IPv6 + representation of the IPv4 address is algorithmically generated from + the IPv4 address and additional parameters configured in the DNS64. + Among those parameters configured in the DNS64, there is at least one + IPv6 prefix. If not explicitly mentioned, all prefixes are treated + equally and the operations described in this document are performed + using the prefixes available. So as to be general, we will call any + of these prefixes Pref64::/n, and describe the operations made with + the generic prefix Pref64::/n. The IPv6 address representing IPv4 + addresses included in the AAAA RR synthesized by the DNS64 contain + Pref64::/n and they also embed the original IPv4 address. + + The same algorithm and the same Pref64::/n prefix(es) must be + configured both in the DNS64 device and the IPv6/IPv4 translator(s), + so that both can algorithmically generate the same IPv6 + representation for a given IPv4 address. In addition, it is required + that IPv6 packets addressed to an IPv6 destination address that + contains the Pref64::/n be delivered to an IPv6/IPv4 translator that + has that particular Pref64::/n configured, so they can be translated + into IPv4 packets. + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 6] + +Internet-Draft DNS64 October 2010 + + + Once the DNS64 has synthesized the AAAA RRs, the synthetic AAAA RRs + are passed back to the IPv6 initiator, which will initiate an IPv6 + communication with the IPv6 address associated with the IPv4 + receiver. The packet will be routed to an IPv6/IPv4 translator which + will forward it to the IPv4 network. + + In general, the only shared state between the DNS64 and the IPv6/IPv4 + translator is the Pref64::/n and an optional set of static + parameters. The Pref64::/n and the set of static parameters must be + configured to be the same on both; there is no communication between + the DNS64 device and IPv6/IPv4 translator functions. The mechanism + to be used for configuring the parameters of the DNS64 is beyond the + scope of this memo. + + The prefixes to be used as Pref64::/n and their applicability are + discussed in [I-D.ietf-behave-address-format]. There are two types + of prefixes that can be used as Pref64::/n. + + The Pref64::/n can be the Well-Known Prefix 64:FF9B::/96 reserved + by [I-D.ietf-behave-address-format] for the purpose of + representing IPv4 addresses in IPv6 address space. + + The Pref64::/n can be a Network-Specific Prefix (NSP). An NSP is + an IPv6 prefix assigned by an organization to create IPv6 + representations of IPv4 addresses. + + The main difference in the nature of the two types of prefixes is + that the NSP is a locally assigned prefix that is under control of + the organization that is providing the translation services, while + the Well-Known Prefix is a prefix that has a global meaning since it + has been assigned for the specific purpose of representing IPv4 + addresses in IPv6 address space. + + The DNS64 function can be performed in any of three places. The + terms below are more formally defined in Section 4. + + The first option is to locate the DNS64 function in authoritative + servers for a zone. In this case, the authoritative server provides + synthetic AAAA RRs for an IPv4-only host in its zone. This is one + type of DNS64 server. + + Another option is to locate the DNS64 function in recursive name + servers serving end hosts. In this case, when an IPv6-only host + queries the name server for AAAA RRs for an IPv4-only host, the name + server can perform the synthesis of AAAA RRs and pass them back to + the IPv6-only initiator. The main advantage of this mode is that + current IPv6 nodes can use this mechanism without requiring any + modification. This mode is called "DNS64 in DNS recursive resolver + + + +Bagnulo, et al. Expires April 4, 2011 [Page 7] + +Internet-Draft DNS64 October 2010 + + + mode". This is a second type of DNS64 server, and it is also one + type of DNS64 resolver. + + The last option is to place the DNS64 function in the end hosts, + coupled to the local (stub) resolver. In this case, the stub + resolver will try to obtain (real) AAAA RRs and in case they are not + available, the DNS64 function will synthesize AAAA RRs for internal + usage. This mode is compatible with some functions like DNSSEC + validation in the end host. The main drawback of this mode is its + deployability, since it requires changes in the end hosts. This mode + is called "DNS64 in stub-resolver mode". This is the second type of + DNS64 resolver. + + +3. Background to DNS64-DNSSEC interaction + + DNSSEC ([RFC4033], [RFC4034], [RFC4035]) presents a special challenge + for DNS64, because DNSSEC is designed to detect changes to DNS + answers, and DNS64 may alter answers coming from an authoritative + server. + + A recursive resolver can be security-aware or security-oblivious. + Moreover, a security-aware recursive resolver can be validating or + non-validating, according to operator policy. In the cases below, + the recursive resolver is also performing DNS64, and has a local + policy to validate. We call this general case vDNS64, but in all the + cases below the DNS64 functionality should be assumed needed. + + DNSSEC includes some signaling bits that offer some indicators of + what the query originator understands. + + If a query arrives at a vDNS64 device with the "DNSSEC OK" (DO) bit + set, the query originator is signaling that it understands DNSSEC. + The DO bit does not indicate that the query originator will validate + the response. It only means that the query originator can understand + responses containing DNSSEC data. Conversely, if the DO bit is + clear, that is evidence that the querying agent is not aware of + DNSSEC. + + If a query arrives at a vDNS64 device with the "Checking Disabled" + (CD) bit set, it is an indication that the querying agent wants all + the validation data so it can do checking itself. By local policy, + vDNS64 could still validate, but it must return all data to the + querying agent anyway. + + Here are the possible cases: + + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 8] + +Internet-Draft DNS64 October 2010 + + + 1. A DNS64 (DNSSEC-aware or DNSSEC-oblivious) receives a query with + the DO bit clear. In this case, DNSSEC is not a concern, because + the querying agent does not understand DNSSEC responses. The + DNS64 can do validation of the response, if dictated by its local + policy. + + 2. A security-oblivious DNS64 receives a query with the DO bit set, + and the CD bit clear or set. This is just like the case of a + non-DNS64 case: the server doesn't support it, so the querying + agent is out of luck. + + 3. A security-aware and non-validating DNS64 receives a query with + the DO bit set and the CD bit clear. Such a resolver is not + validating responses, likely due to local policy (see [RFC4035], + section 4.2). For that reason, this case amounts to the same as + the previous case, and no validation happens. + + 4. A security-aware and non-validating DNS64 receives a query with + the DO bit set and the CD bit set. In this case, the DNS64 is + supposed to pass on all the data it gets to the query initiator + (see section 3.2.2 of [RFC4035]). This case will not work with + DNS64, unless the validating resolver is prepared to do DNS64 + itself. If the DNS64 modifies the record, the client will get + the data back and try to validate it, and the data will be + invalid as far as the client is concerned. + + 5. A security-aware and validating DNS64 resolver receives a query + with the DO bit clear and CD clear. In this case, the resolver + validates the data. If it fails, it returns RCODE 2 (Server + failure); otherwise, it returns the answer. This is the ideal + case for vDNS64. The resolver validates the data, and then + synthesizes the new record and passes that to the client. The + client, which is presumably not validating (else it should have + set DO and CD), cannot tell that DNS64 is involved. + + 6. A security-aware and validating DNS64 resolver receives a query + with the DO bit set and CD clear. This works like the previous + case, except that the resolver should also set the "Authentic + Data" (AD) bit on the response. + + 7. A security-aware and validating DNS64 resolver receives a query + with the DO bit set and CD set. This is effectively the same as + the case where a security-aware and non-validating recursive + resolver receives a similar query, and the same thing will + happen: the downstream validator will mark the data as invalid if + DNS64 has performed synthesis. The node needs to do DNS64 + itself, or else communication will fail. + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 9] + +Internet-Draft DNS64 October 2010 + + +4. Terminology + + This section provides definitions for the special terms used in the + document. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119]. + + Authoritative server: A DNS server that can answer authoritatively a + given DNS request. + + DNS64: A logical function that synthesizes DNS resource records (e.g + AAAA records containing IPv6 addresses) from DNS resource records + actually contained in the DNS (e.g., A records containing IPv4 + addresses). + + DNS64 recursive resolver: A recursive resolver that provides the + DNS64 functionality as part of its operation. This is the same + thing as "DNS64 in recursive resolver mode". + + DNS64 resolver: Any resolver (stub resolver or recursive resolver) + that provides the DNS64 function. + + DNS64 server: Any server providing the DNS64 function. This + includes the server portion of a recursive resolver when it is + providing the DNS64 function. + + IPv4-only server: Servers running IPv4-only applications, servers + that can only use IPv4, as well as cases where only IPv4 + connectivity is available to the server. + + IPv6-only hosts: Hosts running IPv6-only applications, hosts that + can only use IPv6, as well as cases where only IPv6 connectivity + is available to the client. + + Recursive resolver: A DNS server that accepts requests from one + resolver, and asks another server (of some description) for the + answer on behalf of the first resolver. Full discussion of DNS + recursion is beyond the scope of this document; see [RFC1034] and + [RFC1035] for full details. + + Synthetic RR: A DNS resource record (RR) that is not contained in + the authoritative servers' zone data, but which is instead + synthesized from other RRs in the same zone. An example is a + synthetic AAAA record created from an A record. + + + + + +Bagnulo, et al. Expires April 4, 2011 [Page 10] + +Internet-Draft DNS64 October 2010 + + + IPv6/IPv4 translator: A device that translates IPv6 packets to IPv4 + packets and vice-versa. It is only required that the + communication initiated from the IPv6 side be supported. + + For a detailed understanding of this document, the reader should also + be familiar with DNS terminology from [RFC1034], [RFC1035] and + current NAT terminology from [RFC4787]. Some parts of this document + assume familiarity with the terminology of the DNS security + extensions outlined in [RFC4035]. It is worth emphasizing that while + DNS64 is a logical function separate from the DNS, it is nevertheless + closely associated with that protocol. It depends on the DNS + protocol, and some behavior of DNS64 will interact with regular DNS + responses. + + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue May 17 12:47:38 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69A1E106564A; Tue, 17 May 2011 12:47:38 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 59F928FC12; Tue, 17 May 2011 12:47:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4HClcQE031546; Tue, 17 May 2011 12:47:38 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4HClchO031544; Tue, 17 May 2011 12:47:38 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105171247.p4HClchO031544@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 17 May 2011 12:47:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222022 - projects/pseries/dev/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 17 May 2011 12:47:38 -0000 Author: nwhitehorn Date: Tue May 17 12:47:38 2011 New Revision: 222022 URL: http://svn.freebsd.org/changeset/base/222022 Log: Make the primary name of the OF console device /dev/ofwcons, and only alias it to the contents of the output property if it is defined. This avoids a panic when booting machines (QEMU) where the output-device property is not defined. Since output-device is free-form and potentially conflicts with other entries in /dev, I also am not sure we should be doing the aliasing at all. Modified: projects/pseries/dev/ofw/ofw_console.c Modified: projects/pseries/dev/ofw/ofw_console.c ============================================================================== --- projects/pseries/dev/ofw/ofw_console.c Tue May 17 11:56:50 2011 (r222021) +++ projects/pseries/dev/ofw/ofw_console.c Tue May 17 12:47:38 2011 (r222022) @@ -87,17 +87,19 @@ cn_drvinit(void *unused) if (ofw_consdev.cn_pri != CN_DEAD && ofw_consdev.cn_name[0] != '\0') { - if ((options = OF_finddevice("/options")) == -1 || - OF_getprop(options, "output-device", output, - sizeof(output)) == -1) - return; + tp = tty_alloc(&ofw_ttydevsw, NULL); + tty_makedev(tp, NULL, "%s", "ofwcons"); + /* * XXX: This is a hack and it may result in two /dev/ttya * XXX: devices on platforms where the sab driver works. */ - tp = tty_alloc(&ofw_ttydevsw, NULL); - tty_makedev(tp, NULL, "%s", output); - tty_makealias(tp, "ofwcons"); + if ((options = OF_finddevice("/options")) == -1 || + OF_getprop(options, "output-device", output, + sizeof(output)) == -1) + return; + if (strlen(output) > 0) + tty_makealias(tp, output); } } From owner-svn-src-projects@FreeBSD.ORG Tue May 17 13:47:32 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A46A4106566B; Tue, 17 May 2011 13:47:32 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9595C8FC20; Tue, 17 May 2011 13:47:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4HDlWva033501; Tue, 17 May 2011 13:47:32 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4HDlWqT033499; Tue, 17 May 2011 13:47:32 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201105171347.p4HDlWqT033499@svn.freebsd.org> From: Neel Natu Date: Tue, 17 May 2011 13:47:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222024 - projects/bhyve/sys/modules/vmm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 17 May 2011 13:47:32 -0000 Author: neel Date: Tue May 17 13:47:32 2011 New Revision: 222024 URL: http://svn.freebsd.org/changeset/base/222024 Log: Remove misleading macro definition (-DOLD_BINUTILS) from CFLAGS. At this point we require binutils from ports that understands how to assemble the VT-x instructions. Discussed with: grehan@ Modified: projects/bhyve/sys/modules/vmm/Makefile Modified: projects/bhyve/sys/modules/vmm/Makefile ============================================================================== --- projects/bhyve/sys/modules/vmm/Makefile Tue May 17 12:58:19 2011 (r222023) +++ projects/bhyve/sys/modules/vmm/Makefile Tue May 17 13:47:32 2011 (r222024) @@ -10,7 +10,6 @@ KMOD= vmm SRCS= device_if.h bus_if.h pci_if.h CFLAGS+= -DVMM_KEEP_STATS -DSMP -CFLAGS+= -DOLD_BINUTILS CFLAGS+= -I${.CURDIR}/../../amd64/vmm CFLAGS+= -I${.CURDIR}/../../amd64/vmm/io CFLAGS+= -I${.CURDIR}/../../amd64/vmm/intel From owner-svn-src-projects@FreeBSD.ORG Tue May 17 16:13:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7C13106566C; Tue, 17 May 2011 16:13:59 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B8B608FC13; Tue, 17 May 2011 16:13:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4HGDxL5038050; Tue, 17 May 2011 16:13:59 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4HGDxKE038048; Tue, 17 May 2011 16:13:59 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201105171613.p4HGDxKE038048@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Tue, 17 May 2011 16:13:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222030 - projects/pf/pf45/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 17 May 2011 16:13:59 -0000 Author: bz Date: Tue May 17 16:13:59 2011 New Revision: 222030 URL: http://svn.freebsd.org/changeset/base/222030 Log: Make compile without INET fixing an #ifdef. While here make function static. Modified: projects/pf/pf45/sys/contrib/pf/net/pf.c Modified: projects/pf/pf45/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/pf45/sys/contrib/pf/net/pf.c Tue May 17 15:57:31 2011 (r222029) +++ projects/pf/pf45/sys/contrib/pf/net/pf.c Tue May 17 16:13:59 2011 (r222030) @@ -278,7 +278,7 @@ void pf_send_tcp(const struct pf_rule u_int16_t, u_int16_t, u_int32_t, u_int32_t, u_int8_t, u_int16_t, u_int16_t, u_int8_t, int, u_int16_t, struct ether_header *, struct ifnet *); -void pf_send_icmp(struct mbuf *, u_int8_t, u_int8_t, +static void pf_send_icmp(struct mbuf *, u_int8_t, u_int8_t, sa_family_t, struct pf_rule *); void pf_detach_state(struct pf_state *); void pf_state_key_detach(struct pf_state *, int); @@ -2515,7 +2515,7 @@ pf_send_tcp(const struct pf_rule *r, sa_ } } -void +static void pf_send_icmp(struct mbuf *m, u_int8_t type, u_int8_t code, sa_family_t af, struct pf_rule *r) { @@ -2523,8 +2523,8 @@ pf_send_icmp(struct mbuf *m, u_int8_t ty #ifdef __FreeBSD__ #ifdef INET struct ip *ip; - struct pf_mtag *pf_mtag; #endif + struct pf_mtag *pf_mtag; #endif #ifdef __FreeBSD__ From owner-svn-src-projects@FreeBSD.ORG Tue May 17 22:03:02 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 609E51065674; Tue, 17 May 2011 22:03:02 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BF9A8FC13; Tue, 17 May 2011 22:03:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4HM32Uc048790; Tue, 17 May 2011 22:03:02 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4HM31q6048760; Tue, 17 May 2011 22:03:01 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105172203.p4HM31q6048760@svn.freebsd.org> From: Attilio Rao Date: Tue, 17 May 2011 22:03:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222038 - in projects/largeSMP: . contrib/top etc/rc.d lib lib/libc/sys lib/libpkg lib/libsbuf sbin/ipfw share/man/man4 share/man/man5 share/man/man9 share/misc share/mk sys/dev/ath sys... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 17 May 2011 22:03:02 -0000 Author: attilio Date: Tue May 17 22:03:01 2011 New Revision: 222038 URL: http://svn.freebsd.org/changeset/base/222038 Log: MFC Added: projects/largeSMP/lib/libsbuf/Symbol.map - copied unchanged from r222037, head/lib/libsbuf/Symbol.map projects/largeSMP/lib/libsbuf/Version.def - copied unchanged from r222037, head/lib/libsbuf/Version.def projects/largeSMP/tools/build/options/WITH_OFED projects/largeSMP/usr.sbin/pkg_install/lib/ - copied from r222037, head/usr.sbin/pkg_install/lib/ Deleted: projects/largeSMP/lib/libpkg/ Modified: projects/largeSMP/Makefile.inc1 projects/largeSMP/etc/rc.d/ipfilter projects/largeSMP/etc/rc.d/pf projects/largeSMP/lib/Makefile projects/largeSMP/lib/libc/sys/mq_setattr.2 projects/largeSMP/lib/libsbuf/Makefile projects/largeSMP/sbin/ipfw/ipfw.8 projects/largeSMP/share/man/man4/cc_hd.4 projects/largeSMP/share/man/man4/geom_map.4 projects/largeSMP/share/man/man4/xhci.4 projects/largeSMP/share/man/man5/rc.conf.5 projects/largeSMP/share/man/man5/src.conf.5 projects/largeSMP/share/man/man9/sbuf.9 projects/largeSMP/share/misc/iso3166 projects/largeSMP/share/mk/bsd.libnames.mk projects/largeSMP/sys/dev/ath/ah_osdep.c projects/largeSMP/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/largeSMP/sys/dev/cxgbe/t4_main.c projects/largeSMP/sys/dev/pci/pcireg.h projects/largeSMP/sys/dev/usb/controller/xhci_pci.c projects/largeSMP/sys/dev/usb/controller/xhcireg.h projects/largeSMP/sys/kern/subr_sbuf.c projects/largeSMP/sys/kern/subr_smp.c projects/largeSMP/sys/netinet/sctp_output.c projects/largeSMP/sys/netinet/sctp_usrreq.c projects/largeSMP/sys/powerpc/booke/pmap.c projects/largeSMP/usr.sbin/ifmcstat/ifmcstat.8 projects/largeSMP/usr.sbin/pkg_install/Makefile projects/largeSMP/usr.sbin/pkg_install/Makefile.inc projects/largeSMP/usr.sbin/pkg_install/add/Makefile projects/largeSMP/usr.sbin/pkg_install/add/extract.c projects/largeSMP/usr.sbin/pkg_install/add/futil.c projects/largeSMP/usr.sbin/pkg_install/add/main.c projects/largeSMP/usr.sbin/pkg_install/add/perform.c projects/largeSMP/usr.sbin/pkg_install/create/Makefile projects/largeSMP/usr.sbin/pkg_install/create/main.c projects/largeSMP/usr.sbin/pkg_install/create/perform.c projects/largeSMP/usr.sbin/pkg_install/create/pl.c projects/largeSMP/usr.sbin/pkg_install/delete/Makefile projects/largeSMP/usr.sbin/pkg_install/delete/main.c projects/largeSMP/usr.sbin/pkg_install/delete/perform.c projects/largeSMP/usr.sbin/pkg_install/info/Makefile projects/largeSMP/usr.sbin/pkg_install/info/info.h projects/largeSMP/usr.sbin/pkg_install/info/main.c projects/largeSMP/usr.sbin/pkg_install/info/perform.c projects/largeSMP/usr.sbin/pkg_install/info/show.c projects/largeSMP/usr.sbin/pkg_install/updating/Makefile projects/largeSMP/usr.sbin/pkg_install/updating/main.c projects/largeSMP/usr.sbin/pkg_install/version/Makefile projects/largeSMP/usr.sbin/pkg_install/version/main.c projects/largeSMP/usr.sbin/pkg_install/version/perform.c Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/Makefile.inc1 ============================================================================== --- projects/largeSMP/Makefile.inc1 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/Makefile.inc1 Tue May 17 22:03:01 2011 (r222038) @@ -1205,7 +1205,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \ ${_kerberos5_lib_libroken} \ lib/libbz2 lib/libcom_err lib/libcrypt \ - lib/libexpat lib/libfetch \ + lib/libexpat \ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ @@ -1238,7 +1238,6 @@ _cddl_lib= cddl/lib _secure_lib_libcrypto= secure/lib/libcrypto _secure_lib_libssl= secure/lib/libssl lib/libradius__L secure/lib/libssl__L: secure/lib/libcrypto__L -lib/libfetch__L: secure/lib/libcrypto__L secure/lib/libssl__L lib/libmd__L .if ${MK_OPENSSH} != "no" _secure_lib_libssh= secure/lib/libssh secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L @@ -1274,7 +1273,7 @@ _lib_libypclnt= lib/libypclnt .endif .if ${MK_OPENSSL} == "no" -lib/libfetch__L lib/libradius__L: lib/libmd__L +lib/libradius__L: lib/libmd__L .endif .for _lib in ${_prereq_libs} Modified: projects/largeSMP/etc/rc.d/ipfilter ============================================================================== --- projects/largeSMP/etc/rc.d/ipfilter Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/etc/rc.d/ipfilter Tue May 17 22:03:01 2011 (r222038) @@ -23,7 +23,7 @@ resync_precmd="$stop_precmd" resync_cmd="ipfilter_resync" status_precmd="$stop_precmd" status_cmd="ipfilter_status" -extra_commands="reload resync status" +extra_commands="reload resync" required_modules="ipl:ipfilter" ipfilter_start() Modified: projects/largeSMP/etc/rc.d/pf ============================================================================== --- projects/largeSMP/etc/rc.d/pf Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/etc/rc.d/pf Tue May 17 22:03:01 2011 (r222038) @@ -19,7 +19,7 @@ check_cmd="pf_check" reload_cmd="pf_reload" resync_cmd="pf_resync" status_cmd="pf_status" -extra_commands="check reload resync status" +extra_commands="check reload resync" required_files="$pf_rules" required_modules="pf" Modified: projects/largeSMP/lib/Makefile ============================================================================== --- projects/largeSMP/lib/Makefile Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/lib/Makefile Tue May 17 22:03:01 2011 (r222038) @@ -89,7 +89,6 @@ SUBDIR= ${SUBDIR_ORDERED} \ libopie \ libpam \ libpcap \ - ${_libpkg} \ ${_libpmc} \ ${_libproc} \ libprocstat \ @@ -215,10 +214,6 @@ _libmp= libmp _libpmc= libpmc .endif -.if ${MK_PKGTOOLS} != "no" -_libpkg= libpkg -.endif - .if ${MK_SENDMAIL} != "no" _libmilter= libmilter _libsm= libsm Modified: projects/largeSMP/lib/libc/sys/mq_setattr.2 ============================================================================== --- projects/largeSMP/lib/libc/sys/mq_setattr.2 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/lib/libc/sys/mq_setattr.2 Tue May 17 22:03:01 2011 (r222038) @@ -37,7 +37,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 29, 2005 +.Dd May 17, 2011 .Dt MQ_SETATTR 2 .Os .Sh NAME @@ -50,7 +50,7 @@ .Ft int .Fo mq_setattr .Fa "mqd_t mqdes" -.Fa "struct mq_attr *restrict mqstat" +.Fa "const struct mq_attr *restrict mqstat" .Fa "struct mq_attr *restrict omqstat" .Fc .Sh DESCRIPTION Modified: projects/largeSMP/lib/libsbuf/Makefile ============================================================================== --- projects/largeSMP/lib/libsbuf/Makefile Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/lib/libsbuf/Makefile Tue May 17 22:03:01 2011 (r222038) @@ -1,8 +1,13 @@ # $FreeBSD$ -LIB= sbuf -SHLIBDIR?= /lib -SRCS= subr_sbuf.c +LIB= sbuf +SHLIBDIR?= /lib +SRCS= subr_sbuf.c + +SHLIB_MAJOR = 6 + +SYMBOL_MAPS= ${.CURDIR}/Symbol.map +VERSION_DEF= ${.CURDIR}/Version.def .PATH: ${.CURDIR}/../../sys/kern Copied: projects/largeSMP/lib/libsbuf/Symbol.map (from r222037, head/lib/libsbuf/Symbol.map) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/lib/libsbuf/Symbol.map Tue May 17 22:03:01 2011 (r222038, copy of r222037, head/lib/libsbuf/Symbol.map) @@ -0,0 +1,24 @@ +/* + * $FreeBSD$ + */ + +FBSD_1.2 { + sbuf_new; + sbuf_clear; + sbuf_setpos; + sbuf_bcat; + sbuf_bcpy; + sbuf_cat; + sbuf_cpy; + sbuf_printf; + sbuf_vprintf; + sbuf_putc; + sbuf_set_drain; + sbuf_trim; + sbuf_error; + sbuf_finish; + sbuf_data; + sbuf_len; + sbuf_done; + sbuf_delete; +}; Copied: projects/largeSMP/lib/libsbuf/Version.def (from r222037, head/lib/libsbuf/Version.def) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/lib/libsbuf/Version.def Tue May 17 22:03:01 2011 (r222038, copy of r222037, head/lib/libsbuf/Version.def) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +FBSD_1.2 { +}; Modified: projects/largeSMP/sbin/ipfw/ipfw.8 ============================================================================== --- projects/largeSMP/sbin/ipfw/ipfw.8 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sbin/ipfw/ipfw.8 Tue May 17 22:03:01 2011 (r222038) @@ -565,9 +565,9 @@ if the sysctl variable is set to 0 (default), one can use .Xr bpf 4 attached to the -.Xr ipfw0 +.Li ipfw0 pseudo interface. There is no overhead if no -.Xr bpf +.Xr bpf 4 is attached to the pseudo interface. .Pp If Modified: projects/largeSMP/share/man/man4/cc_hd.4 ============================================================================== --- projects/largeSMP/share/man/man4/cc_hd.4 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man4/cc_hd.4 Tue May 17 22:03:01 2011 (r222038) @@ -98,7 +98,7 @@ Community Foundation Silicon Valley. .Sh FUTURE WORK The Hamilton Institute have recently made some improvements to the algorithm implemented by this module and have called it Coexistent-TCP (C-TCP). -The improvments should be evaluated and potentially incorporated into this +The improvements should be evaluated and potentially incorporated into this module. .Sh HISTORY The Modified: projects/largeSMP/share/man/man4/geom_map.4 ============================================================================== --- projects/largeSMP/share/man/man4/geom_map.4 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man4/geom_map.4 Tue May 17 22:03:01 2011 (r222038) @@ -25,12 +25,12 @@ .\" .\" $FreeBSD$ .\" -.Dd April 5, 2011 +.Dd May 17, 2011 .Dt GEOM_MAP 4 .Os .Sh NAME .Nm geom_map -.Nd "GEOM module that map difined items as separate partitions" +.Nd "GEOM module that maps defined items as separate partitions" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your @@ -41,16 +41,16 @@ kernel configuration file: .Sh DESCRIPTION The .Nm -framework provides support for mapping defined parts of the media. Basicaly it -is helpful in the embedded devices where in the one continous flash are loader, -kernel and rootfs parts. The +framework provides support for mapping defined parts of the media. +Basically it is helpful for embedded devices where in the one continuous +flash are loader, kernel and rootfs parts. .Nm -allows making them available as separate parts and protect loader from -overwriting. +allows making them available as separate parts and protects the loader from +being overwritten. .Pp At boot time .Nm -partitions listed (only with bootverbose) as: +partitions are listed (only with bootverbose) as: .Bd -literal -offset indent MAP: 0x30000, data=0x30000 "/dev/map/bootloader" MAP: 30000x10000, data=0x10000 "/dev/map/factory" @@ -62,13 +62,19 @@ MAP: 150000x690000, data=0x690000 "/dev/ MAP: 7e0000x20000, data=0x20000 "/dev/map/config" .Ed .Pp -Also +The current .Nm -current configuration can be accessible with sysctl's kern.geom.conftxt, -kern.geom.confxml, kern.geom.confdot or geom map list. +configuration can be accessed with the following +.Xr sysctl 8 +nodes: +.Va kern.geom.conftxt , kern.geom.confxml , +and +.Va kern.geom.confdot +or by using +.Dq Li "geom map list" . .Bd -literal -offset indent -# sysctl kern.geom.conftxt -kern.geom.conftxt: 0 MD md0 10485760 512 u 0 s 512 f 0 fs 0 l 10485760 t malloc +# sysctl -n kern.geom.conftxt +0 MD md0 10485760 512 u 0 s 512 f 0 fs 0 l 10485760 t malloc 0 DISK cfid0 8388608 4 hd 0 sc 0 1 MAP map/config 131072 4 i 5 o 8257536 entry 0 dsize 131072 1 MAP map/rootfs 6881280 4 i 4 o 1376256 entry 0 dsize 6881280 @@ -79,49 +85,55 @@ kern.geom.conftxt: 0 MD md0 10485760 512 1 MAP map/bootloader 196608 4 i 0 o 0 entry 0 dsize 196608 .Ed .Pp -Driver configuration can be done in device hints file. List of used parameters: +Driver configuration can be done in +.Xr device.hints 5 . +List of used parameters: .Bl -tag -width indent -.It Fa at +.It Va at select media to attach -.It Fa name -name of partiton (will create device /dev/map/that_name) -.It Fa start +.It Va name +name of partition (will create device +.Pa /dev/map/ Ns Ar that_name ) +.It Va start offset from the beginning of the parent media to start of the mapped partition. -This field can also have special value -"search:searchstart:searchstep:searchkey", where: +This field can also have a special value +.Qq Li search: Ns Ar searchstart Ns Li : Ns Ar searchstep Ns Li : Ns Ar searchkey , +where: .Bl -tag -width indent -.It Fa searchstart +.It Ar searchstart offset from the beginning of the parent media where search will be started -.It Fa searchstep +.It Ar searchstep value of the increment used while searching for the partition boundary markers -.It Fa searchkey -key which will be used to find partition boundary markers. Wildcard "." char -can be used to match any char on that position +.It Ar searchkey +key which will be used to find partition boundary markers. +The wildcard +.Ql .\& +can be used to match any character on that position .El -.It Fa end -offset from the beginning of the parent media to end of the mapped partition. -This field can also have special value -"search:searchstart:searchstep:searchkey", look "start" for details. -.It Fa offset -offset where the data of mapped partition begins +.It Va end +offset from the beginning of the parent media to the end of the mapped partition. +This field can also have the special value +.Qq Li search: Ns Ar searchstart Ns Li : Ns Ar searchstep Ns Li : Ns Ar searchkey , +as described above. +.It Va offset +offset where the data of the mapped partition begins .El .Pp -Each record contains start address(bytes) from the media begin, size(bytes), -offset where the data of mapped partition begins, and the name of new device. +Each record contains the start address (in bytes) from the media begin, size +(in bytes), offset where the data of mapped partition begins, and the name of +new device. .Bd -literal -offset indent MAP: 150000x690000, data=0x690000 "/dev/map/rootfs" .Ed .Bd -literal -00150000 - begin address +00150000 - start address 00690000 - size 00000000 - data begin from zero offset 00690000 - data size "map/rootfs" - new media will be accessible via /dev/map/rootfs dev. .Ed .Sh EXAMPLES -.Pp -.Bl -bullet -compact -If we need to implement layout shown above, we need to define the folowing +If we need to implement layout shown above, we need to define the following hints: .Bd -literal -offset indent hint.map.0.at="cfid0" @@ -129,10 +141,17 @@ hint.map.0.start=0x00000000 hint.map.0.end=0x00030000 hint.map.0.name="bootloader" hint.map.0.readonly=1 - .Ed -define "/dev/map/bootloader" at disk "cfid0" starting at 0x00000000 and end -0x00030000, also marked as readonly. +.Pp +This defines +.Pa /dev/map/bootloader +at disk +.Pa cfid0 +starting at +.Li 0x00000000 +and ending at +.Li 0x00030000 , +it is also marked as readonly. .Bd -literal -offset indent hint.map.1.at="cfid0" hint.map.1.start=0x00030000 @@ -148,13 +167,28 @@ hint.map.3.at="cfid0" hint.map.3.name="kernel" hint.map.3.start=0x00040000 hint.map.3.end="search:0x00100000:0x10000:.!/bin/sh" - .Ed -define "/dev/map/kernel" at disk "cfid0" starting at 0x00040000, but end -position must be searched by the key ".!/bin/sh", from offset 0x00100000 to end -of media with step 0x10000. Real marker in that case is "#!/bin/sh", but "#" -terminates the line when hints file is parsed, so we need to use wildcard "." -instead of "#". +.Pp +This defines +.Pa /dev/map/kernel +at disk +.Pa cfid0 +starting at +.Li 0x00040000 , +but the end position must be searched by finding the key +.Dq Li ".!/bin/sh" , +from offset +.Li 0x00100000 +to the end of media with step +.Li 0x10000 . +The real marker in this case is +.Dq Li "#!/bin/sh" , +but +.Ql # +terminates the line when the hints file is parsed, so we need to use wildcard +.Ql .\& +instead of +.Ql # . .Bd -literal -offset indent hint.map.4.at="cfid0" hint.map.4.name="rootfs" @@ -166,13 +200,11 @@ hint.map.5.start=0x007e0000 hint.map.5.end=0x00800000 hint.map.5.name="config" .Ed -.El .Sh SEE ALSO -.Xr GEOM 4 , +.Xr geom 4 , .Xr geom 8 , .Xr sysctl 8 .Sh AUTHORS -.An -nosplit The .Nm driver was written by Modified: projects/largeSMP/share/man/man4/xhci.4 ============================================================================== --- projects/largeSMP/share/man/man4/xhci.4 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man4/xhci.4 Tue May 17 22:03:01 2011 (r222038) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 24, 2011 +.Dd May 17, 2011 .Dt XHCI 4 .Os .Sh NAME @@ -49,6 +49,13 @@ The controller supports .Tn USB connection speeds up to 5.0Gbps when using a USB 3.0 compliant device. +.Sh HARDWARE +The +.Nm +driver supports +.Tn XHCI +compatible controllers having PCI class 12 (serial bus), +subclass 3 (USB) and programming interface 48 (XHCI). .Sh SEE ALSO .Xr ehci 4 , .Xr ohci 4 , Modified: projects/largeSMP/share/man/man5/rc.conf.5 ============================================================================== --- projects/largeSMP/share/man/man5/rc.conf.5 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man5/rc.conf.5 Tue May 17 22:03:01 2011 (r222038) @@ -3772,7 +3772,7 @@ Set to .Dq Li -l -U root by default. These are flags to pass to -.Xr jail . +.Xr jail 8 . .It Va jail_ Ns Ao Ar jname Ac Ns Va _interface .Pq Vt str Unset by default. Modified: projects/largeSMP/share/man/man5/src.conf.5 ============================================================================== --- projects/largeSMP/share/man/man5/src.conf.5 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man5/src.conf.5 Tue May 17 22:03:01 2011 (r222038) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 221733 2011-05-10 13:01:11Z ru .\" $FreeBSD$ -.Dd May 10, 2011 +.Dd May 17, 2011 .Dt SRC.CONF 5 .Os .Sh NAME @@ -712,6 +712,11 @@ will not be built either if this option Set to not build .Xr ntpd 8 and related programs. +.It Va WITH_OFED +.\" from FreeBSD: head/tools/build/options/WITH_OFED 222016 2011-05-17 11:06:41Z ru +Set to build the +.Dq "OpenFabrics Enterprise Distribution" +Infiniband software stack. .It Va WITHOUT_OPENSSH .\" from FreeBSD: head/tools/build/options/WITHOUT_OPENSSH 156932 2006-03-21 07:50:50Z ru Set to not build OpenSSH. Modified: projects/largeSMP/share/man/man9/sbuf.9 ============================================================================== --- projects/largeSMP/share/man/man9/sbuf.9 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/man/man9/sbuf.9 Tue May 17 22:03:01 2011 (r222038) @@ -52,7 +52,7 @@ .Nm sbuf_len , .Nm sbuf_done , .Nm sbuf_delete -.Nd safe string formatting +.Nd safe string composition .Sh SYNOPSIS .In sys/types.h .In sys/sbuf.h @@ -106,14 +106,20 @@ .Sh DESCRIPTION The .Nm -family of functions allows one to safely allocate, construct and -release bounded NUL-terminated strings in kernel space. +family of functions allows one to safely allocate, compose and +release strings in kernel or user space. +.Pp Instead of arrays of characters, these functions operate on structures called .Fa sbufs , defined in .In sys/sbuf.h . .Pp +Any errors encountered during the allocation or composition of the +string will be latched in the data structure, +making a single error test at the end of the composition +sufficient to determine success or failure of the entire process. +.Pp The .Fn sbuf_new function initializes the @@ -468,14 +474,35 @@ The function returns \-1 if copying string from userland failed, and number of bytes copied otherwise. +.Pp The -.Fn sbuf_finish -function returns ENOMEM if the sbuf overflowed before being finished, +.Fn sbuf_finish 9 +function (the kernel version) returns ENOMEM if the sbuf overflowed before +being finished, or returns the error code from the drain if one is attached. -When used as -.Xr sbuf_finish 3 , -.Fn sbuf_finish -will return \-1 and set errno on error instead. +.Pp +The +.Fn sbuf_finish 3 +function (the userland version) +will return zero for success and \-1 and set errno on error. +.Sh EXAMPLES +.Bd -literal -compact +#include + +struct sbuf *sb; + +sb = sbuf_new_auto(); +sbuf_cat("Customers found:\en"); +TAILQ_FOREACH(foo, &foolist, list) { + sbuf_printf(" %4d %s\en", foo->index, foo->name); + sbuf_printf(" Address: %s\en", foo->address); + sbuf_printf(" Zip: %s\en", foo->zipcode); +} +if (sbuf_finish(sb)) + err(1,"Could not generate message"); +transmit_msg(sbuf_data(sb), sbuf_len(sb)); +sbuf_delete(sb); +.Ed .Sh SEE ALSO .Xr printf 3 , .Xr strcat 3 , Modified: projects/largeSMP/share/misc/iso3166 ============================================================================== --- projects/largeSMP/share/misc/iso3166 Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/misc/iso3166 Tue May 17 22:03:01 2011 (r222038) @@ -46,6 +46,7 @@ BJ BEN 204 Benin BM BMU 060 Bermuda BT BTN 064 Bhutan BO BOL 068 Bolivia, Plurinational State of +BQ BES 535 Bonaire, Saint Eustatius and Saba BA BIH 070 Bosnia and Herzegovina BW BWA 072 Botswana BV BVT 074 Bouvet Island @@ -75,6 +76,7 @@ CR CRI 188 Costa Rica CI CIV 384 Cote d'Ivoire HR HRV 191 Croatia CU CUB 192 Cuba +CW CUW 531 Curacao CY CYP 196 Cyprus CZ CZE 203 Czech Republic DK DNK 208 Denmark @@ -174,7 +176,6 @@ NA NAM 516 Namibia NR NRU 520 Nauru NP NPL 524 Nepal NL NLD 528 Netherlands -AN ANT 530 Netherlands Antilles NC NCL 540 New Caledonia NZ NZL 554 New Zealand NI NIC 558 Nicaragua @@ -205,7 +206,7 @@ RW RWA 646 Rwanda BL BLM 652 Saint Barthelemy KN KNA 659 Saint Kitts and Nevis LC LCA 662 Saint Lucia -MF MAF 663 Saint Martin +MF MAF 663 Saint Martin (French Part) VC VCT 670 Saint Vincent and the Grenadines WS WSM 882 Samoa SM SMR 674 San Marino @@ -216,6 +217,7 @@ RS SRB 688 Serbia SC SYC 690 Seychelles SL SLE 694 Sierra Leone SG SGP 702 Singapore +SX SXM 534 Sint Maarten (Dutch part) SK SVK 703 Slovakia SI SVN 705 Slovenia SB SLB 090 Solomon Islands @@ -224,7 +226,7 @@ ZA ZAF 710 South Africa GS SGS 239 South Georgia and the South Sandwich Islands ES ESP 724 Spain LK LKA 144 Sri Lanka -SH SHN 654 Saint Helena +SH SHN 654 Saint Helena, Ascension and Tristan da Cunha PM SPM 666 Saint Pierre and Miquelon SD SDN 736 Sudan SR SUR 740 Suriname @@ -395,7 +397,7 @@ ZW ZWE 716 Zimbabwe # Newsletter III-41 1993-07-28 # MAURITIUS, changes outside this document # -# Newletter III-42 1993-07-12 +# Newsletter III-42 1993-07-12 # SAINT VINCENT AND THE GRENADINES, changes outside this document # # Newsletter III-43 1993-07-12 @@ -426,15 +428,15 @@ ZW ZWE 716 Zimbabwe # Czechoslovakia officially deleted # # Newsletter III-52, 1993-07-02 -# Angola, changing information not included in this file. Offical name +# Angola, changing information not included in this file. Official name # change to Republic of Angola # # Newsletter III-53, 1993-07-12 -# Madagascar, changing information not included in this file. Official +# Madagascar, changing information not included in this file. Official # name change to Republic of Madagascar # # Newsletter III-54, 1993-07-23 -# South Georgia and the South Sandwich Islands, previously covered by +# South Georgia and the South Sandwich Islands, previously covered by # Falkland Islands # # Newsletter III-55, 1993-07-16 @@ -450,23 +452,23 @@ ZW ZWE 716 Zimbabwe # # Newsletter III-58, 1993-07-16 # Afghanistan, changing information not included in this file -# Official name change to Islamic State of Afghanistan +# Official name change to Islamic State of Afghanistan # -# Newsletter III-32, 1993-07-25 ammendment -# Kyrgyzstan, changing information not included in this file. Offical name +# Newsletter III-32, 1993-07-25 amendment +# Kyrgyzstan, changing information not included in this file. Official name # change to Kyrgyz Republic # # Newsletter III-59, 1994-01-26 -# Andorra, changing information not included in this file. Offical name +# Andorra, changing information not included in this file. Official name # change to Pricipality of Andorra # # Newsletter III-60, 1994-01-26 -# Cambodia, changing information not included in this file. Offical name +# Cambodia, changing information not included in this file. Official name # change to Kingdom of Cambodia # # Thu Feb 10 1994 # At this point the fourth edition of ISO 3166 appears. It can *now* be -# ordered from national standards institutions. The RIPE NCC will continue +# ordered from national standards institutions. The RIPE NCC will continue # tracking changes. # # [deletia] @@ -537,3 +539,11 @@ ZW ZWE 716 Zimbabwe # # Newsletter VI-6 2009-05-08 # Name change for Plurinational State of Bolivia. +# +# Newsletter VI-7 2010-02-22 +# Name change for Saint Helena, Ascension and Tristan da Cunha +# +# Newsletter VI-8 2010-12-15 +# BONAIRE, SAINT EUSTATIUS AND SABA (BQ), CURACAO (CW) and +# SINT MAARTEN (DUTCH PART) (SX) added as new entries. +# NETHERLANDS ANTILLES (AN) removed. Modified: projects/largeSMP/share/mk/bsd.libnames.mk ============================================================================== --- projects/largeSMP/share/mk/bsd.libnames.mk Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/share/mk/bsd.libnames.mk Tue May 17 22:03:01 2011 (r222038) @@ -129,7 +129,6 @@ MINUSLPAM+= -lypclnt LIBPANEL?= ${DESTDIR}${LIBDIR}/libpanel.a LIBPCAP?= ${DESTDIR}${LIBDIR}/libpcap.a -LIBPKG?= ${DESTDIR}${LIBDIR}/libpkg.a LIBPMC?= ${DESTDIR}${LIBDIR}/libpmc.a LIBPROC?= ${DESTDIR}${LIBDIR}/libproc.a LIBPTHREAD?= ${DESTDIR}${LIBDIR}/libpthread.a Modified: projects/largeSMP/sys/dev/ath/ah_osdep.c ============================================================================== --- projects/largeSMP/sys/dev/ath/ah_osdep.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/ath/ah_osdep.c Tue May 17 22:03:01 2011 (r222038) @@ -140,16 +140,20 @@ ath_hal_ether_sprintf(const u_int8_t *ma } #ifdef AH_DEBUG + +/* This must match the definition in ath_hal/ah_debug.h */ +#define HAL_DEBUG_UNMASKABLE 0xf0000000 void DO_HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...) { - if (ath_hal_debug & mask) { + if ((mask == HAL_DEBUG_UNMASKABLE) || (ath_hal_debug & mask)) { __va_list ap; va_start(ap, fmt); ath_hal_vprintf(ah, fmt, ap); va_end(ap); } } +#undef HAL_DEBUG_UNMASKABLE #endif /* AH_DEBUG */ #ifdef AH_DEBUG_ALQ Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c ============================================================================== --- projects/largeSMP/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Tue May 17 22:03:01 2011 (r222038) @@ -857,7 +857,7 @@ ar5212GetCapability(struct ath_hal *ah, case HAL_CAP_MCAST_KEYSRCH: /* multicast frame keycache search */ switch (capability) { case 0: /* hardware capability */ - return HAL_OK; + return pCap->halMcastKeySrchSupport ? HAL_OK : HAL_ENXIO; case 1: return (ahp->ah_staId1Defaults & AR_STA_ID1_MCAST_KSRCH) ? HAL_OK : HAL_ENXIO; Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Tue May 17 22:03:01 2011 (r222038) @@ -816,7 +816,7 @@ ar5416FillCapabilityInfo(struct ath_hal pCap->halPSPollBroken = AH_TRUE; /* XXX fixed in later revs? */ pCap->halVEOLSupport = AH_TRUE; pCap->halBssIdMaskSupport = AH_TRUE; - pCap->halMcastKeySrchSupport = AH_FALSE; + pCap->halMcastKeySrchSupport = AH_TRUE; /* Works on AR5416 and later */ pCap->halTsfAddSupport = AH_TRUE; pCap->hal4AddrAggrSupport = AH_FALSE; /* Broken in Owl */ Modified: projects/largeSMP/sys/dev/cxgbe/t4_main.c ============================================================================== --- projects/largeSMP/sys/dev/cxgbe/t4_main.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/cxgbe/t4_main.c Tue May 17 22:03:01 2011 (r222038) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "common/t4_hw.h" #include "common/common.h" Modified: projects/largeSMP/sys/dev/pci/pcireg.h ============================================================================== --- projects/largeSMP/sys/dev/pci/pcireg.h Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/pci/pcireg.h Tue May 17 22:03:01 2011 (r222038) @@ -367,6 +367,7 @@ #define PCIP_SERIALBUS_USB_UHCI 0x00 #define PCIP_SERIALBUS_USB_OHCI 0x10 #define PCIP_SERIALBUS_USB_EHCI 0x20 +#define PCIP_SERIALBUS_USB_XHCI 0x30 #define PCIP_SERIALBUS_USB_DEVICE 0xfe #define PCIS_SERIALBUS_FC 0x04 #define PCIS_SERIALBUS_SMBUS 0x05 Modified: projects/largeSMP/sys/dev/usb/controller/xhci_pci.c ============================================================================== --- projects/largeSMP/sys/dev/usb/controller/xhci_pci.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/usb/controller/xhci_pci.c Tue May 17 22:03:01 2011 (r222038) @@ -137,7 +137,7 @@ xhci_pci_match(device_t self) { if ((pci_get_class(self) == PCIC_SERIALBUS) && (pci_get_subclass(self) == PCIS_SERIALBUS_USB) - && (pci_get_progif(self) == PCI_INTERFACE_XHCI)) { + && (pci_get_progif(self) == PCIP_SERIALBUS_USB_XHCI)) { return ("XHCI (generic) USB 3.0 controller"); } return (NULL); /* dunno */ Modified: projects/largeSMP/sys/dev/usb/controller/xhcireg.h ============================================================================== --- projects/largeSMP/sys/dev/usb/controller/xhcireg.h Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/dev/usb/controller/xhcireg.h Tue May 17 22:03:01 2011 (r222038) @@ -33,7 +33,6 @@ #define PCI_XHCI_USBREV 0x60 /* RO USB protocol revision */ #define PCI_USB_REV_3_0 0x30 /* USB 3.0 */ #define PCI_XHCI_FLADJ 0x61 /* RW frame length adjust */ -#define PCI_INTERFACE_XHCI 0x30 /* USB 3.0 - XHCI */ /* XHCI capability registers */ #define XHCI_CAPLENGTH 0x00 /* RO capability */ Modified: projects/largeSMP/sys/kern/subr_sbuf.c ============================================================================== --- projects/largeSMP/sys/kern/subr_sbuf.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/kern/subr_sbuf.c Tue May 17 22:03:01 2011 (r222038) @@ -67,7 +67,7 @@ static MALLOC_DEFINE(M_SBUF, "sbuf", "st #define SBUF_ISDYNSTRUCT(s) ((s)->s_flags & SBUF_DYNSTRUCT) #define SBUF_ISFINISHED(s) ((s)->s_flags & SBUF_FINISHED) #define SBUF_HASROOM(s) ((s)->s_len < (s)->s_size - 1) -#define SBUF_FREESPACE(s) ((s)->s_size - (s)->s_len - 1) +#define SBUF_FREESPACE(s) ((s)->s_size - ((s)->s_len + 1)) #define SBUF_CANEXTEND(s) ((s)->s_flags & SBUF_AUTOEXTEND) /* @@ -77,8 +77,14 @@ static MALLOC_DEFINE(M_SBUF, "sbuf", "st #define SBUF_CLEARFLAG(s, f) do { (s)->s_flags &= ~(f); } while (0) #define SBUF_MINEXTENDSIZE 16 /* Should be power of 2. */ + +#ifdef PAGE_SIZE #define SBUF_MAXEXTENDSIZE PAGE_SIZE #define SBUF_MAXEXTENDINCR PAGE_SIZE +#else +#define SBUF_MAXEXTENDSIZE 4096 +#define SBUF_MAXEXTENDINCR 4096 +#endif /* * Debugging support @@ -138,7 +144,6 @@ sbuf_extendsize(int size) return (newsize); } - /* * Extend an sbuf. */ @@ -154,7 +159,7 @@ sbuf_extend(struct sbuf *s, int addlen) newbuf = SBMALLOC(newsize); if (newbuf == NULL) return (-1); - bcopy(s->s_buf, newbuf, s->s_size); + memcpy(newbuf, s->s_buf, s->s_size); if (SBUF_ISDYNAMIC(s)) SBFREE(s->s_buf); else @@ -165,6 +170,38 @@ sbuf_extend(struct sbuf *s, int addlen) } /* + * Initialize the internals of an sbuf. + * If buf is non-NULL, it points to a static or already-allocated string + * big enough to hold at least length characters. + */ +static struct sbuf * +sbuf_newbuf(struct sbuf *s, char *buf, int length, int flags) +{ + + memset(s, 0, sizeof(*s)); + s->s_flags = flags; + s->s_size = length; + s->s_buf = buf; + + if ((s->s_flags & SBUF_AUTOEXTEND) == 0) { + KASSERT(s->s_size > 1, + ("attempt to create a too small sbuf")); + } + + if (s->s_buf != NULL) + return (s); + + if ((flags & SBUF_AUTOEXTEND) != 0) + s->s_size = sbuf_extendsize(s->s_size); + + s->s_buf = SBMALLOC(s->s_size); + if (s->s_buf == NULL) + return (NULL); + SBUF_SETFLAG(s, SBUF_DYNAMIC); + return (s); +} + +/* * Initialize an sbuf. * If buf is non-NULL, it points to a static or already-allocated string * big enough to hold at least length characters. @@ -179,31 +216,17 @@ sbuf_new(struct sbuf *s, char *buf, int ("%s called with invalid flags", __func__)); flags &= SBUF_USRFLAGMSK; - if (s == NULL) { - s = SBMALLOC(sizeof(*s)); - if (s == NULL) - return (NULL); - bzero(s, sizeof(*s)); - s->s_flags = flags; - SBUF_SETFLAG(s, SBUF_DYNSTRUCT); - } else { - bzero(s, sizeof(*s)); - s->s_flags = flags; - } - s->s_size = length; - if (buf != NULL) { - s->s_buf = buf; - return (s); - } - if ((flags & SBUF_AUTOEXTEND) != 0) - s->s_size = sbuf_extendsize(s->s_size); - s->s_buf = SBMALLOC(s->s_size); - if (s->s_buf == NULL) { - if (SBUF_ISDYNSTRUCT(s)) - SBFREE(s); + if (s != NULL) + return (sbuf_newbuf(s, buf, length, flags)); + + s = SBMALLOC(sizeof(*s)); + if (s == NULL) + return (NULL); + if (sbuf_newbuf(s, buf, length, flags) == NULL) { + SBFREE(s); return (NULL); } - SBUF_SETFLAG(s, SBUF_DYNAMIC); + SBUF_SETFLAG(s, SBUF_DYNSTRUCT); return (s); } @@ -328,7 +351,7 @@ sbuf_drain(struct sbuf *s) * buffer and marking overflow. */ static void -sbuf_put_byte(int c, struct sbuf *s) +sbuf_put_byte(struct sbuf *s, int c) { assert_sbuf_integrity(s); @@ -337,7 +360,7 @@ sbuf_put_byte(int c, struct sbuf *s) if (s->s_error != 0) return; if (SBUF_FREESPACE(s) <= 0) { - /* + /* * If there is a drain, use it, otherwise extend the * buffer. */ @@ -352,18 +375,6 @@ sbuf_put_byte(int c, struct sbuf *s) } /* - * Append a non-NUL character to an sbuf. This prototype signature is - * suitable for use with kvprintf(9). - */ -static void -sbuf_putc_func(int c, void *arg) -{ - - if (c != '\0') - sbuf_put_byte(c, arg); -} - -/* * Append a byte string to an sbuf. */ int @@ -378,10 +389,10 @@ sbuf_bcat(struct sbuf *s, const void *bu if (s->s_error != 0) return (-1); for (; str < end; str++) { - sbuf_put_byte(*str, s); + sbuf_put_byte(s, *str); if (s->s_error != 0) return (-1); - } + } return (0); } @@ -443,7 +454,7 @@ sbuf_cat(struct sbuf *s, const char *str return (-1); while (*str != '\0') { - sbuf_put_byte(*str++, s); + sbuf_put_byte(s, *str++); if (s->s_error != 0) return (-1); } @@ -507,6 +518,19 @@ sbuf_cpy(struct sbuf *s, const char *str * Format the given argument list and append the resulting string to an sbuf. */ #ifdef _KERNEL + +/* + * Append a non-NUL character to an sbuf. This prototype signature is + * suitable for use with kvprintf(9). + */ +static void +sbuf_putc_func(int c, void *arg) +{ + + if (c != '\0') + sbuf_put_byte(arg, c); +} + int sbuf_vprintf(struct sbuf *s, const char *fmt, va_list ap) { @@ -611,7 +635,7 @@ int sbuf_putc(struct sbuf *s, int c) { - sbuf_putc_func(c, s); + sbuf_put_byte(s, c); if (s->s_error != 0) return (-1); return (0); @@ -654,24 +678,23 @@ sbuf_error(const struct sbuf *s) int sbuf_finish(struct sbuf *s) { - int error; assert_sbuf_integrity(s); assert_sbuf_state(s, 0); - error = s->s_error; if (s->s_drain_func != NULL) { - while (s->s_len > 0 && error == 0) - error = sbuf_drain(s); + while (s->s_len > 0 && s->s_error == 0) + s->s_error = sbuf_drain(s); } s->s_buf[s->s_len] = '\0'; - s->s_error = 0; SBUF_SETFLAG(s, SBUF_FINISHED); #ifdef _KERNEL - return (error); + return (s->s_error); #else - errno = error; - return (-1); + errno = s->s_error; + if (s->s_error) + return (-1); + return (0); #endif } @@ -721,7 +744,7 @@ sbuf_delete(struct sbuf *s) if (SBUF_ISDYNAMIC(s)) SBFREE(s->s_buf); isdyn = SBUF_ISDYNSTRUCT(s); - bzero(s, sizeof(*s)); + memset(s, 0, sizeof(*s)); if (isdyn) SBFREE(s); } Modified: projects/largeSMP/sys/kern/subr_smp.c ============================================================================== --- projects/largeSMP/sys/kern/subr_smp.c Tue May 17 21:03:34 2011 (r222037) +++ projects/largeSMP/sys/kern/subr_smp.c Tue May 17 22:03:01 2011 (r222038) @@ -53,10 +53,10 @@ __FBSDID("$FreeBSD$"); #include "opt_sched.h" #ifdef SMP -volatile cpuset_t stopped_cpus; -volatile cpuset_t started_cpus; -cpuset_t hlt_cpus_mask; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue May 17 22:27:36 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E647106566C; Tue, 17 May 2011 22:27:36 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 50C258FC16; Tue, 17 May 2011 22:27:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4HMRar7049662; Tue, 17 May 2011 22:27:36 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4HMRajw049658; Tue, 17 May 2011 22:27:36 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105172227.p4HMRajw049658@svn.freebsd.org> From: Attilio Rao Date: Tue, 17 May 2011 22:27:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222042 - in projects/largeSMP: contrib/top share/man/man4 share/mk sys/dev/ahci X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 17 May 2011 22:27:36 -0000 Author: attilio Date: Tue May 17 22:27:35 2011 New Revision: 222042 URL: http://svn.freebsd.org/changeset/base/222042 Log: MFC Modified: projects/largeSMP/share/man/man4/ahci.4 projects/largeSMP/sys/dev/ahci/ahci.c projects/largeSMP/sys/dev/ahci/ahci.h Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/share/man/man4/ahci.4 ============================================================================== --- projects/largeSMP/share/man/man4/ahci.4 Tue May 17 22:15:53 2011 (r222041) +++ projects/largeSMP/share/man/man4/ahci.4 Tue May 17 22:27:35 2011 (r222042) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 28, 2010 +.Dd May 17, 2011 .Dt AHCI 4 .Os .Sh NAME @@ -121,6 +121,15 @@ hardware command queues (up to 32 comman Native Command Queuing, SATA interface Power Management, device hot-plug and Message Signaled Interrupts. .Pp +Driver supports "LED" enclosure management messages, defined by the AHCI. +When supported by hardware, it allows to control per-port activity, locate +and fault LEDs via the +.Xr led 4 +API for localization and status reporting purposes. +Supporting AHCI controllers may transmit that information to the backplane +controllers via SGPIO interface. Backplane controllers interpret received +statuses in some way (IBPI standard) to report them using present indicators. +.Pp AHCI hardware is also supported by ataahci driver from .Xr ata 4 subsystem. @@ -135,6 +144,15 @@ subclass 6 (SATA) and programming interf Also, in cooperation with atamarvell and atajmicron drivers of ata(4), it supports AHCI part of legacy-PATA + AHCI-SATA combined controllers, such as JMicron JMB36x and Marvell 88SX61xx. +.Sh FILES +.Bl -tag -width /dev/led/ahcich*.locate +.It Pa /dev/led/ahcich*.act +activity LED device nodes +.It Pa /dev/led/ahcich*.fault +fault LED device nodes +.It Pa /dev/led/ahcich*.locate +locate LED device nodes +.El .Sh SEE ALSO .Xr ada 4 , .Xr ata 4 , Modified: projects/largeSMP/sys/dev/ahci/ahci.c ============================================================================== --- projects/largeSMP/sys/dev/ahci/ahci.c Tue May 17 22:15:53 2011 (r222041) +++ projects/largeSMP/sys/dev/ahci/ahci.c Tue May 17 22:27:35 2011 (r222042) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include "ahci.h" @@ -68,6 +69,7 @@ static int ahci_ch_resume(device_t dev); static void ahci_ch_pm(void *arg); static void ahci_ch_intr_locked(void *data); static void ahci_ch_intr(void *data); +static void ahci_ch_led(void *priv, int onoff); static int ahci_ctlr_reset(device_t dev); static int ahci_ctlr_setup(device_t dev); static void ahci_begin_transaction(device_t dev, union ccb *ccb); @@ -418,6 +420,8 @@ ahci_attach(device_t dev) ctlr->caps &= ~AHCI_CAP_SNCQ; if ((ctlr->caps & AHCI_CAP_CCCS) == 0) ctlr->ccc = 0; + mtx_init(&ctlr->em_mtx, "AHCI EM lock", NULL, MTX_DEF); + ctlr->emloc = ATA_INL(ctlr->r_mem, AHCI_EM_LOC); ahci_ctlr_setup(dev); /* Setup interrupts. */ if (ahci_setup_interrupt(dev)) { @@ -521,6 +525,7 @@ ahci_detach(device_t dev) rman_fini(&ctlr->sc_iomem); if (ctlr->r_mem) bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); + mtx_destroy(&ctlr->em_mtx); return (0); } @@ -887,6 +892,7 @@ ahci_ch_attach(device_t dev) struct cam_devq *devq; int rid, error, i, sata_rev = 0; u_int32_t version; + char buf[32]; ch->dev = dev; ch->unit = (intptr_t)device_get_ivars(dev); @@ -995,6 +1001,25 @@ ahci_ch_attach(device_t dev) ahci_ch_pm, dev); } mtx_unlock(&ch->mtx); + if ((ch->caps & AHCI_CAP_EMS) && + (ctlr->capsem & AHCI_EM_LED)) { + for (i = 0; i < AHCI_NUM_LEDS; i++) { + ch->leds[i].dev = dev; + ch->leds[i].num = i; + } + if ((ctlr->capsem & AHCI_EM_ALHD) == 0) { + snprintf(buf, sizeof(buf), "%s.act", + device_get_nameunit(dev)); + ch->leds[0].led = led_create(ahci_ch_led, + &ch->leds[0], buf); + } + snprintf(buf, sizeof(buf), "%s.locate", + device_get_nameunit(dev)); + ch->leds[1].led = led_create(ahci_ch_led, &ch->leds[1], buf); + snprintf(buf, sizeof(buf), "%s.fault", + device_get_nameunit(dev)); + ch->leds[2].led = led_create(ahci_ch_led, &ch->leds[2], buf); + } return (0); err3: @@ -1014,7 +1039,12 @@ static int ahci_ch_detach(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); + int i; + for (i = 0; i < AHCI_NUM_LEDS; i++) { + if (ch->leds[i].led) + led_destroy(ch->leds[i].led); + } mtx_lock(&ch->mtx); xpt_async(AC_LOST_DEVICE, ch->path, NULL); /* Forget about reset. */ @@ -1137,6 +1167,47 @@ static driver_t ahcich_driver = { }; DRIVER_MODULE(ahcich, ahci, ahcich_driver, ahcich_devclass, 0, 0); +static void +ahci_ch_setleds(device_t dev) +{ + struct ahci_channel *ch; + struct ahci_controller *ctlr; + size_t buf; + int i, timeout; + int16_t val; + + ctlr = device_get_softc(device_get_parent(dev)); + ch = device_get_softc(dev); + + val = 0; + for (i = 0; i < AHCI_NUM_LEDS; i++) + val |= ch->leds[i].state << (i * 3); + + buf = (ctlr->emloc & 0xffff0000) >> 14; + mtx_lock(&ctlr->em_mtx); + timeout = 1000; + while (ATA_INL(ctlr->r_mem, AHCI_EM_CTL) & (AHCI_EM_TM | AHCI_EM_RST) && + --timeout > 0) + DELAY(1000); + if (timeout == 0) + device_printf(dev, "EM timeout\n"); + ATA_OUTL(ctlr->r_mem, buf, (1 << 8) | (0 << 16) | (0 << 24)); + ATA_OUTL(ctlr->r_mem, buf + 4, ch->unit | (val << 16)); + ATA_OUTL(ctlr->r_mem, AHCI_EM_CTL, AHCI_EM_TM); + mtx_unlock(&ctlr->em_mtx); +} + +static void +ahci_ch_led(void *priv, int onoff) +{ + struct ahci_led *led; + + led = (struct ahci_led *)priv; + + led->state = onoff; + ahci_ch_setleds(led->dev); +} + struct ahci_dc_cb_args { bus_addr_t maddr; int error; Modified: projects/largeSMP/sys/dev/ahci/ahci.h ============================================================================== --- projects/largeSMP/sys/dev/ahci/ahci.h Tue May 17 22:15:53 2011 (r222041) +++ projects/largeSMP/sys/dev/ahci/ahci.h Tue May 17 22:27:35 2011 (r222042) @@ -376,6 +376,15 @@ struct ahci_device { u_int caps; }; +struct ahci_led { + device_t dev; /* Device handle */ + struct cdev *led; + uint8_t num; /* Number of this led */ + uint8_t state; /* State of this led */ +}; + +#define AHCI_NUM_LEDS 3 + /* structure describing an ATA channel */ struct ahci_channel { device_t dev; /* Device handle */ @@ -386,6 +395,7 @@ struct ahci_channel { struct ata_dma dma; /* DMA data */ struct cam_sim *sim; struct cam_path *path; + struct ahci_led leds[3]; uint32_t caps; /* Controller capabilities */ uint32_t caps2; /* Controller capabilities */ uint32_t chcaps; /* Channel capabilities */ @@ -443,6 +453,7 @@ struct ahci_controller { uint32_t caps; /* Controller capabilities */ uint32_t caps2; /* Controller capabilities */ uint32_t capsem; /* Controller capabilities */ + uint32_t emloc; /* EM buffer location */ int quirks; int numirqs; int channels; @@ -453,6 +464,7 @@ struct ahci_controller { void (*function)(void *); void *argument; } interrupt[AHCI_MAX_PORTS]; + struct mtx em_mtx; /* EM access lock */ }; enum ahci_err_type { From owner-svn-src-projects@FreeBSD.ORG Wed May 18 08:26:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9FAD41065672; Wed, 18 May 2011 08:26:59 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 763318FC0C; Wed, 18 May 2011 08:26:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4I8Qxb6068355; Wed, 18 May 2011 08:26:59 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4I8Qx6m068350; Wed, 18 May 2011 08:26:59 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201105180826.p4I8Qx6m068350@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Wed, 18 May 2011 08:26:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222052 - in projects/pf/pf45/contrib/pf: ftp-proxy man pflogd X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 08:26:59 -0000 Author: bz Date: Wed May 18 08:26:59 2011 New Revision: 222052 URL: http://svn.freebsd.org/changeset/base/222052 Log: Cleanup changes from the merge from openbsd. Modified: projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c projects/pf/pf45/contrib/pf/man/pf.os.5 projects/pf/pf45/contrib/pf/pflogd/privsep.c Modified: projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 Wed May 18 07:40:12 2011 (r222051) +++ projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 Wed May 18 08:26:59 2011 (r222052) @@ -14,7 +14,9 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: February 26 2008 $ +.\" $FreeBSD$ +.\" +.Dd February 26, 2008 .Dt FTP-PROXY 8 .Os .Sh NAME Modified: projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c Wed May 18 07:40:12 2011 (r222051) +++ projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c Wed May 18 08:26:59 2011 (r222052) @@ -16,6 +16,9 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include +__FBSDID("$FreeBSD$"); + #include #include #include Modified: projects/pf/pf45/contrib/pf/man/pf.os.5 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pf.os.5 Wed May 18 07:40:12 2011 (r222051) +++ projects/pf/pf45/contrib/pf/man/pf.os.5 Wed May 18 08:26:59 2011 (r222052) @@ -13,6 +13,7 @@ .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" .\" $FreeBSD$ .\" .Dd May 31 2007 Modified: projects/pf/pf45/contrib/pf/pflogd/privsep.c ============================================================================== --- projects/pf/pf45/contrib/pf/pflogd/privsep.c Wed May 18 07:40:12 2011 (r222051) +++ projects/pf/pf45/contrib/pf/pflogd/privsep.c Wed May 18 08:26:59 2011 (r222052) @@ -16,6 +16,10 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include +__FBSDID("$FreeBSD$"); + #include #include #include From owner-svn-src-projects@FreeBSD.ORG Wed May 18 14:55:16 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5BCCB1065675; Wed, 18 May 2011 14:55:16 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A5DD8FC1E; Wed, 18 May 2011 14:55:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IEtG3f096339; Wed, 18 May 2011 14:55:16 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IEtGYw096331; Wed, 18 May 2011 14:55:16 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105181455.p4IEtGYw096331@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 18 May 2011 14:55:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222057 - in projects/pseries: conf powerpc/aim powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 14:55:16 -0000 Author: nwhitehorn Date: Wed May 18 14:55:16 2011 New Revision: 222057 URL: http://svn.freebsd.org/changeset/base/222057 Log: Rearrange the OF 32-bit call thunk for ppc64 to be in its own file instead of aim/locore64.S and make an equivalent thunk for 32-bit platforms to handle real mode. Add in similar stubs (untested) for RTAS calls and fix the SLOF memory hack in ofw_machdep.c to not break Apple machines with physical memory lists that are not in order. This rearranges a bunch of OF-related stuff, but still boots on: - POWER7 LPAR - IBM Cell simulator - iBook G4 - Powermac G3 - Xserve G5 Added: projects/pseries/powerpc/ofw/ofwcall32.S projects/pseries/powerpc/ofw/ofwcall64.S projects/pseries/powerpc/ofw/ofwmagic.S - copied unchanged from r221988, projects/pseries/powerpc/aim/ofwmagic.S Deleted: projects/pseries/powerpc/aim/ofwmagic.S Modified: projects/pseries/conf/files.powerpc projects/pseries/powerpc/aim/locore32.S projects/pseries/powerpc/aim/locore64.S projects/pseries/powerpc/ofw/ofw_machdep.c Modified: projects/pseries/conf/files.powerpc ============================================================================== --- projects/pseries/conf/files.powerpc Wed May 18 14:02:33 2011 (r222056) +++ projects/pseries/conf/files.powerpc Wed May 18 14:55:16 2011 (r222057) @@ -86,7 +86,6 @@ powerpc/aim/moea64_if.m optional aim powerpc/aim/moea64_native.c optional aim powerpc/aim/mp_cpudep.c optional aim smp powerpc/aim/nexus.c optional aim -powerpc/aim/ofwmagic.S optional aim powerpc/aim/slb.c optional aim powerpc64 powerpc/aim/swtch32.S optional aim powerpc powerpc/aim/swtch64.S optional aim powerpc64 @@ -136,6 +135,9 @@ powerpc/ofw/ofw_pcibus.c optional pci ai powerpc/ofw/ofw_pcib_pci.c optional pci aim powerpc/ofw/ofw_real.c optional aim powerpc/ofw/ofw_syscons.c optional sc aim +powerpc/ofw/ofwcall32.S optional aim powerpc +powerpc/ofw/ofwcall64.S optional aim powerpc64 +powerpc/ofw/ofwmagic.S optional aim powerpc/powermac/ata_kauai.c optional powermac ata | powermac atamacio powerpc/powermac/ata_macio.c optional powermac ata | powermac atamacio powerpc/powermac/ata_dbdma.c optional powermac ata | powermac atamacio Modified: projects/pseries/powerpc/aim/locore32.S ============================================================================== --- projects/pseries/powerpc/aim/locore32.S Wed May 18 14:02:33 2011 (r222056) +++ projects/pseries/powerpc/aim/locore32.S Wed May 18 14:55:16 2011 (r222057) @@ -87,9 +87,6 @@ GLOBAL(tmpstk) GLOBAL(esym) .long 0 /* end of symbol table */ -GLOBAL(ofmsr) - .long 0, 0, 0, 0, 0 /* msr/sprg0-3 used in Open Firmware */ - #define INTRCNT_COUNT 256 /* max(HROWPIC_IRQMAX,OPENPIC_IRQMAX) */ GLOBAL(intrnames) .space INTRCNT_COUNT * (MAXCOMLEN + 1) * 2 @@ -99,16 +96,6 @@ GLOBAL(intrcnt) .space INTRCNT_COUNT * 4 * 2 GLOBAL(eintrcnt) -/* - * File-scope for locore.S - */ -idle_u: - .long 0 /* fake uarea during idle after exit */ -openfirmware_entry: - .long 0 /* Open Firmware entry point */ -srsave: - .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .text .globl btext btext: Modified: projects/pseries/powerpc/aim/locore64.S ============================================================================== --- projects/pseries/powerpc/aim/locore64.S Wed May 18 14:02:33 2011 (r222056) +++ projects/pseries/powerpc/aim/locore64.S Wed May 18 14:55:16 2011 (r222057) @@ -76,7 +76,6 @@ .set kernbase, KERNBASE #define TMPSTKSZ 8192 /* 8K temporary stack */ -#define OFWSTKSZ 4096 /* 4K Open Firmware stack */ /* * Globals @@ -85,14 +84,9 @@ .align 4 GLOBAL(tmpstk) .space TMPSTKSZ -GLOBAL(ofwstk) - .space OFWSTKSZ GLOBAL(esym) .llong 0 /* end of symbol table */ -GLOBAL(ofmsr) - .llong 0, 0, 0, 0, 0 /* msr/sprg0-3 used in Open Firmware */ - #define INTRCNT_COUNT 256 /* max(HROWPIC_IRQMAX,OPENPIC_IRQMAX) */ GLOBAL(intrnames) .space INTRCNT_COUNT * (MAXCOMLEN + 1) * 2 @@ -102,16 +96,6 @@ GLOBAL(intrcnt) .space INTRCNT_COUNT * 4 * 2 GLOBAL(eintrcnt) -/* - * File-scope for locore.S - */ -idle_u: - .llong 0 /* fake uarea during idle after exit */ -openfirmware_entry: - .llong 0 /* Open Firmware entry point */ -srsave: - .llong 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .text .globl btext btext: @@ -208,122 +192,6 @@ tocbase: .llong .TOC.@tocbase /* - * Open Firmware Real-mode Entry Point. This is a huge pain. - */ - -ASENTRY(ofw_32bit_mode_entry) - mflr %r0 - std %r0,16(%r1) - stdu %r1,-208(%r1) - - /* - * We need to save the following, because OF's register save/ - * restore code assumes that the contents of registers are - * at most 32 bits wide: lr, cr, r2, r13-r31, the old MSR. These - * get placed in that order in the stack. - */ - - mfcr %r4 - std %r4,48(%r1) - std %r13,56(%r1) - std %r14,64(%r1) - std %r15,72(%r1) - std %r16,80(%r1) - std %r17,88(%r1) - std %r18,96(%r1) - std %r19,104(%r1) - std %r20,112(%r1) - std %r21,120(%r1) - std %r22,128(%r1) - std %r23,136(%r1) - std %r24,144(%r1) - std %r25,152(%r1) - std %r26,160(%r1) - std %r27,168(%r1) - std %r28,176(%r1) - std %r29,184(%r1) - std %r30,192(%r1) - std %r31,200(%r1) - - /* Record the old MSR */ - mfmsr %r6 - - /* read client interface handler */ - lis %r4,openfirmware_entry@ha - ld %r4,openfirmware_entry@l(%r4) - - /* - * Set the MSR to the OF value. This has the side effect of disabling - * exceptions, which is important for the next few steps. - */ - - lis %r5,ofmsr@ha - ld %r5,ofmsr@l(%r5) - mtmsrd %r5 - isync - - /* - * Set up OF stack. This needs to be accessible in real mode and - * use the 32-bit ABI stack frame format. The pointer to the current - * kernel stack is placed at the very top of the stack along with - * the old MSR so we can get them back later. - */ - mr %r5,%r1 - lis %r1,(ofwstk+OFWSTKSZ-32)@ha - addi %r1,%r1,(ofwstk+OFWSTKSZ-32)@l - std %r5,8(%r1) /* Save real stack pointer */ - std %r2,16(%r1) /* Save old TOC */ - std %r6,24(%r1) /* Save old MSR */ - li %r5,0 - stw %r5,4(%r1) - stw %r5,0(%r1) - - /* Finally, branch to OF */ - mtctr %r4 - bctrl - - /* Reload stack pointer and MSR from the OFW stack */ - ld %r6,24(%r1) - ld %r2,16(%r1) - ld %r1,8(%r1) - - /* Now set the real MSR */ - mtmsrd %r6 - isync - - /* Sign-extend the return value from OF */ - extsw %r3,%r3 - - /* Restore all the non-volatile registers */ - ld %r5,48(%r1) - mtcr %r5 - ld %r13,56(%r1) - ld %r14,64(%r1) - ld %r15,72(%r1) - ld %r16,80(%r1) - ld %r17,88(%r1) - ld %r18,96(%r1) - ld %r19,104(%r1) - ld %r20,112(%r1) - ld %r21,120(%r1) - ld %r22,128(%r1) - ld %r23,136(%r1) - ld %r24,144(%r1) - ld %r25,152(%r1) - ld %r26,160(%r1) - ld %r27,168(%r1) - ld %r28,176(%r1) - ld %r29,184(%r1) - ld %r30,192(%r1) - ld %r31,200(%r1) - - /* Restore the stack and link register */ - ld %r1,0(%r1) - ld %r0,16(%r1) - mtlr %r0 - blr - -/* * int setfault() * * Similar to setjmp to setup for handling faults on accesses to user memory. Modified: projects/pseries/powerpc/ofw/ofw_machdep.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_machdep.c Wed May 18 14:02:33 2011 (r222056) +++ projects/pseries/powerpc/ofw/ofw_machdep.c Wed May 18 14:55:16 2011 (r222057) @@ -65,11 +65,12 @@ static struct mem_region OFmem[OFMEM_REG static struct mem_region OFfree[OFMEM_REGIONS + 3]; extern register_t ofmsr[5]; -static int (*ofwcall)(void *); +extern void *openfirmware_entry; static void *fdt; int ofw_real_mode; -int ofw_32bit_mode_entry(void *); +int ofwcall(void *); +int rtascall(void *); static void ofw_quiesce(void); static int openfirmware(void *args); @@ -254,6 +255,7 @@ ofw_mem_regions(struct mem_region **memp struct mem_region **availp, int *availsz) { phandle_t phandle; + vm_offset_t maxphysaddr; int asz, msz, fsz; int i, j; int still_merging; @@ -281,10 +283,14 @@ ofw_mem_regions(struct mem_region **memp * available segment past the end of physical memory, so truncate that * one. */ - if (OFavail[asz - 1].mr_start + OFavail[asz - 1].mr_size > - OFmem[msz - 1].mr_start + OFmem[msz - 1].mr_size) - OFavail[asz - 1].mr_size = (OFmem[msz - 1].mr_start + - OFmem[msz - 1].mr_size) - OFavail[asz - 1].mr_start; + maxphysaddr = 0; + for (i = 0; i < msz; i++) + if (OFmem[i].mr_start + OFmem[i].mr_size > maxphysaddr) + maxphysaddr = OFmem[i].mr_start + OFmem[i].mr_size; + + if (OFavail[asz - 1].mr_start + OFavail[asz - 1].mr_size > maxphysaddr) + OFavail[asz - 1].mr_size = maxphysaddr - + OFavail[asz - 1].mr_start; /* * OFavail may have overlapping regions - collapse these @@ -328,19 +334,6 @@ OF_initial_setup(void *fdt_ptr, void *ju else ofw_real_mode = 1; - ofwcall = NULL; - - #ifdef __powerpc64__ - /* - * For PPC64, we need to use some hand-written - * asm trampolines to get to OF. - */ - if (openfirm != NULL) - ofwcall = ofw_32bit_mode_entry; - #else - ofwcall = openfirm; - #endif - fdt = fdt_ptr; #ifdef FDT_DTB_STATIC @@ -355,7 +348,7 @@ OF_bootstrap() { boolean_t status = FALSE; - if (ofwcall != NULL) { + if (openfirmware_entry != NULL) { if (ofw_real_mode) { status = OF_install(OFW_STD_REAL, 0); } else { @@ -376,6 +369,10 @@ OF_bootstrap() * background processes. */ ofw_quiesce(); + + /* + * If available, we need to instantiate RTAS. + */ } else if (fdt != NULL) { status = OF_install(OFW_FDT, 0); @@ -447,6 +444,7 @@ openfirmware_core(void *args) #endif result = ofwcall(args); + //result = ((int (*)(void *))(openfirmware_entry))(args); ofw_sprg_restore(); intr_restore(oldmsr); Added: projects/pseries/powerpc/ofw/ofwcall32.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/ofw/ofwcall32.S Wed May 18 14:55:16 2011 (r222057) @@ -0,0 +1,148 @@ +/*- + * Copyright (C) 2009-2011 Nathan Whitehorn + * 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 ``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 TOOLS GMBH 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 + +#include +#include +#include +#include + +#define OFWSTKSZ 4096 /* 4K Open Firmware stack */ + +/* + * Globals + */ + .data +GLOBAL(ofmsr) + .long 0, 0, 0, 0, 0 /* msr/sprg0-3 used in Open Firmware */ +GLOBAL(rtasmsr) + .long 0 +GLOBAL(openfirmware_entry) + .long 0 /* Open Firmware entry point */ +GLOBAL(rtas_entry) + .long 0 /* RTAS entry point */ + + .align 4 +GLOBAL(ofwstk) + .space OFWSTKSZ + +/* + * Open Firmware Entry Point. May need to enter real mode. + * + * C prototype: int ofwcall(void *callbuffer); + */ + +ASENTRY(ofwcall) + mflr %r0 + stw %r0,4(%r1) + + /* Record the old MSR */ + mfmsr %r6 + + /* read client interface handler */ + lis %r4,openfirmware_entry@ha + lwz %r4,openfirmware_entry@l(%r4) + + /* + * Set the MSR to the OF value. This has the side effect of disabling + * exceptions, which prevents preemption later. + */ + + lis %r5,ofmsr@ha + lwz %r5,ofmsr@l(%r5) + mtmsr %r5 + isync + + /* + * Set up OF stack. This needs to be potentially accessible in real mode + * The pointer to the current kernel stack is placed at the very + * top of the stack along with the old MSR so we can get them back + * later. + */ + mr %r5,%r1 + lis %r1,(ofwstk+OFWSTKSZ-16)@ha + addi %r1,%r1,(ofwstk+OFWSTKSZ-16)@l + stw %r5,8(%r1) /* Save real stack pointer */ + stw %r6,12(%r1) /* Save old MSR */ + li %r5,0 + stw %r5,4(%r1) + stw %r5,0(%r1) + + /* Finally, branch to OF */ + mtctr %r4 + bctrl + + /* Reload stack pointer and MSR from the OFW stack */ + lwz %r6,12(%r1) + lwz %r1,8(%r1) + + /* Now set the real MSR */ + mtmsr %r6 + isync + + /* Return */ + lwz %r0,4(%r1) + mtlr %r0 + blr + +/* + * RTAS Entry Point. Similar to the OF one, but simpler (no separate stack) + * + * C prototype: int rtascall(void *callbuffer, void *rtas_privdat); + */ + +ASENTRY(rtascall) + mflr %r0 + stw %r0,4(%r1) + + /* Record the old MSR just below the bottom of the stack */ + mfmsr %r0 + stw %r0,-4(%r1) + + /* read client interface handler */ + lis %r5,rtas_entry@ha + lwz %r5,rtas_entry@l(%r5) + + /* Set the MSR to the RTAS value */ + lis %r6,rtasmsr@ha + lwz %r6,rtasmsr@l(%r6) + mtmsr %r6 + isync + + /* Branch to RTAS */ + mtctr %r5 + bctrl + + /* Now set the MSR back */ + lwz %r6,-4(%r1) + mtmsr %r6 + isync + + /* And return */ + lwz %r0,4(%r1) + mtlr %r0 + blr + Added: projects/pseries/powerpc/ofw/ofwcall64.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/ofw/ofwcall64.S Wed May 18 14:55:16 2011 (r222057) @@ -0,0 +1,288 @@ +/*- + * Copyright (C) 2009-2011 Nathan Whitehorn + * 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 ``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 TOOLS GMBH 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 + +#include +#include +#include +#include + +#define OFWSTKSZ 4096 /* 4K Open Firmware stack */ + +/* + * Globals + */ + .data + .align 4 +GLOBAL(ofwstk) + .space OFWSTKSZ +GLOBAL(rtas_regsave) + .space 24 /* 3 * sizeof(register_t) */ +GLOBAL(ofmsr) + .llong 0, 0, 0, 0, 0 /* msr/sprg0-3 used in Open Firmware */ +GLOBAL(rtasmsr) + .llong 0 +GLOBAL(openfirmware_entry) + .llong 0 /* Open Firmware entry point */ +GLOBAL(rtas_entry) + .llong 0 /* RTAS entry point */ + +/* + * Open Firmware Real-mode Entry Point. This is a huge pain. + */ + +ASENTRY(ofwcall) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-208(%r1) + + /* + * We need to save the following, because OF's register save/ + * restore code assumes that the contents of registers are + * at most 32 bits wide: lr, cr, r2, r13-r31, the old MSR. These + * get placed in that order in the stack. + */ + + mfcr %r4 + std %r4,48(%r1) + std %r13,56(%r1) + std %r14,64(%r1) + std %r15,72(%r1) + std %r16,80(%r1) + std %r17,88(%r1) + std %r18,96(%r1) + std %r19,104(%r1) + std %r20,112(%r1) + std %r21,120(%r1) + std %r22,128(%r1) + std %r23,136(%r1) + std %r24,144(%r1) + std %r25,152(%r1) + std %r26,160(%r1) + std %r27,168(%r1) + std %r28,176(%r1) + std %r29,184(%r1) + std %r30,192(%r1) + std %r31,200(%r1) + + /* Record the old MSR */ + mfmsr %r6 + + /* read client interface handler */ + lis %r4,openfirmware_entry@ha + ld %r4,openfirmware_entry@l(%r4) + + /* + * Set the MSR to the OF value. This has the side effect of disabling + * exceptions, which is important for the next few steps. + */ + + lis %r5,ofmsr@ha + ld %r5,ofmsr@l(%r5) + mtmsrd %r5 + isync + + /* + * Set up OF stack. This needs to be accessible in real mode and + * use the 32-bit ABI stack frame format. The pointer to the current + * kernel stack is placed at the very top of the stack along with + * the old MSR so we can get them back later. + */ + mr %r5,%r1 + lis %r1,(ofwstk+OFWSTKSZ-32)@ha + addi %r1,%r1,(ofwstk+OFWSTKSZ-32)@l + std %r5,8(%r1) /* Save real stack pointer */ + std %r2,16(%r1) /* Save old TOC */ + std %r6,24(%r1) /* Save old MSR */ + li %r5,0 + stw %r5,4(%r1) + stw %r5,0(%r1) + + /* Finally, branch to OF */ + mtctr %r4 + bctrl + + /* Reload stack pointer and MSR from the OFW stack */ + ld %r6,24(%r1) + ld %r2,16(%r1) + ld %r1,8(%r1) + + /* Now set the real MSR */ + mtmsrd %r6 + isync + + /* Sign-extend the return value from OF */ + extsw %r3,%r3 + + /* Restore all the non-volatile registers */ + ld %r5,48(%r1) + mtcr %r5 + ld %r13,56(%r1) + ld %r14,64(%r1) + ld %r15,72(%r1) + ld %r16,80(%r1) + ld %r17,88(%r1) + ld %r18,96(%r1) + ld %r19,104(%r1) + ld %r20,112(%r1) + ld %r21,120(%r1) + ld %r22,128(%r1) + ld %r23,136(%r1) + ld %r24,144(%r1) + ld %r25,152(%r1) + ld %r26,160(%r1) + ld %r27,168(%r1) + ld %r28,176(%r1) + ld %r29,184(%r1) + ld %r30,192(%r1) + ld %r31,200(%r1) + + /* Restore the stack and link register */ + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr + +/* + * RTAS 32-bit Entry Point. Similar to the OF one, but simpler (no separate + * stack) + * + * C prototype: int rtas_32bit_entry(void *callbuffer, void *rtas_privdat); + */ + +ASENTRY(rtascall) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-208(%r1) + + /* + * We need to save the following, because RTAS's register save/ + * restore code assumes that the contents of registers are + * at most 32 bits wide: lr, cr, r2, r13-r31, the old MSR. These + * get placed in that order in the stack. + */ + + mfcr %r5 + std %r5,48(%r1) + std %r13,56(%r1) + std %r14,64(%r1) + std %r15,72(%r1) + std %r16,80(%r1) + std %r17,88(%r1) + std %r18,96(%r1) + std %r19,104(%r1) + std %r20,112(%r1) + std %r21,120(%r1) + std %r22,128(%r1) + std %r23,136(%r1) + std %r24,144(%r1) + std %r25,152(%r1) + std %r26,160(%r1) + std %r27,168(%r1) + std %r28,176(%r1) + std %r29,184(%r1) + std %r30,192(%r1) + std %r31,200(%r1) + + /* Record the old MSR */ + mfmsr %r6 + + /* read client interface handler */ + lis %r5,rtas_entry@ha + ld %r5,rtas_entry@l(%r5) + + /* + * Set the MSR to the RTAS value. This has the side effect of disabling + * exceptions, which is important for the next few steps. + */ + + lis %r7,rtasmsr@ha + ld %r7,rtasmsr@l(%r7) + mtmsrd %r7 + isync + + /* + * Set up RTAS register save area, so that we can get back all of + * our 64-bit pointers. Save our stack pointer, the TOC, and the MSR. + * Put this in r1, since RTAS is obliged to save it. Kernel globals + * are below 4 GB, so this is safe. + */ + mr %r7,%r1 + lis %r1,rtas_regsave@ha + addi %r1,%r1,rtas_regsave@l + std %r7,0(%r1) /* Save 64-bit stack pointer */ + std %r2,8(%r1) /* Save TOC */ + std %r6,16(%r1) /* Save MSR */ + + /* Finally, branch to RTAS */ + mtctr %r5 + bctrl + + /* + * Reload stack pointer and MSR from the reg save area in r1. We are + * running in 32-bit mode at this point, so it doesn't matter if r1 + * has become sign-extended. + */ + ld %r6,16(%r1) + ld %r2,8(%r1) + ld %r1,0(%r1) + + /* Now set the real MSR */ + mtmsrd %r6 + isync + + /* Sign-extend the return value from RTAS */ + extsw %r3,%r3 + + /* Restore all the non-volatile registers */ + ld %r5,48(%r1) + mtcr %r5 + ld %r13,56(%r1) + ld %r14,64(%r1) + ld %r15,72(%r1) + ld %r16,80(%r1) + ld %r17,88(%r1) + ld %r18,96(%r1) + ld %r19,104(%r1) + ld %r20,112(%r1) + ld %r21,120(%r1) + ld %r22,128(%r1) + ld %r23,136(%r1) + ld %r24,144(%r1) + ld %r25,152(%r1) + ld %r26,160(%r1) + ld %r27,168(%r1) + ld %r28,176(%r1) + ld %r29,184(%r1) + ld %r30,192(%r1) + ld %r31,200(%r1) + + /* Restore the stack and link register */ + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr + Copied: projects/pseries/powerpc/ofw/ofwmagic.S (from r221988, projects/pseries/powerpc/aim/ofwmagic.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/ofw/ofwmagic.S Wed May 18 14:55:16 2011 (r222057, copy of r221988, projects/pseries/powerpc/aim/ofwmagic.S) @@ -0,0 +1,68 @@ +/* $FreeBSD$ */ +/* $NetBSD: ofwmagic.S,v 1.2 1997/10/09 08:38:18 jtc Exp $ */ + +/*- + * Copyright (c) 1997 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe. + * + * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +/* + * Magic note section used by Open Firmware. + */ + + .section ".note" + + /*# note header */ + + /*# length of name */ + .long 8 + + /*# note descriptor size */ + .long 20 + + /*# note type (IEEE 1275) */ + .long 0x1275 + + /*# name of owner */ + .asciz "PowerPC" + .balign 4 + + + /*# note descriptor */ + + /*# real mode (-1) or virtual mode (0) */ + .long 0 + + /*# real-base */ + .long -1 + /*# real-size */ + .long -1 + + /*# virt-base */ + .long -1 + /*# virt-size */ + .long -1 From owner-svn-src-projects@FreeBSD.ORG Wed May 18 14:59:54 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01A5E106564A; Wed, 18 May 2011 14:59:54 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E61158FC1D; Wed, 18 May 2011 14:59:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IExrva096504; Wed, 18 May 2011 14:59:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IExrS0096502; Wed, 18 May 2011 14:59:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105181459.p4IExrS0096502@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 18 May 2011 14:59:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222058 - projects/pseries/powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 14:59:54 -0000 Author: nwhitehorn Date: Wed May 18 14:59:53 2011 New Revision: 222058 URL: http://svn.freebsd.org/changeset/base/222058 Log: Kill some debugging code that snuck in here. Modified: projects/pseries/powerpc/ofw/ofw_machdep.c Modified: projects/pseries/powerpc/ofw/ofw_machdep.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_machdep.c Wed May 18 14:55:16 2011 (r222057) +++ projects/pseries/powerpc/ofw/ofw_machdep.c Wed May 18 14:59:53 2011 (r222058) @@ -444,7 +444,6 @@ openfirmware_core(void *args) #endif result = ofwcall(args); - //result = ((int (*)(void *))(openfirmware_entry))(args); ofw_sprg_restore(); intr_restore(oldmsr); From owner-svn-src-projects@FreeBSD.ORG Wed May 18 15:07:36 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A4CB106566C; Wed, 18 May 2011 15:07:36 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AA608FC15; Wed, 18 May 2011 15:07:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IF7aN9096776; Wed, 18 May 2011 15:07:36 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IF7ahr096774; Wed, 18 May 2011 15:07:36 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105181507.p4IF7ahr096774@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 18 May 2011 15:07:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222059 - projects/pseries/powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 15:07:36 -0000 Author: nwhitehorn Date: Wed May 18 15:07:36 2011 New Revision: 222059 URL: http://svn.freebsd.org/changeset/base/222059 Log: Make sure the OF argument bounce page is not until below 4 GB but also below the real-mode boundary that that real-mode firmware can see it. Modified: projects/pseries/powerpc/ofw/ofw_real.c Modified: projects/pseries/powerpc/ofw/ofw_real.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_real.c Wed May 18 14:59:53 2011 (r222058) +++ projects/pseries/powerpc/ofw/ofw_real.c Wed May 18 15:07:36 2011 (r222059) @@ -205,13 +205,14 @@ ofw_real_bounce_alloc(void *junk) /* * Allocate a page of contiguous, wired physical memory that can - * fit into a 32-bit address space. + * fit into a 32-bit address space and accessed from real mode. */ mtx_lock(&of_bounce_mtx); - of_bounce_virt = contigmalloc(PAGE_SIZE, M_OFWREAL, 0, - 0, BUS_SPACE_MAXADDR_32BIT, PAGE_SIZE, PAGE_SIZE); + of_bounce_virt = contigmalloc(PAGE_SIZE, M_OFWREAL, 0, 0, + ulmin(platform_real_maxaddr(), BUS_SPACE_MAXADDR_32BIT), PAGE_SIZE, + PAGE_SIZE); of_bounce_phys = vtophys(of_bounce_virt); of_bounce_size = PAGE_SIZE; From owner-svn-src-projects@FreeBSD.ORG Wed May 18 15:50:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99C49106564A; Wed, 18 May 2011 15:50:12 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A3418FC08; Wed, 18 May 2011 15:50:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IFoCaF098156; Wed, 18 May 2011 15:50:12 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IFoCDW098154; Wed, 18 May 2011 15:50:12 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181550.p4IFoCDW098154@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 15:50:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222062 - projects/largeSMP/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 15:50:12 -0000 Author: attilio Date: Wed May 18 15:50:12 2011 New Revision: 222062 URL: http://svn.freebsd.org/changeset/base/222062 Log: Fix mismerge. Reported by: pluknet Modified: projects/largeSMP/sys/kern/subr_smp.c Modified: projects/largeSMP/sys/kern/subr_smp.c ============================================================================== --- projects/largeSMP/sys/kern/subr_smp.c Wed May 18 15:09:48 2011 (r222061) +++ projects/largeSMP/sys/kern/subr_smp.c Wed May 18 15:50:12 2011 (r222062) @@ -53,10 +53,10 @@ __FBSDID("$FreeBSD$"); #include "opt_sched.h" #ifdef SMP -volatile cpumask_t stopped_cpus; -volatile cpumask_t started_cpus; -cpumask_t hlt_cpus_mask; -cpumask_t logical_cpus_mask; +volatile cpuset_t stopped_cpus; +volatile cpuset_t started_cpus; +cpuset_t hlt_cpus_mask; +cpuset_t logical_cpus_mask; void (*cpustop_restartfunc)(void); #endif From owner-svn-src-projects@FreeBSD.ORG Wed May 18 16:01:30 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B3E0106566C; Wed, 18 May 2011 16:01:30 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EC9008FC0C; Wed, 18 May 2011 16:01:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IG1TG0098576; Wed, 18 May 2011 16:01:29 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IG1T9P098557; Wed, 18 May 2011 16:01:29 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181601.p4IG1T9P098557@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 16:01:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222063 - in projects/largeSMP: contrib/top lib/libprocstat share/mk sys/amd64/amd64 sys/amd64/include sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/ath/ath_hal/ar5416 sys/dev/... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 16:01:30 -0000 Author: attilio Date: Wed May 18 16:01:29 2011 New Revision: 222063 URL: http://svn.freebsd.org/changeset/base/222063 Log: MFC Modified: projects/largeSMP/lib/libprocstat/libprocstat.c projects/largeSMP/sys/amd64/amd64/identcpu.c projects/largeSMP/sys/amd64/include/specialreg.h projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c projects/largeSMP/sys/dev/sound/usb/uaudio.c projects/largeSMP/sys/dev/usb/input/uhid.c projects/largeSMP/sys/dev/usb/input/ukbd.c projects/largeSMP/sys/dev/usb/input/ums.c projects/largeSMP/sys/dev/usb/storage/umass.c projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c projects/largeSMP/sys/dev/usb/usb_device.c projects/largeSMP/sys/dev/usb/usbdi.h projects/largeSMP/sys/i386/i386/identcpu.c projects/largeSMP/sys/i386/include/specialreg.h projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/lib/libprocstat/libprocstat.c ============================================================================== --- projects/largeSMP/lib/libprocstat/libprocstat.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/lib/libprocstat/libprocstat.c Wed May 18 16:01:29 2011 (r222063) @@ -132,6 +132,7 @@ procstat_close(struct procstat *procstat assert(procstat); if (procstat->type == PROCSTAT_KVM) kvm_close(procstat->kd); + free(procstat); } struct procstat * Modified: projects/largeSMP/sys/amd64/amd64/identcpu.c ============================================================================== --- projects/largeSMP/sys/amd64/amd64/identcpu.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/amd64/amd64/identcpu.c Wed May 18 16:01:29 2011 (r222063) @@ -216,6 +216,14 @@ printcpuinfo(void) printf(" Family = %x", CPUID_TO_FAMILY(cpu_id)); printf(" Model = %x", CPUID_TO_MODEL(cpu_id)); printf(" Stepping = %u", cpu_id & CPUID_STEPPING); + + /* + * AMD CPUID Specification + * http://support.amd.com/us/Embedded_TechDocs/25481.pdf + * + * Intel Processor Identification and CPUID Instruction + * http://www.intel.com/assets/pdf/appnote/241618.pdf + */ if (cpu_high > 0) { /* @@ -277,38 +285,29 @@ printcpuinfo(void) "\012SSSE3" /* SSSE3 */ "\013CNXT-ID" /* L1 context ID available */ "\014" - "\015" + "\015FMA" /* Fused Multiply Add */ "\016CX16" /* CMPXCHG16B Instruction */ "\017xTPR" /* Send Task Priority Messages*/ "\020PDCM" /* Perf/Debug Capability MSR */ "\021" - "\022PCID" /* Process-context Identifiers */ + "\022PCID" /* Process-context Identifiers*/ "\023DCA" /* Direct Cache Access */ - "\024SSE4.1" - "\025SSE4.2" + "\024SSE4.1" /* SSE 4.1 */ + "\025SSE4.2" /* SSE 4.2 */ "\026x2APIC" /* xAPIC Extensions */ - "\027MOVBE" - "\030POPCNT" - "\031" - "\032AESNI" /* AES Crypto*/ - "\033XSAVE" - "\034OSXSAVE" - "\035" - "\036" + "\027MOVBE" /* MOVBE Instruction */ + "\030POPCNT" /* POPCNT Instruction */ + "\031TSCDLT" /* TSC-Deadline Timer */ + "\032AESNI" /* AES Crypto */ + "\033XSAVE" /* XSAVE/XRSTOR States */ + "\034OSXSAVE" /* OS-Enabled State Management*/ + "\035AVX" /* Advanced Vector Extensions */ + "\036F16C" /* Half-precision conversions */ "\037" "\040HV" /* Hypervisor */ ); } - /* - * AMD64 Architecture Programmer's Manual Volume 3: - * General-Purpose and System Instructions - * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf - * - * IA-32 Intel Architecture Software Developer's Manual, - * Volume 2A: Instruction Set Reference, A-M - * ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf - */ if (amd_feature != 0) { printf("\n AMD Features=0x%b", amd_feature, "\020" /* in hex */ @@ -361,18 +360,18 @@ printcpuinfo(void) "\011Prefetch" /* 3DNow! Prefetch/PrefetchW */ "\012OSVW" /* OS visible workaround */ "\013IBS" /* Instruction based sampling */ - "\014SSE5" /* SSE5 */ + "\014XOP" /* XOP extended instructions */ "\015SKINIT" /* SKINIT/STGI */ "\016WDT" /* Watchdog timer */ "\017" - "\020" - "\021" + "\020LWP" /* Lightweight Profiling */ + "\021FMA4" /* 4-operand FMA instructions */ "\022" "\023" - "\024" + "\024NodeId" /* NodeId MSR support */ "\025" - "\026" - "\027" + "\026TBM" /* Trailing Bit Manipulation */ + "\027Topology" /* Topology Extensions */ "\030" "\031" "\032" Modified: projects/largeSMP/sys/amd64/include/specialreg.h ============================================================================== --- projects/largeSMP/sys/amd64/include/specialreg.h Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/amd64/include/specialreg.h Wed May 18 16:01:29 2011 (r222063) @@ -123,6 +123,7 @@ #define CPUID2_TM2 0x00000100 #define CPUID2_SSSE3 0x00000200 #define CPUID2_CNXTID 0x00000400 +#define CPUID2_FMA 0x00001000 #define CPUID2_CX16 0x00002000 #define CPUID2_XTPR 0x00004000 #define CPUID2_PDCM 0x00008000 @@ -133,7 +134,12 @@ #define CPUID2_X2APIC 0x00200000 #define CPUID2_MOVBE 0x00400000 #define CPUID2_POPCNT 0x00800000 +#define CPUID2_TSCDLT 0x01000000 #define CPUID2_AESNI 0x02000000 +#define CPUID2_XSAVE 0x04000000 +#define CPUID2_OSXSAVE 0x08000000 +#define CPUID2_AVX 0x10000000 +#define CPUID2_F16C 0x20000000 #define CPUID2_HV 0x80000000 /* @@ -170,9 +176,14 @@ #define AMDID2_PREFETCH 0x00000100 #define AMDID2_OSVW 0x00000200 #define AMDID2_IBS 0x00000400 -#define AMDID2_SSE5 0x00000800 +#define AMDID2_XOP 0x00000800 #define AMDID2_SKINIT 0x00001000 #define AMDID2_WDT 0x00002000 +#define AMDID2_LWP 0x00008000 +#define AMDID2_FMA4 0x00010000 +#define AMDID2_NODE_ID 0x00080000 +#define AMDID2_TBM 0x00200000 +#define AMDID2_TOPOLOGY 0x00400000 /* * CPUID instruction 1 eax info Modified: projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 18 16:01:29 2011 (r222063) @@ -689,6 +689,9 @@ zfs_secpolicy_destroy(zfs_cmd_t *zc, cre * and destroying snapshots requires descendent permissions, a successfull * check of the top level snapshot applies to snapshots of all descendent * datasets as well. + * + * The top level snapshot may not exist when doing a recursive destroy. + * In this case fallback to permissions of the parent dataset. */ static int zfs_secpolicy_destroy_snaps(zfs_cmd_t *zc, cred_t *cr) @@ -700,6 +703,9 @@ zfs_secpolicy_destroy_snaps(zfs_cmd_t *z error = zfs_secpolicy_destroy_perms(dsname, cr); + if (error == ENOENT) + error = zfs_secpolicy_destroy_perms(zc->zc_name, cr); + strfree(dsname); return (error); } Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 18 16:01:29 2011 (r222063) @@ -1368,10 +1368,6 @@ ar5416UpdateChainMasks(struct ath_hal *a AH5416(ah)->ah_rx_chainmask); } -#ifndef IS_5GHZ_FAST_CLOCK_EN -#define IS_5GHZ_FAST_CLOCK_EN(ah, chan) AH_FALSE -#endif - void ar5416InitPLL(struct ath_hal *ah, const struct ieee80211_channel *chan) { Modified: projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c ============================================================================== --- projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c Wed May 18 16:01:29 2011 (r222063) @@ -161,9 +161,10 @@ dot11rate_label(const HAL_RATE_TABLE *rt * or -1 if all the average_tx_times are 0. */ static __inline int -pick_best_rate(struct sample_node *sn, const HAL_RATE_TABLE *rt, +pick_best_rate(struct ath_node *an, const HAL_RATE_TABLE *rt, int size_bin, int require_acked_before) { + struct sample_node *sn = ATH_NODE_SAMPLE(an); int best_rate_rix, best_rate_tt; uint32_t mask; int rix, tt; @@ -174,6 +175,12 @@ pick_best_rate(struct sample_node *sn, c if ((mask & 1) == 0) /* not a supported rate */ continue; + /* Don't pick a non-HT rate for a HT node */ + if ((an->an_node.ni_flags & IEEE80211_NODE_HT) && + (rt->info[rix].phy != IEEE80211_T_HT)) { + continue; + } + tt = sn->stats[size_bin][rix].average_tx_time; if (tt <= 0 || (require_acked_before && @@ -196,11 +203,12 @@ pick_best_rate(struct sample_node *sn, c * Pick a good "random" bit-rate to sample other than the current one. */ static __inline int -pick_sample_rate(struct sample_softc *ssc , struct sample_node *sn, +pick_sample_rate(struct sample_softc *ssc , struct ath_node *an, const HAL_RATE_TABLE *rt, int size_bin) { #define DOT11RATE(ix) (rt->info[ix].dot11Rate & IEEE80211_RATE_VAL) #define MCS(ix) (rt->info[ix].dot11Rate | IEEE80211_RATE_MCS) + struct sample_node *sn = ATH_NODE_SAMPLE(an); int current_rix, rix; unsigned current_tt; uint32_t mask; @@ -208,6 +216,7 @@ pick_sample_rate(struct sample_softc *ss current_rix = sn->current_rix[size_bin]; if (current_rix < 0) { /* no successes yet, send at the lowest bit-rate */ + /* XXX should return MCS0 if HT */ return 0; } @@ -223,6 +232,13 @@ pick_sample_rate(struct sample_softc *ss continue; } + /* if the node is HT and the rate isn't HT, don't bother sample */ + if ((an->an_node.ni_flags & IEEE80211_NODE_HT) && + (rt->info[rix].phy != IEEE80211_T_HT)) { + mask &= ~(1<stats[size_bin][rix].perfect_tx_time > current_tt) { mask &= ~(1< 11M */ - if (DOT11RATE(rix) > 2*11 && rix > current_rix + 2) { - mask &= ~(1< 11M for non-HT rates */ + if (! (an->an_node.ni_flags & IEEE80211_NODE_HT)) { + if (DOT11RATE(rix) > 2*11 && rix > current_rix + 2) { + mask &= ~(1<last_sample_rix[size_bin] = rix; @@ -327,7 +345,7 @@ ath_rate_findrate(struct ath_softc *sc, /* XXX TODO: this doesn't know about 11gn vs 11g protection; teach it */ mrr = sc->sc_mrretry && !(ic->ic_flags & IEEE80211_F_USEPROT); - best_rix = pick_best_rate(sn, rt, size_bin, !mrr); + best_rix = pick_best_rate(an, rt, size_bin, !mrr); if (best_rix >= 0) { average_tx_time = sn->stats[size_bin][best_rix].average_tx_time; } else { @@ -338,7 +356,7 @@ ath_rate_findrate(struct ath_softc *sc, * rates to sample_rate% of the total transmission time. */ if (sn->sample_tt[size_bin] < average_tx_time * (sn->packets_since_sample[size_bin]*ssc->sample_rate/100)) { - rix = pick_sample_rate(ssc, sn, rt, size_bin); + rix = pick_sample_rate(ssc, an, rt, size_bin); IEEE80211_NOTE(an->an_node.ni_vap, IEEE80211_MSG_RATECTL, &an->an_node, "size %u sample rate %d current rate %d", bin_to_size(size_bin), RATE(rix), Modified: projects/largeSMP/sys/dev/sound/usb/uaudio.c ============================================================================== --- projects/largeSMP/sys/dev/sound/usb/uaudio.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/sound/usb/uaudio.c Wed May 18 16:01:29 2011 (r222063) @@ -539,9 +539,6 @@ uaudio_probe(device_t dev) if (uaa->usb_mode != USB_MODE_HOST) return (ENXIO); - if (uaa->use_generic == 0) - return (ENXIO); - /* lookup non-standard device */ if (uaa->info.bInterfaceClass != UICLASS_AUDIO) { @@ -555,7 +552,7 @@ uaudio_probe(device_t dev) if (usb_test_quirk(uaa, UQ_BAD_AUDIO)) return (ENXIO); else - return (0); + return (BUS_PROBE_GENERIC); } /* check for MIDI stream */ @@ -564,7 +561,7 @@ uaudio_probe(device_t dev) if (usb_test_quirk(uaa, UQ_BAD_MIDI)) return (ENXIO); else - return (0); + return (BUS_PROBE_GENERIC); } return (ENXIO); } Modified: projects/largeSMP/sys/dev/usb/input/uhid.c ============================================================================== --- projects/largeSMP/sys/dev/usb/input/uhid.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/input/uhid.c Wed May 18 16:01:29 2011 (r222063) @@ -617,10 +617,6 @@ uhid_probe(device_t dev) if (uaa->usb_mode != USB_MODE_HOST) { return (ENXIO); } - if (uaa->use_generic == 0) { - /* give Mouse and Keyboard drivers a try first */ - return (ENXIO); - } if (uaa->info.bInterfaceClass != UICLASS_HID) { /* the Xbox 360 gamepad doesn't use the HID class */ Modified: projects/largeSMP/sys/dev/usb/input/ukbd.c ============================================================================== --- projects/largeSMP/sys/dev/usb/input/ukbd.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/input/ukbd.c Wed May 18 16:01:29 2011 (r222063) @@ -771,7 +771,7 @@ ukbd_probe(device_t dev) if (usb_test_quirk(uaa, UQ_KBD_IGNORE)) return (ENXIO); else - return (BUS_PROBE_GENERIC); + return (BUS_PROBE_DEFAULT); } error = usbd_req_get_hid_desc(uaa->device, NULL, @@ -793,7 +793,7 @@ ukbd_probe(device_t dev) if (usb_test_quirk(uaa, UQ_KBD_IGNORE)) error = ENXIO; else - error = BUS_PROBE_GENERIC; + error = BUS_PROBE_DEFAULT; } else error = ENXIO; Modified: projects/largeSMP/sys/dev/usb/input/ums.c ============================================================================== --- projects/largeSMP/sys/dev/usb/input/ums.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/input/ums.c Wed May 18 16:01:29 2011 (r222063) @@ -373,7 +373,7 @@ ums_probe(device_t dev) if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) && (uaa->info.bInterfaceProtocol == UIPROTO_MOUSE)) - return (BUS_PROBE_GENERIC); + return (BUS_PROBE_DEFAULT); error = usbd_req_get_hid_desc(uaa->device, NULL, &d_ptr, &d_len, M_TEMP, uaa->info.bIfaceIndex); @@ -383,7 +383,7 @@ ums_probe(device_t dev) if (hid_is_collection(d_ptr, d_len, HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_MOUSE))) - error = BUS_PROBE_GENERIC; + error = BUS_PROBE_DEFAULT; else error = ENXIO; Modified: projects/largeSMP/sys/dev/usb/storage/umass.c ============================================================================== --- projects/largeSMP/sys/dev/usb/storage/umass.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/storage/umass.c Wed May 18 16:01:29 2011 (r222063) @@ -782,6 +782,7 @@ umass_probe_proto(device_t dev, struct u uint32_t proto = umass_get_proto(uaa->iface); memset(&ret, 0, sizeof(ret)); + ret.error = BUS_PROBE_GENERIC; /* Search for protocol enforcement */ @@ -870,10 +871,6 @@ umass_probe(device_t dev) if (uaa->usb_mode != USB_MODE_HOST) { return (ENXIO); } - if (uaa->use_generic == 0) { - /* give other drivers a try first */ - return (ENXIO); - } temp = umass_probe_proto(dev, uaa); return (temp.error); Modified: projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c ============================================================================== --- projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c Wed May 18 16:01:29 2011 (r222063) @@ -334,10 +334,6 @@ ustorage_fs_probe(device_t dev) if (uaa->usb_mode != USB_MODE_DEVICE) { return (ENXIO); } - if (uaa->use_generic == 0) { - /* give other drivers a try first */ - return (ENXIO); - } /* Check for a standards compliant device */ id = usbd_get_interface_descriptor(uaa->iface); if ((id == NULL) || @@ -346,7 +342,7 @@ ustorage_fs_probe(device_t dev) (id->bInterfaceProtocol != UIPROTO_MASS_BBB)) { return (ENXIO); } - return (0); + return (BUS_PROBE_GENERIC); } static int Modified: projects/largeSMP/sys/dev/usb/usb_device.c ============================================================================== --- projects/largeSMP/sys/dev/usb/usb_device.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/usb_device.c Wed May 18 16:01:29 2011 (r222063) @@ -1334,7 +1334,6 @@ usb_probe_and_attach(struct usb_device * uaa.info.bIfaceIndex = i; uaa.info.bIfaceNum = iface->idesc->bInterfaceNumber; - uaa.use_generic = 0; uaa.driver_info = 0; /* reset driver_info */ DPRINTFN(2, "iclass=%u/%u/%u iindex=%u/%u\n", @@ -1344,16 +1343,6 @@ usb_probe_and_attach(struct usb_device * uaa.info.bIfaceIndex, uaa.info.bIfaceNum); - /* try specific interface drivers first */ - - if (usb_probe_and_attach_sub(udev, &uaa)) { - /* ignore */ - } - /* try generic interface drivers last */ - - uaa.use_generic = 1; - uaa.driver_info = 0; /* reset driver_info */ - if (usb_probe_and_attach_sub(udev, &uaa)) { /* ignore */ } Modified: projects/largeSMP/sys/dev/usb/usbdi.h ============================================================================== --- projects/largeSMP/sys/dev/usb/usbdi.h Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/dev/usb/usbdi.h Wed May 18 16:01:29 2011 (r222063) @@ -357,7 +357,6 @@ struct usb_attach_arg { struct usb_interface *iface; /* current interface */ enum usb_hc_mode usb_mode; /* host or device mode */ uint8_t port; - uint8_t use_generic; /* hint for generic drivers */ uint8_t dev_state; #define UAA_DEV_READY 0 #define UAA_DEV_DISABLED 1 Modified: projects/largeSMP/sys/i386/i386/identcpu.c ============================================================================== --- projects/largeSMP/sys/i386/i386/identcpu.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/i386/i386/identcpu.c Wed May 18 16:01:29 2011 (r222063) @@ -693,6 +693,13 @@ printcpuinfo(void) printf(" Stepping = %u", cpu_id & CPUID_STEPPING); if (cpu_vendor_id == CPU_VENDOR_CYRIX) printf("\n DIR=0x%04x", cyrix_did); + /* + * AMD CPUID Specification + * http://support.amd.com/us/Embedded_TechDocs/25481.pdf + * + * Intel Processor Identification and CPUID Instruction + * http://www.intel.com/assets/pdf/appnote/241618.pdf + */ if (cpu_high > 0) { /* @@ -754,38 +761,29 @@ printcpuinfo(void) "\012SSSE3" /* SSSE3 */ "\013CNXT-ID" /* L1 context ID available */ "\014" - "\015" + "\015FMA" /* Fused Multiply Add */ "\016CX16" /* CMPXCHG16B Instruction */ "\017xTPR" /* Send Task Priority Messages*/ "\020PDCM" /* Perf/Debug Capability MSR */ "\021" - "\022PCID" /* Process-context Identifiers */ + "\022PCID" /* Process-context Identifiers*/ "\023DCA" /* Direct Cache Access */ - "\024SSE4.1" - "\025SSE4.2" + "\024SSE4.1" /* SSE 4.1 */ + "\025SSE4.2" /* SSE 4.2 */ "\026x2APIC" /* xAPIC Extensions */ - "\027MOVBE" - "\030POPCNT" - "\031" - "\032AESNI" /* AES Crypto*/ - "\033XSAVE" - "\034OSXSAVE" - "\035" - "\036" + "\027MOVBE" /* MOVBE Instruction */ + "\030POPCNT" /* POPCNT Instruction */ + "\031TSCDLT" /* TSC-Deadline Timer */ + "\032AESNI" /* AES Crypto */ + "\033XSAVE" /* XSAVE/XRSTOR States */ + "\034OSXSAVE" /* OS-Enabled State Management*/ + "\035AVX" /* Advanced Vector Extensions */ + "\036F16C" /* Half-precision conversions */ "\037" "\040HV" /* Hypervisor */ ); } - /* - * AMD64 Architecture Programmer's Manual Volume 3: - * General-Purpose and System Instructions - * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf - * - * IA-32 Intel Architecture Software Developer's Manual, - * Volume 2A: Instruction Set Reference, A-M - * ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf - */ if (amd_feature != 0) { printf("\n AMD Features=0x%b", amd_feature, "\020" /* in hex */ @@ -838,18 +836,18 @@ printcpuinfo(void) "\011Prefetch" /* 3DNow! Prefetch/PrefetchW */ "\012OSVW" /* OS visible workaround */ "\013IBS" /* Instruction based sampling */ - "\014SSE5" /* SSE5 */ + "\014XOP" /* XOP extended instructions */ "\015SKINIT" /* SKINIT/STGI */ "\016WDT" /* Watchdog timer */ "\017" - "\020" - "\021" + "\020LWP" /* Lightweight Profiling */ + "\021FMA4" /* 4-operand FMA instructions */ "\022" "\023" - "\024" + "\024NodeId" /* NodeId MSR support */ "\025" - "\026" - "\027" + "\026TBM" /* Trailing Bit Manipulation */ + "\027Topology" /* Topology Extensions */ "\030" "\031" "\032" Modified: projects/largeSMP/sys/i386/include/specialreg.h ============================================================================== --- projects/largeSMP/sys/i386/include/specialreg.h Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/i386/include/specialreg.h Wed May 18 16:01:29 2011 (r222063) @@ -120,6 +120,7 @@ #define CPUID2_TM2 0x00000100 #define CPUID2_SSSE3 0x00000200 #define CPUID2_CNXTID 0x00000400 +#define CPUID2_FMA 0x00001000 #define CPUID2_CX16 0x00002000 #define CPUID2_XTPR 0x00004000 #define CPUID2_PDCM 0x00008000 @@ -130,7 +131,12 @@ #define CPUID2_X2APIC 0x00200000 #define CPUID2_MOVBE 0x00400000 #define CPUID2_POPCNT 0x00800000 +#define CPUID2_TSCDLT 0x01000000 #define CPUID2_AESNI 0x02000000 +#define CPUID2_XSAVE 0x04000000 +#define CPUID2_OSXSAVE 0x08000000 +#define CPUID2_AVX 0x10000000 +#define CPUID2_F16C 0x20000000 #define CPUID2_HV 0x80000000 /* @@ -167,9 +173,14 @@ #define AMDID2_PREFETCH 0x00000100 #define AMDID2_OSVW 0x00000200 #define AMDID2_IBS 0x00000400 -#define AMDID2_SSE5 0x00000800 +#define AMDID2_XOP 0x00000800 #define AMDID2_SKINIT 0x00001000 #define AMDID2_WDT 0x00002000 +#define AMDID2_LWP 0x00008000 +#define AMDID2_FMA4 0x00010000 +#define AMDID2_NODE_ID 0x00080000 +#define AMDID2_TBM 0x00200000 +#define AMDID2_TOPOLOGY 0x00400000 /* * CPUID instruction 1 eax info Modified: projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed May 18 15:50:12 2011 (r222062) +++ projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed May 18 16:01:29 2011 (r222063) @@ -409,6 +409,7 @@ static int ubt_probe(device_t dev) { struct usb_attach_arg *uaa = device_get_ivars(dev); + int error; if (uaa->usb_mode != USB_MODE_HOST) return (ENXIO); @@ -416,14 +417,14 @@ ubt_probe(device_t dev) if (uaa->info.bIfaceIndex != 0) return (ENXIO); - if (uaa->use_generic == 0) - return (ENXIO); - if (usbd_lookup_id_by_uaa(ubt_ignore_devs, sizeof(ubt_ignore_devs), uaa) == 0) return (ENXIO); - return (usbd_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa)); + error = usbd_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa); + if (error == 0) + return (BUS_PROBE_GENERIC); + return (error); } /* ubt_probe */ /* From owner-svn-src-projects@FreeBSD.ORG Wed May 18 16:20:29 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0858F106566B; Wed, 18 May 2011 16:20:29 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E293C8FC0A; Wed, 18 May 2011 16:20:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IGKSWU099267; Wed, 18 May 2011 16:20:28 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IGKSGA099266; Wed, 18 May 2011 16:20:28 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181620.p4IGKSGA099266@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 16:20:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222066 - in projects/largeSMP: contrib/top share/mk X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 16:20:29 -0000 Author: attilio Date: Wed May 18 16:20:28 2011 New Revision: 222066 URL: http://svn.freebsd.org/changeset/base/222066 Log: MFC Modified: Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Wed May 18 16:56:36 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D03E7106566B; Wed, 18 May 2011 16:56:36 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C13708FC1B; Wed, 18 May 2011 16:56:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IGuapp000690; Wed, 18 May 2011 16:56:36 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IGuauQ000688; Wed, 18 May 2011 16:56:36 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181656.p4IGuauQ000688@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 16:56:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222071 - projects/largeSMP/sys/powerpc/booke X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 16:56:36 -0000 Author: attilio Date: Wed May 18 16:56:36 2011 New Revision: 222071 URL: http://svn.freebsd.org/changeset/base/222071 Log: Fix usage of cpumask that cannot be used like that anymore. Reported by: pluknet Modified: projects/largeSMP/sys/powerpc/booke/platform_bare.c Modified: projects/largeSMP/sys/powerpc/booke/platform_bare.c ============================================================================== --- projects/largeSMP/sys/powerpc/booke/platform_bare.c Wed May 18 16:50:13 2011 (r222070) +++ projects/largeSMP/sys/powerpc/booke/platform_bare.c Wed May 18 16:56:36 2011 (r222071) @@ -241,7 +241,7 @@ bare_smp_start_cpu(platform_t plat, stru int timeout; eebpcr = ccsr_read4(OCP85XX_EEBPCR); - if ((eebpcr & (pc->pc_cpumask << 24)) != 0) { + if ((eebpcr & (1 << (pc->pc_cpuid + 24))) != 0) { printf("%s: CPU=%d already out of hold-off state!\n", __func__, pc->pc_cpuid); return (ENXIO); @@ -259,7 +259,7 @@ bare_smp_start_cpu(platform_t plat, stru /* * Release AP from hold-off state */ - eebpcr |= (pc->pc_cpumask << 24); + eebpcr |= (1 << (pc->pc_cpuid + 24)); ccsr_write4(OCP85XX_EEBPCR, eebpcr); __asm __volatile("isync; msync"); From owner-svn-src-projects@FreeBSD.ORG Wed May 18 17:18:44 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB62C106564A; Wed, 18 May 2011 17:18:44 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C1C358FC0C; Wed, 18 May 2011 17:18:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IHIiwl001440; Wed, 18 May 2011 17:18:44 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IHIiGF001438; Wed, 18 May 2011 17:18:44 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181718.p4IHIiGF001438@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 17:18:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222073 - in projects/largeSMP: . contrib/top share/mk X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 17:18:44 -0000 Author: attilio Date: Wed May 18 17:18:44 2011 New Revision: 222073 URL: http://svn.freebsd.org/changeset/base/222073 Log: MFC Modified: projects/largeSMP/Makefile.inc1 Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/Makefile.inc1 ============================================================================== --- projects/largeSMP/Makefile.inc1 Wed May 18 17:06:11 2011 (r222072) +++ projects/largeSMP/Makefile.inc1 Wed May 18 17:18:44 2011 (r222073) @@ -1552,7 +1552,8 @@ _xb-build-tools: _xb-cross-tools: .for _tool in \ gnu/usr.bin/binutils \ - gnu/usr.bin/cc + gnu/usr.bin/cc \ + usr.bin/ar ${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,depend,all)"; \ cd ${.CURDIR}/${_tool}; \ ${CDMAKE} DIRPRFX=${_tool}/ obj; \ @@ -1577,7 +1578,8 @@ _xi-cross-tools: @echo "_xi-cross-tools" .for _tool in \ gnu/usr.bin/binutils \ - gnu/usr.bin/cc + gnu/usr.bin/cc \ + usr.bin/ar ${_+_}@${ECHODIR} "===> xdev ${_tool} (install)"; \ cd ${.CURDIR}/${_tool}; \ ${CDMAKE} DIRPRFX=${_tool}/ install DESTDIR=${XDDESTDIR} From owner-svn-src-projects@FreeBSD.ORG Wed May 18 19:46:26 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 648D3106566C; Wed, 18 May 2011 19:46:26 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 565B28FC0A; Wed, 18 May 2011 19:46:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4IJkQrF005899; Wed, 18 May 2011 19:46:26 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4IJkQEP005897; Wed, 18 May 2011 19:46:26 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105181946.p4IJkQEP005897@svn.freebsd.org> From: Attilio Rao Date: Wed, 18 May 2011 19:46:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222076 - projects/largeSMP/sys/powerpc/mpc85xx X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 18 May 2011 19:46:26 -0000 Author: attilio Date: Wed May 18 19:46:26 2011 New Revision: 222076 URL: http://svn.freebsd.org/changeset/base/222076 Log: Fix compilation. Submitted by: andreast Modified: projects/largeSMP/sys/powerpc/mpc85xx/openpic_fdt.c Modified: projects/largeSMP/sys/powerpc/mpc85xx/openpic_fdt.c ============================================================================== --- projects/largeSMP/sys/powerpc/mpc85xx/openpic_fdt.c Wed May 18 18:36:40 2011 (r222075) +++ projects/largeSMP/sys/powerpc/mpc85xx/openpic_fdt.c Wed May 18 19:46:26 2011 (r222076) @@ -37,11 +37,12 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include +#include + #include "pic_if.h" static int openpic_fdt_probe(device_t); From owner-svn-src-projects@FreeBSD.ORG Thu May 19 14:07:32 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 751C8106566B; Thu, 19 May 2011 14:07:32 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 65AC08FC0A; Thu, 19 May 2011 14:07:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4JE7WW5040511; Thu, 19 May 2011 14:07:32 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4JE7Wu1040509; Thu, 19 May 2011 14:07:32 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201105191407.p4JE7Wu1040509@svn.freebsd.org> From: Florent Thoumie Date: Thu, 19 May 2011 14:07:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222096 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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, 19 May 2011 14:07:32 -0000 Author: flz Date: Thu May 19 14:07:32 2011 New Revision: 222096 URL: http://svn.freebsd.org/changeset/base/222096 Log: portbuild: add missing check. Make sure portbuild.conf exists for the build before sourcing it. Modified: projects/portbuild/scripts/dosetupnode Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Thu May 19 13:42:19 2011 (r222095) +++ projects/portbuild/scripts/dosetupnode Thu May 19 14:07:32 2011 (r222096) @@ -61,7 +61,9 @@ setup() { echo "setting up of $node started at $(date)" . ${pbd}/${arch}/portbuild.conf - . ${pbd}/${arch}/${branch}/builds/${buildid}/portbuild.conf + if [ -f ${pbd}/${arch}/${branch}/builds/${buildid}/portbuild.conf ]; then + . ${pbd}/${arch}/${branch}/builds/${buildid}/portbuild.conf + fi . ${pbd}/${arch}/portbuild.${node} if [ "${buildid}" != "-" ]; then From owner-svn-src-projects@FreeBSD.ORG Thu May 19 21:16:46 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 656F21065672; Thu, 19 May 2011 21:16:46 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5539E8FC14; Thu, 19 May 2011 21:16:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4JLGkx8053558; Thu, 19 May 2011 21:16:46 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4JLGkO4053556; Thu, 19 May 2011 21:16:46 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201105192116.p4JLGkO4053556@svn.freebsd.org> From: Ermal Luçi Date: Thu, 19 May 2011 21:16:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222104 - projects/pf/pf45/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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, 19 May 2011 21:16:46 -0000 Author: eri Date: Thu May 19 21:16:46 2011 New Revision: 222104 URL: http://svn.freebsd.org/changeset/base/222104 Log: Prevent allocationg memory with locks held. Modified: projects/pf/pf45/sys/contrib/pf/net/pf_ioctl.c Modified: projects/pf/pf45/sys/contrib/pf/net/pf_ioctl.c ============================================================================== --- projects/pf/pf45/sys/contrib/pf/net/pf_ioctl.c Thu May 19 20:35:40 2011 (r222103) +++ projects/pf/pf45/sys/contrib/pf/net/pf_ioctl.c Thu May 19 21:16:46 2011 (r222104) @@ -3414,10 +3414,21 @@ pfioctl(dev_t dev, u_long cmd, caddr_t a error = ENODEV; goto fail; } +#ifdef __FreeBSD__ + PF_UNLOCK(); +#endif ioe = malloc(sizeof(*ioe), M_TEMP, M_WAITOK); table = malloc(sizeof(*table), M_TEMP, M_WAITOK); +#ifdef __FreeBSD__ + PF_LOCK(); +#endif for (i = 0; i < io->size; i++) { +#ifdef __FreeBSD__ + PF_COPYIN(io->array+i, ioe, sizeof(*ioe), error); + if (error) { +#else if (copyin(io->array+i, ioe, sizeof(*ioe))) { +#endif free(table, M_TEMP); free(ioe, M_TEMP); error = EFAULT; From owner-svn-src-projects@FreeBSD.ORG Thu May 19 21:53:26 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E96A4106564A; Thu, 19 May 2011 21:53:25 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D7BAC8FC1B; Thu, 19 May 2011 21:53:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4JLrPJJ054652; Thu, 19 May 2011 21:53:25 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4JLrP1f054643; Thu, 19 May 2011 21:53:25 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201105192153.p4JLrP1f054643@svn.freebsd.org> From: Peter Grehan Date: Thu, 19 May 2011 21:53:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222105 - in projects/bhyve: sys/amd64/vmm sys/dev/bvm usr.sbin/bhyve X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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, 19 May 2011 21:53:26 -0000 Author: grehan Date: Thu May 19 21:53:25 2011 New Revision: 222105 URL: http://svn.freebsd.org/changeset/base/222105 Log: Changes to allow the GENERIC+bhye kernel built from this branch to run as a 1/2 CPU guest on an 8.1 bhyve host. bhyve/inout.c inout.h fbsdrun.c - Rather than exiting on accesses to unhandled i/o ports, emulate hardware by returning -1 on reads and ignoring writes to unhandled ports. Support the previous mode by allowing a 'strict' parameter to be set from the command line. The 8.1 guest kernel was vastly cut down from GENERIC and had no ISA devices. Booting GENERIC exposes a massive amount of random touching of i/o ports (hello syscons/vga/atkbdc). bhyve/consport.c dev/bvm/bvm_console.c - implement a simplistic signature for the bvm console by returning 'bv' for an inw on the port. Also, set the priority of the console to CN_REMOTE if the signature was returned. This works better in an environment where multiple consoles are in the kernel (hello syscons) bhyve/rtc.c - return 0 for the access to RTC_EQUIPMENT (yes, you syscons) amd64/vmm/x86.c x86.h - hide a bunch more CPUID leaf 1 bits from the guest to prevent cpufreq drivers from probing. The next step will be to move CPUID handling completely into user-space. This will allow the full spectrum of changes from presenting a lowest-common-denominator CPU type/feature set, to exposing (almost) everything that the host can support. Reviewed by: neel Obtained from: NetApp Modified: projects/bhyve/sys/amd64/vmm/x86.c projects/bhyve/sys/amd64/vmm/x86.h projects/bhyve/sys/dev/bvm/bvm_console.c projects/bhyve/usr.sbin/bhyve/consport.c projects/bhyve/usr.sbin/bhyve/fbsdrun.c projects/bhyve/usr.sbin/bhyve/inout.c projects/bhyve/usr.sbin/bhyve/inout.h projects/bhyve/usr.sbin/bhyve/rtc.c Modified: projects/bhyve/sys/amd64/vmm/x86.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/x86.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/sys/amd64/vmm/x86.c Thu May 19 21:53:25 2011 (r222105) @@ -75,13 +75,19 @@ x86_emulate_cpuid(uint32_t *eax, uint32_ regs[1] |= (0 << CPUID_0000_0001_APICID_SHIFT); /* - * Don't expose VMX capability. + * Don't expose VMX, SpeedStep or TME capability. * Advertise x2APIC capability. */ - regs[2] &= ~CPUID_0000_0001_FEAT0_VMX; + regs[2] &= ~(CPUID_0000_0001_FEAT0_VMX | CPUID2_EST | + CPUID2_TM2); regs[2] |= CPUID2_X2APIC; /* + * Hide thermal monitoring + */ + regs[3] &= ~(CPUID_ACPI | CPUID_TM); + + /* * Machine check handling is done in the host. * Hide MTRR capability. */ @@ -89,6 +95,17 @@ x86_emulate_cpuid(uint32_t *eax, uint32_ break; + case CPUID_0000_0006: + /* + * Handle the access, but report 0 for + * all options + */ + regs[0] = 0; + regs[1] = 0; + regs[2] = 0; + regs[3] = 0; + break; + case CPUID_0000_000B: /* * XXXSMP fixme Modified: projects/bhyve/sys/amd64/vmm/x86.h ============================================================================== --- projects/bhyve/sys/amd64/vmm/x86.h Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/sys/amd64/vmm/x86.h Thu May 19 21:53:25 2011 (r222105) @@ -34,6 +34,7 @@ #define CPUID_0000_0002 (0x2) #define CPUID_0000_0003 (0x3) #define CPUID_0000_0004 (0x4) +#define CPUID_0000_0006 (0x6) #define CPUID_0000_000A (0xA) #define CPUID_0000_000B (0xB) #define CPUID_8000_0000 (0x80000000) Modified: projects/bhyve/sys/dev/bvm/bvm_console.c ============================================================================== --- projects/bhyve/sys/dev/bvm/bvm_console.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/sys/dev/bvm/bvm_console.c Thu May 19 21:53:25 2011 (r222105) @@ -70,6 +70,8 @@ static int alt_break_state; #define BVM_CONS_PORT 0x220 static int bvm_cons_port = BVM_CONS_PORT; +#define BVM_CONS_SIG ('b' << 8 | 'v') + static void bvm_timeout(void *); static cn_probe_t bvm_cnprobe; @@ -171,14 +173,16 @@ bvm_cnprobe(struct consdev *cp) int disabled, port; disabled = 0; + cp->cn_pri = CN_DEAD; + resource_int_value("bvmconsole", 0, "disabled", &disabled); - if (disabled) - cp->cn_pri = CN_DEAD; - else - cp->cn_pri = CN_NORMAL; + if (!disabled) { + if (resource_int_value("bvmconsole", 0, "port", &port) == 0) + bvm_cons_port = port; - if (resource_int_value("bvmconsole", 0, "port", &port) == 0) - bvm_cons_port = port; + if (inw(bvm_cons_port) == BVM_CONS_SIG) + cp->cn_pri = CN_REMOTE; + } } static void Modified: projects/bhyve/usr.sbin/bhyve/consport.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/consport.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/usr.sbin/bhyve/consport.c Thu May 19 21:53:25 2011 (r222105) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include "inout.h" #define BVM_CONSOLE_PORT 0x220 +#define BVM_CONS_SIG ('b' << 8 | 'v') static struct termios tio_orig, tio_new; @@ -103,6 +104,11 @@ console_handler(struct vmctx *ctx, int v { static int opened; + if (bytes == 2 && in) { + *eax = BVM_CONS_SIG; + return (0); + } + if (bytes != 4) return (-1); Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/fbsdrun.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/usr.sbin/bhyve/fbsdrun.c Thu May 19 21:53:25 2011 (r222105) @@ -85,6 +85,8 @@ static int guest_vmexit_on_hlt, guest_vm static int foundcpus; +static int strictio; + static char *lomem_addr; static char *himem_addr; @@ -122,7 +124,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-hBHP][-g ][-z ][-s ][-p pincpu]" + "Usage: %s [-ehBHP][-g ][-z ][-s ][-p pincpu]" "[-n ][-m lowmem][-M highmem] \n" " -g: gdb port (default is %d and 0 means don't open)\n" " -c: # cpus (default 1)\n" @@ -130,6 +132,7 @@ usage(int code) " -B: inject breakpoint exception on vm entry\n" " -H: vmexit from the guest on hlt\n" " -P: vmexit from the guest on pause\n" + " -e: exit on unhandled i/o access\n" " -h: help\n" " -z: guest hz (default is %d)\n" " -s: PCI slot config\n" @@ -300,7 +303,7 @@ vmexit_inout(struct vmctx *ctx, struct v if (out && port == GUEST_NIO_PORT) return (vmexit_handle_notify(ctx, vme, pvcpu, eax)); - error = emulate_inout(ctx, vcpu, in, port, bytes, &eax); + error = emulate_inout(ctx, vcpu, in, port, bytes, &eax, strictio); if (error == 0 && in) error = vm_set_register(ctx, vcpu, VM_REG_GUEST_RAX, eax); @@ -510,7 +513,7 @@ main(int argc, char *argv[]) gdb_port = DEFAULT_GDB_PORT; guest_ncpus = 1; - while ((c = getopt(argc, argv, "hBHPxp:g:c:z:s:n:m:M:")) != -1) { + while ((c = getopt(argc, argv, "ehBHPxp:g:c:z:s:n:m:M:")) != -1) { switch (c) { case 'B': inject_bkpt = 1; @@ -551,6 +554,9 @@ main(int argc, char *argv[]) case 'P': guest_vmexit_on_pause = 1; break; + case 'e': + strictio = 1; + break; case 'h': usage(0); default: Modified: projects/bhyve/usr.sbin/bhyve/inout.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/inout.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/usr.sbin/bhyve/inout.c Thu May 19 21:53:25 2011 (r222105) @@ -48,9 +48,30 @@ static struct { void *arg; } inout_handlers[MAX_IOPORTS]; +static int +default_inout(struct vmctx *ctx, int vcpu, int in, int port, int bytes, + uint32_t *eax, void *arg) +{ + if (in) { + switch (bytes) { + case 4: + *eax = 0xffffffff; + break; + case 2: + *eax = 0xffff; + break; + case 1: + *eax = 0xff; + break; + } + } + + return (0); +} + int emulate_inout(struct vmctx *ctx, int vcpu, int in, int port, int bytes, - uint32_t *eax) + uint32_t *eax, int strict) { int flags; inout_func_t handler; @@ -58,7 +79,9 @@ emulate_inout(struct vmctx *ctx, int vcp assert(port < MAX_IOPORTS); - if ((handler = inout_handlers[port].handler) == NULL) + handler = inout_handlers[port].handler; + + if (strict && handler == default_inout) return (-1); flags = inout_handlers[port].flags; @@ -74,7 +97,21 @@ void init_inout(void) { struct inout_port **iopp, *iop; + int i; + + /* + * Set up the default handler for all ports + */ + for (i = 0; i < MAX_IOPORTS; i++) { + inout_handlers[i].name = "default"; + inout_handlers[i].flags = IOPORT_F_IN | IOPORT_F_OUT; + inout_handlers[i].handler = default_inout; + inout_handlers[i].arg = NULL; + } + /* + * Overwrite with specified handlers + */ SET_FOREACH(iopp, inout_port_set) { iop = *iopp; assert(iop->port < MAX_IOPORTS); Modified: projects/bhyve/usr.sbin/bhyve/inout.h ============================================================================== --- projects/bhyve/usr.sbin/bhyve/inout.h Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/usr.sbin/bhyve/inout.h Thu May 19 21:53:25 2011 (r222105) @@ -59,7 +59,7 @@ struct inout_port { void init_inout(void); int emulate_inout(struct vmctx *, int vcpu, int in, int port, int bytes, - uint32_t *eax); + uint32_t *eax, int strict); int register_inout(struct inout_port *iop); #endif /* _INOUT_H_ */ Modified: projects/bhyve/usr.sbin/bhyve/rtc.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/rtc.c Thu May 19 21:16:46 2011 (r222104) +++ projects/bhyve/usr.sbin/bhyve/rtc.c Thu May 19 21:53:25 2011 (r222105) @@ -68,6 +68,8 @@ __FBSDID("$FreeBSD$"); #define RTC_RSTCODE 0x0f +#define RTC_EQUIPMENT 0x14 + static int addr; /* XXX initialize these to default values as they would be from BIOS */ @@ -136,6 +138,7 @@ rtc_addr_handler(struct vmctx *ctx, int case RTC_STATUSD: case RTC_DIAG: case RTC_RSTCODE: + case RTC_EQUIPMENT: break; default: return (-1); @@ -228,6 +231,9 @@ rtc_data_handler(struct vmctx *ctx, int case RTC_RSTCODE: *eax = rstcode; return (0); + case RTC_EQUIPMENT: + *eax = 0; + return (0); default: return (-1); } From owner-svn-src-projects@FreeBSD.ORG Thu May 19 22:55:38 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92508106566C; Thu, 19 May 2011 22:55:38 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EA878FC1B; Thu, 19 May 2011 22:55:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4JMtc09056587; Thu, 19 May 2011 22:55:38 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4JMtbvE056541; Thu, 19 May 2011 22:55:37 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105192255.p4JMtbvE056541@svn.freebsd.org> From: Attilio Rao Date: Thu, 19 May 2011 22:55:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222106 - in projects/largeSMP: . contrib/gcc contrib/gperf/src contrib/groff/src/devices/grohtml contrib/groff/src/libs/libdriver contrib/groff/src/roff/troff contrib/groff/src/utils/h... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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, 19 May 2011 22:55:38 -0000 Author: attilio Date: Thu May 19 22:55:37 2011 New Revision: 222106 URL: http://svn.freebsd.org/changeset/base/222106 Log: MFC Added: projects/largeSMP/tools/build/options/WITHOUT_BINUTILS - copied unchanged from r222105, head/tools/build/options/WITHOUT_BINUTILS projects/largeSMP/tools/build/options/WITHOUT_GCC - copied unchanged from r222105, head/tools/build/options/WITHOUT_GCC Modified: projects/largeSMP/Makefile.inc1 projects/largeSMP/contrib/gcc/genattrtab.c projects/largeSMP/contrib/gcc/genautomata.c projects/largeSMP/contrib/gcc/gengtype-lex.l projects/largeSMP/contrib/gcc/genmodes.c projects/largeSMP/contrib/gperf/src/gen-perf.cc projects/largeSMP/contrib/gperf/src/key-list.cc projects/largeSMP/contrib/gperf/src/options.cc projects/largeSMP/contrib/groff/src/devices/grohtml/post-html.cpp projects/largeSMP/contrib/groff/src/libs/libdriver/input.cpp projects/largeSMP/contrib/groff/src/roff/troff/mtsm.cpp projects/largeSMP/contrib/groff/src/roff/troff/node.cpp projects/largeSMP/contrib/groff/src/utils/hpftodit/hpftodit.cpp projects/largeSMP/crypto/heimdal/lib/sl/slc-gram.y projects/largeSMP/gnu/usr.bin/Makefile projects/largeSMP/release/Makefile projects/largeSMP/release/generate-release.sh projects/largeSMP/sbin/hastd/pjdlog.c projects/largeSMP/share/man/man9/sbuf.9 projects/largeSMP/share/misc/committers-src.dot projects/largeSMP/share/misc/iso3166 projects/largeSMP/share/mk/bsd.own.mk projects/largeSMP/sys/dev/cxgbe/t4_main.c projects/largeSMP/sys/dev/cxgbe/t4_sge.c projects/largeSMP/sys/dev/puc/pucdata.c projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c projects/largeSMP/sys/kern/kern_conf.c projects/largeSMP/sys/netinet/sctp_output.c projects/largeSMP/sys/nfsclient/nfs_vfsops.c projects/largeSMP/sys/sys/proc.h projects/largeSMP/usr.bin/rpcgen/rpc_hout.c projects/largeSMP/usr.bin/rpcgen/rpc_svcout.c projects/largeSMP/usr.bin/rpcgen/rpc_tblout.c projects/largeSMP/usr.bin/truss/amd64-fbsd.c projects/largeSMP/usr.bin/truss/amd64-fbsd32.c projects/largeSMP/usr.bin/truss/i386-fbsd.c projects/largeSMP/usr.bin/truss/ia64-fbsd.c projects/largeSMP/usr.bin/truss/main.c projects/largeSMP/usr.bin/truss/powerpc-fbsd.c projects/largeSMP/usr.bin/truss/powerpc64-fbsd.c projects/largeSMP/usr.bin/truss/sparc64-fbsd.c projects/largeSMP/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/largeSMP/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/Makefile.inc1 ============================================================================== --- projects/largeSMP/Makefile.inc1 Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/Makefile.inc1 Thu May 19 22:55:37 2011 (r222106) @@ -1132,6 +1132,10 @@ _kgzip= usr.sbin/kgzip .endif .endif +.if ${MK_BINUTILS} != "no" +_binutils= gnu/usr.bin/binutils +.endif + .if ${MK_CLANG} != "no" .if ${CC:T:Mclang} == "clang" _clang= usr.bin/clang @@ -1139,12 +1143,16 @@ _clang_libs= lib/clang .endif .endif +.if ${MK_GCC} != "no" +_cc= gnu/usr.bin/cc +.endif + cross-tools: .for _tool in \ ${_clang_libs} \ ${_clang} \ - gnu/usr.bin/binutils \ - gnu/usr.bin/cc \ + ${_binutils} \ + ${_cc} \ usr.bin/xlint/lint1 usr.bin/xlint/lint2 usr.bin/xlint/xlint \ ${_btxld} \ ${_crunchide} \ Modified: projects/largeSMP/contrib/gcc/genattrtab.c ============================================================================== --- projects/largeSMP/contrib/gcc/genattrtab.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gcc/genattrtab.c Thu May 19 22:55:37 2011 (r222106) @@ -1652,7 +1652,7 @@ simplify_cond (rtx exp, int insn_code, i rtx ret; /* This lets us free all storage allocated below, if appropriate. */ - obstack_finish (rtl_obstack); + (void) obstack_finish (rtl_obstack); memcpy (tests, XVEC (exp, 0)->elem, len * sizeof (rtx)); Modified: projects/largeSMP/contrib/gcc/genautomata.c ============================================================================== --- projects/largeSMP/contrib/gcc/genautomata.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gcc/genautomata.c Thu May 19 22:55:37 2011 (r222106) @@ -1099,7 +1099,7 @@ create_node (size_t size) obstack_blank (&irp, size); result = obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); /* Default values of members are NULL and zero. */ memset (result, 0, size); return result; @@ -1170,7 +1170,7 @@ next_sep_el (const char **pstr, int sep, } obstack_1grow (&irp, '\0'); out_str = obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); *pstr = p; if (**pstr == sep) @@ -1221,7 +1221,7 @@ get_str_vect (const char *str, int *els_ return NULL; obstack_blank (&irp, sizeof (char *) * (*els_num + 1)); vect = (char **) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); pstr = &str; for (i = 0; i < *els_num; i++) vect [i] = next_sep_el (pstr, sep, paren_p); @@ -3343,7 +3343,7 @@ alloc_empty_reserv_sets (void) obstack_blank (&irp, els_in_reservs * sizeof (set_el_t)); result = (reserv_sets_t) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); memset (result, 0, els_in_reservs * sizeof (set_el_t)); return result; } @@ -4117,10 +4117,10 @@ initiate_excl_sets (void) obstack_blank (&irp, els_in_cycle_reserv * sizeof (set_el_t)); excl_set = (reserv_sets_t) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); obstack_blank (&irp, description->units_num * sizeof (reserv_sets_t)); unit_excl_set_table = (reserv_sets_t *) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); /* Evaluate unit exclusion sets. */ for (i = 0; i < description->decls_num; i++) { @@ -4129,7 +4129,7 @@ initiate_excl_sets (void) { obstack_blank (&irp, els_in_cycle_reserv * sizeof (set_el_t)); unit_excl_set = (reserv_sets_t) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); memset (unit_excl_set, 0, els_in_cycle_reserv * sizeof (set_el_t)); for (el = DECL_UNIT (decl)->excl_list; el != NULL; @@ -4224,16 +4224,16 @@ initiate_presence_absence_pattern_sets ( obstack_blank (&irp, description->units_num * sizeof (pattern_reserv_t)); unit_presence_set_table = (pattern_reserv_t *) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); obstack_blank (&irp, description->units_num * sizeof (pattern_reserv_t)); unit_final_presence_set_table = (pattern_reserv_t *) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); obstack_blank (&irp, description->units_num * sizeof (pattern_reserv_t)); unit_absence_set_table = (pattern_reserv_t *) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); obstack_blank (&irp, description->units_num * sizeof (pattern_reserv_t)); unit_final_absence_set_table = (pattern_reserv_t *) obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); /* Evaluate unit presence/absence sets. */ for (i = 0; i < description->decls_num; i++) { @@ -4935,7 +4935,7 @@ store_alt_unit_usage (regexp_t regexp, r obstack_blank (&unit_usages, sizeof (struct unit_usage)); unit_usage_ptr = (struct unit_usage *) obstack_base (&unit_usages); - obstack_finish (&unit_usages); + (void) obstack_finish (&unit_usages); unit_usage_ptr->unit_decl = unit_decl; index = cycle * REGEXP_ONEOF (regexp)->regexps_num + alt_num; unit_usage_ptr->next = VEC_index (unit_usage_t, cycle_alt_unit_usages, index); @@ -8975,7 +8975,7 @@ initiate_automaton_gen (int argc, char * strlen (STANDARD_OUTPUT_DESCRIPTION_FILE_SUFFIX) + 1); obstack_1grow (&irp, '\0'); output_description_file_name = obstack_base (&irp); - obstack_finish (&irp); + (void) obstack_finish (&irp); } /* The following function checks existence at least one arc marked by Modified: projects/largeSMP/contrib/gcc/gengtype-lex.l ============================================================================== --- projects/largeSMP/contrib/gcc/gengtype-lex.l Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gcc/gengtype-lex.l Thu May 19 22:55:37 2011 (r222106) @@ -590,7 +590,7 @@ macro_input (char *buffer, unsigned size void yyerror (const char *s) { - error_at_line (&lexer_line, s); + error_at_line (&lexer_line, "%s", s); } void Modified: projects/largeSMP/contrib/gcc/genmodes.c ============================================================================== --- projects/largeSMP/contrib/gcc/genmodes.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gcc/genmodes.c Thu May 19 22:55:37 2011 (r222106) @@ -787,7 +787,7 @@ calc_wider_mode (void) #define tagged_printf(FMT, ARG, TAG) do { \ int count_; \ - printf (" " FMT ",%n", ARG, &count_); \ + count_ = printf (" " FMT ",", ARG); \ printf ("%*s/* %s */\n", 27 - count_, "", TAG); \ } while (0) @@ -822,7 +822,7 @@ enum machine_mode\n{"); for (m = modes[c]; m; m = m->next) { int count_; - printf (" %smode,%n", m->name, &count_); + count_ = printf (" %smode,", m->name); printf ("%*s/* %s:%d */\n", 27 - count_, "", trim_filename (m->file), m->line); } Modified: projects/largeSMP/contrib/gperf/src/gen-perf.cc ============================================================================== --- projects/largeSMP/contrib/gperf/src/gen-perf.cc Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gperf/src/gen-perf.cc Thu May 19 22:55:37 2011 (r222106) @@ -246,7 +246,7 @@ Gen_Perf::change (List_Node *prior, List { if (option[DEBUG]) { - fprintf (stderr, " by changing asso_value['%c'] (char #%d) to %d\n", + fprintf (stderr, " by changing asso_value['%c'] (char #%zd) to %d\n", *p, p - union_set + 1, asso_values[(unsigned char)(*p)]); fflush (stderr); } Modified: projects/largeSMP/contrib/gperf/src/key-list.cc ============================================================================== --- projects/largeSMP/contrib/gperf/src/key-list.cc Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gperf/src/key-list.cc Thu May 19 22:55:37 2011 (r222106) @@ -497,8 +497,8 @@ Key_List::merge (List_Node *list1, List_ *resultp = list1; break; } - if (occurrence_sort && list1->occurrence < list2->occurrence - || hash_sort && list1->hash_value > list2->hash_value) + if ((occurrence_sort && list1->occurrence < list2->occurrence) + || (hash_sort && list1->hash_value > list2->hash_value)) { *resultp = list2; resultp = &list2->next; list2 = list1; list1 = *resultp; @@ -1035,17 +1035,16 @@ Key_List::output_hash_function (void) if (option[CPLUSPLUS]) printf ("%s::", option.get_class_name ()); printf ("%s ", option.get_hash_name ()); - printf (option[KRC] ? - "(str, len)\n" - " register char *str;\n" - " register unsigned int len;\n" : - option[C] ? - "(str, len)\n" - " register const char *str;\n" - " register unsigned int len;\n" : - option[ANSIC] | option[CPLUSPLUS] ? - "(register const char *str, register unsigned int len)\n" : - ""); + if (option[KRC] || option[C] || option [ANSIC] || option[CPLUSPLUS]) + printf (option[KRC] ? + "(str, len)\n" + " register char *str;\n" + " register unsigned int len;\n" : + option[C] ? + "(str, len)\n" + " register const char *str;\n" + " register unsigned int len;\n" : + "(register const char *str, register unsigned int len)\n"); /* Note that when the hash function is called, it has already been verified that min_key_len <= len <= max_key_len. */ @@ -1442,7 +1441,7 @@ Key_List::output_lookup_array (void) if (option[DEBUG]) fprintf (stderr, - "dup_ptr[%d]: hash_value = %d, index = %d, count = %d\n", + "dup_ptr[%zd]: hash_value = %d, index = %d, count = %d\n", dup_ptr - duplicates, dup_ptr->hash_value, dup_ptr->index, dup_ptr->count); @@ -1986,17 +1985,16 @@ Key_List::output_lookup_function (void) if (option[CPLUSPLUS]) printf ("%s::", option.get_class_name ()); printf ("%s ", option.get_function_name ()); - printf (option[KRC] ? - "(str, len)\n" - " register char *str;\n" - " register unsigned int len;\n" : - option[C] ? - "(str, len)\n" - " register const char *str;\n" - " register unsigned int len;\n" : - option[ANSIC] | option[CPLUSPLUS] ? - "(register const char *str, register unsigned int len)\n" : - ""); + if (option[KRC] || option[C] || option[ANSIC] || option[CPLUSPLUS]) + printf (option[KRC] ? + "(str, len)\n" + " register char *str;\n" + " register unsigned int len;\n" : + option[C] ? + "(str, len)\n" + " register const char *str;\n" + " register unsigned int len;\n" : + "(register const char *str, register unsigned int len)\n"); /* Output the function's body. */ printf ("{\n"); Modified: projects/largeSMP/contrib/gperf/src/options.cc ============================================================================== --- projects/largeSMP/contrib/gperf/src/options.cc Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/gperf/src/options.cc Thu May 19 22:55:37 2011 (r222106) @@ -237,7 +237,7 @@ Options::print_options (void) { putchar (*arg); arg++; - if (*arg >= 'A' && *arg <= 'Z' || *arg >= 'a' && *arg <= 'z') + if ((*arg >= 'A' && *arg <= 'Z') || (*arg >= 'a' && *arg <= 'z')) { putchar (*arg); arg++; Modified: projects/largeSMP/contrib/groff/src/devices/grohtml/post-html.cpp ============================================================================== --- projects/largeSMP/contrib/groff/src/devices/grohtml/post-html.cpp Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/groff/src/devices/grohtml/post-html.cpp Thu May 19 22:55:37 2011 (r222106) @@ -1587,7 +1587,7 @@ void header_desc::write_headings (FILE * buffer += as_string(h); buffer += '\0'; - fprintf(f, buffer.contents()); + fputs(buffer.contents(), f); } else fputs(g->text_string, f); h++; Modified: projects/largeSMP/contrib/groff/src/libs/libdriver/input.cpp ============================================================================== --- projects/largeSMP/contrib/groff/src/libs/libdriver/input.cpp Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/groff/src/libs/libdriver/input.cpp Thu May 19 22:55:37 2011 (r222106) @@ -995,7 +995,7 @@ next_command(void) inline bool odd(const int n) { - return (n & 1 == 1) ? true : false; + return ((n & 1) == 1) ? true : false; } ////////////////////////////////////////////////////////////////////// Modified: projects/largeSMP/contrib/groff/src/roff/troff/mtsm.cpp ============================================================================== --- projects/largeSMP/contrib/groff/src/roff/troff/mtsm.cpp Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/groff/src/roff/troff/mtsm.cpp Thu May 19 22:55:37 2011 (r222106) @@ -611,14 +611,16 @@ int state_set::is_in(int_value_state i) return (intset & (1 << (int)i)) != 0; } +// Note: this used to have a bug s.t. it always tested for bit 0 (benl 18/5/11) int state_set::is_in(units_value_state u) { - return (unitsset & (1 << (int)u) != 0); + return (unitsset & (1 << (int)u)) != 0; } +// Note: this used to have a bug s.t. it always tested for bit 0 (benl 18/5/11) int state_set::is_in(string_value_state s) { - return (stringset & (1 << (int)s) != 0); + return (stringset & (1 << (int)s)) != 0; } void state_set::add(units_value_state, int n) Modified: projects/largeSMP/contrib/groff/src/roff/troff/node.cpp ============================================================================== --- projects/largeSMP/contrib/groff/src/roff/troff/node.cpp Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/groff/src/roff/troff/node.cpp Thu May 19 22:55:37 2011 (r222106) @@ -2157,7 +2157,7 @@ void glyph_node::debug_node() if (c) fprintf(stderr, "%c", c); else - fprintf(stderr, ci->nm.contents()); + fputs(ci->nm.contents(), stderr); if (push_state) fprintf(stderr, " "); if (state) Modified: projects/largeSMP/contrib/groff/src/utils/hpftodit/hpftodit.cpp ============================================================================== --- projects/largeSMP/contrib/groff/src/utils/hpftodit/hpftodit.cpp Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/contrib/groff/src/utils/hpftodit/hpftodit.cpp Thu May 19 22:55:37 2011 (r222106) @@ -870,9 +870,9 @@ output_charset(const int tfm_type) else if (!all_flag) continue; else if (tfm_type == MSL) - printf(hp_msl_to_ucode_name(charcode)); + fputs(hp_msl_to_ucode_name(charcode), stdout); else - printf(unicode_to_ucode_name(charcode)); + fputs(unicode_to_ucode_name(charcode), stdout); printf("\t%d,%d", scale(char_table[i].width), scale(char_table[i].ascent)); Modified: projects/largeSMP/crypto/heimdal/lib/sl/slc-gram.y ============================================================================== --- projects/largeSMP/crypto/heimdal/lib/sl/slc-gram.y Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/crypto/heimdal/lib/sl/slc-gram.y Thu May 19 22:55:37 2011 (r222106) @@ -49,6 +49,7 @@ RCSID("$Id: slc-gram.y 20767 2007-06-01 #include "slc.h" extern FILE *yyin; extern struct assignment *assignment; +extern int yyparse(void); %} %union { Modified: projects/largeSMP/gnu/usr.bin/Makefile ============================================================================== --- projects/largeSMP/gnu/usr.bin/Makefile Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/gnu/usr.bin/Makefile Thu May 19 22:55:37 2011 (r222106) @@ -47,12 +47,14 @@ _texinfo= texinfo _rcs= rcs .endif -.if ${MK_TOOLCHAIN} != "no" +.if ${MK_BINUTILS} != "no" _binutils= binutils +.endif +.if ${MK_GCC} != "no" _cc= cc +.endif .if ${MK_GDB} != "no" _gdb= gdb .endif -.endif .include Modified: projects/largeSMP/release/Makefile ============================================================================== --- projects/largeSMP/release/Makefile Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/release/Makefile Thu May 19 22:55:37 2011 (r222106) @@ -25,11 +25,11 @@ PORTSDIR?= /usr/ports DOCDIR?= /usr/doc RELNOTES_LANG?= en_US.ISO8859-1 -TARGET_ARCH?= ${MACHINE_ARCH} -.if ${TARGET_ARCH} == ${MACHINE_ARCH} TARGET?= ${MACHINE} +.if ${TARGET} == ${MACHINE} +TARGET_ARCH?= ${MACHINE_ARCH} .else -TARGET?= ${TARGET_ARCH} +TARGET_ARCH?= ${TARGET} .endif IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} DISTDIR= ${.OBJDIR}/dist @@ -169,7 +169,9 @@ ftp: packagesystem mkdir ftp cp *.txz MANIFEST ftp -release: obj ${RELEASE_TARGETS} +release: + ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} obj + ${MAKE} -C ${.CURDIR} ${.MAKEFLAGS} ${RELEASE_TARGETS} clean: chflags -R noschg ${.OBJDIR} Modified: projects/largeSMP/release/generate-release.sh ============================================================================== --- projects/largeSMP/release/generate-release.sh Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/release/generate-release.sh Thu May 19 22:55:37 2011 (r222106) @@ -63,7 +63,6 @@ if [ -d $2/usr/doc ]; then fi chroot $2 make -C /usr/src $MAKE_FLAGS buildworld buildkernel -chroot $2 make -C /usr/src/release obj chroot $2 make -C /usr/src/release release chroot $2 make -C /usr/src/release install DESTDIR=/R Modified: projects/largeSMP/sbin/hastd/pjdlog.c ============================================================================== --- projects/largeSMP/sbin/hastd/pjdlog.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sbin/hastd/pjdlog.c Thu May 19 22:55:37 2011 (r222106) @@ -31,8 +31,10 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include +#include #include #include @@ -103,22 +105,39 @@ pjdlog_printf_render_sockaddr(struct __p switch (ss->ss_family) { case AF_INET: { + char addr[INET_ADDRSTRLEN]; const struct sockaddr_in *sin; - in_addr_t ip; unsigned int port; sin = (const struct sockaddr_in *)ss; - ip = ntohl(sin->sin_addr.s_addr); port = ntohs(sin->sin_port); + if (inet_ntop(ss->ss_family, &sin->sin_addr, addr, + sizeof(addr)) == NULL) { + PJDLOG_ABORT("inet_ntop(AF_INET) failed: %s.", + strerror(errno)); + } + snprintf(buf, sizeof(buf), "%s:%u", addr, port); + break; + } + case AF_INET6: + { + char addr[INET6_ADDRSTRLEN]; + const struct sockaddr_in6 *sin; + unsigned int port; - snprintf(buf, sizeof(buf), "%u.%u.%u.%u:%u", - ((ip >> 24) & 0xff), ((ip >> 16) & 0xff), - ((ip >> 8) & 0xff), (ip & 0xff), port); + sin = (const struct sockaddr_in6 *)ss; + port = ntohs(sin->sin6_port); + if (inet_ntop(ss->ss_family, &sin->sin6_addr, addr, + sizeof(addr)) == NULL) { + PJDLOG_ABORT("inet_ntop(AF_INET6) failed: %s.", + strerror(errno)); + } + snprintf(buf, sizeof(buf), "[%s]:%u", addr, port); break; } default: - snprintf(buf, sizeof(buf), "[unsupported family %u]", - (unsigned int)ss->ss_family); + snprintf(buf, sizeof(buf), "[unsupported family %hhu]", + ss->ss_family); break; } ret = __printf_out(io, pi, buf, strlen(buf)); Modified: projects/largeSMP/share/man/man9/sbuf.9 ============================================================================== --- projects/largeSMP/share/man/man9/sbuf.9 Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/share/man/man9/sbuf.9 Thu May 19 22:55:37 2011 (r222106) @@ -492,13 +492,13 @@ will return zero for success and \-1 and struct sbuf *sb; sb = sbuf_new_auto(); -sbuf_cat("Customers found:\en"); +sbuf_cat(sb, "Customers found:\en"); TAILQ_FOREACH(foo, &foolist, list) { - sbuf_printf(" %4d %s\en", foo->index, foo->name); - sbuf_printf(" Address: %s\en", foo->address); - sbuf_printf(" Zip: %s\en", foo->zipcode); + sbuf_printf(sb, " %4d %s\en", foo->index, foo->name); + sbuf_printf(sb, " Address: %s\en", foo->address); + sbuf_printf(sb, " Zip: %s\en", foo->zipcode); } -if (sbuf_finish(sb)) +if (sbuf_finish(sb)) /* Check for any and all errors */ err(1,"Could not generate message"); transmit_msg(sbuf_data(sb), sbuf_len(sb)); sbuf_delete(sb); Modified: projects/largeSMP/share/misc/committers-src.dot ============================================================================== --- projects/largeSMP/share/misc/committers-src.dot Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/share/misc/committers-src.dot Thu May 19 22:55:37 2011 (r222106) @@ -100,6 +100,7 @@ antoine [label="Antoine Brodin\nantoine@ ariff [label="Ariff Abdullah\nariff@FreeBSD.org\n2005/11/14"] art [label="Artem Belevich\nart@FreeBSD.org\n2011/03/29"] avg [label="Andriy Gapon\navg@FreeBSD.org\n2009/02/18"] +benl [label="Ben Laurie\nbenl@FreeBSD.org\n2011/05/18"] benno [label="Benno Rice\nbenno@FreeBSD.org\n2000/11/02"] bms [label="Bruce M Simpson\nbms@FreeBSD.org\n2003/08/06"] brian [label="Brian Somers\nbrian@FreeBSD.org\n1996/12/16"] @@ -486,6 +487,7 @@ peter -> asmodai peter -> jayanth peter -> ps +philip -> benl philip -> ed philip -> jls philip -> matteo @@ -546,6 +548,8 @@ sheldonh -> iedowse shin -> ume +simon -> benl + sos -> marcel thompsa -> weongyo Modified: projects/largeSMP/share/misc/iso3166 ============================================================================== --- projects/largeSMP/share/misc/iso3166 Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/share/misc/iso3166 Thu May 19 22:55:37 2011 (r222106) @@ -176,6 +176,7 @@ NA NAM 516 Namibia NR NRU 520 Nauru NP NPL 524 Nepal NL NLD 528 Netherlands +AN ANT 530 Netherlands Antilles NC NCL 540 New Caledonia NZ NZL 554 New Zealand NI NIC 558 Nicaragua Modified: projects/largeSMP/share/mk/bsd.own.mk ============================================================================== --- projects/largeSMP/share/mk/bsd.own.mk Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/share/mk/bsd.own.mk Thu May 19 22:55:37 2011 (r222106) @@ -297,6 +297,7 @@ __DEFAULT_YES_OPTIONS = \ BIND_MTREE \ BIND_NAMED \ BIND_UTILS \ + BINUTILS \ BLUETOOTH \ BOOT \ BSD_CPIO \ @@ -317,6 +318,7 @@ __DEFAULT_YES_OPTIONS = \ FP_LIBC \ FREEBSD_UPDATE \ GAMES \ + GCC \ GCOV \ GDB \ GNU \ @@ -529,7 +531,9 @@ MK_GROFF:= no .endif .if ${MK_TOOLCHAIN} == "no" +MK_BINUTILS:= no MK_CLANG:= no +MK_GCC:= no MK_GDB:= no .endif Modified: projects/largeSMP/sys/dev/cxgbe/t4_main.c ============================================================================== --- projects/largeSMP/sys/dev/cxgbe/t4_main.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/dev/cxgbe/t4_main.c Thu May 19 22:55:37 2011 (r222106) @@ -366,7 +366,13 @@ t4_attach(device_t dev) sc->mbox = sc->pf; pci_enable_busmaster(dev); - pci_set_max_read_req(dev, 4096); + if (pci_find_cap(dev, PCIY_EXPRESS, &i) == 0) { + pci_set_max_read_req(dev, 4096); + v = pci_read_config(dev, i + PCIR_EXPRESS_DEVICE_CTL, 2); + v |= PCIM_EXP_CTL_RELAXED_ORD_ENABLE; + pci_write_config(dev, i + PCIR_EXPRESS_DEVICE_CTL, v, 2); + } + snprintf(sc->lockname, sizeof(sc->lockname), "%s", device_get_nameunit(dev)); mtx_init(&sc->sc_lock, sc->lockname, 0, MTX_DEF); @@ -3209,41 +3215,9 @@ filter_rpl(struct adapter *sc, const str int t4_os_find_pci_capability(struct adapter *sc, int cap) { - device_t dev; - struct pci_devinfo *dinfo; - pcicfgregs *cfg; - uint32_t status; - uint8_t ptr; - - dev = sc->dev; - dinfo = device_get_ivars(dev); - cfg = &dinfo->cfg; - - status = pci_read_config(dev, PCIR_STATUS, 2); - if (!(status & PCIM_STATUS_CAPPRESENT)) - return (0); - - switch (cfg->hdrtype & PCIM_HDRTYPE) { - case 0: - case 1: - ptr = PCIR_CAP_PTR; - break; - case 2: - ptr = PCIR_CAP_PTR_2; - break; - default: - return (0); - break; - } - ptr = pci_read_config(dev, ptr, 1); - - while (ptr != 0) { - if (pci_read_config(dev, ptr + PCICAP_ID, 1) == cap) - return (ptr); - ptr = pci_read_config(dev, ptr + PCICAP_NEXTPTR, 1); - } + int i; - return (0); + return (pci_find_cap(sc->dev, cap, &i) == 0 ? i : 0); } int Modified: projects/largeSMP/sys/dev/cxgbe/t4_sge.c ============================================================================== --- projects/largeSMP/sys/dev/cxgbe/t4_sge.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/dev/cxgbe/t4_sge.c Thu May 19 22:55:37 2011 (r222106) @@ -100,7 +100,7 @@ static int alloc_ring(struct adapter *, static int free_ring(struct adapter *, bus_dma_tag_t, bus_dmamap_t, bus_addr_t, void *); static int alloc_iq_fl(struct port_info *, struct sge_iq *, struct sge_fl *, - int); + int, int); static int free_iq_fl(struct port_info *, struct sge_iq *, struct sge_fl *); static int alloc_iq(struct sge_iq *, int); static int free_iq(struct sge_iq *); @@ -1104,7 +1104,7 @@ free_ring(struct adapter *sc, bus_dma_ta */ static int alloc_iq_fl(struct port_info *pi, struct sge_iq *iq, struct sge_fl *fl, - int intr_idx) + int intr_idx, int cong) { int rc, i, cntxt_id; size_t len; @@ -1155,6 +1155,8 @@ alloc_iq_fl(struct port_info *pi, struct V_FW_IQ_CMD_IQESIZE(ilog2(iq->esize) - 4)); c.iqsize = htobe16(iq->qsize); c.iqaddr = htobe64(iq->ba); + if (cong >= 0) + c.iqns_to_fl0congen = htobe32(F_FW_IQ_CMD_IQFLINTCONGEN); if (fl) { mtx_init(&fl->fl_lock, fl->lockname, NULL, MTX_DEF); @@ -1198,7 +1200,15 @@ alloc_iq_fl(struct port_info *pi, struct fl->needed = fl->cap; c.iqns_to_fl0congen = - htobe32(V_FW_IQ_CMD_FL0HOSTFCMODE(X_HOSTFCMODE_NONE)); + htobe32(V_FW_IQ_CMD_FL0HOSTFCMODE(X_HOSTFCMODE_NONE) | + F_FW_IQ_CMD_FL0FETCHRO | F_FW_IQ_CMD_FL0DATARO | + F_FW_IQ_CMD_FL0PADEN); + if (cong >= 0) { + c.iqns_to_fl0congen |= + htobe32(V_FW_IQ_CMD_FL0CNGCHMAP(cong) | + F_FW_IQ_CMD_FL0CONGCIF | + F_FW_IQ_CMD_FL0CONGEN); + } c.fl0dcaen_to_fl0cidxfthresh = htobe16(V_FW_IQ_CMD_FL0FBMIN(X_FETCHBURSTMIN_64B) | V_FW_IQ_CMD_FL0FBMAX(X_FETCHBURSTMAX_512B)); @@ -1325,7 +1335,7 @@ free_iq_fl(struct port_info *pi, struct static int alloc_iq(struct sge_iq *iq, int intr_idx) { - return alloc_iq_fl(NULL, iq, NULL, intr_idx); + return alloc_iq_fl(NULL, iq, NULL, intr_idx, -1); } static int @@ -1342,7 +1352,7 @@ alloc_rxq(struct port_info *pi, struct s struct sysctl_oid_list *children; char name[16]; - rc = alloc_iq_fl(pi, &rxq->iq, &rxq->fl, intr_idx); + rc = alloc_iq_fl(pi, &rxq->iq, &rxq->fl, intr_idx, 1 << pi->tx_chan); if (rc != 0) return (rc); @@ -1436,7 +1446,7 @@ alloc_ctrlq(struct adapter *sc, struct s c.physeqid_pkd = htobe32(0); c.fetchszm_to_iqid = htobe32(V_FW_EQ_CTRL_CMD_HOSTFCMODE(X_HOSTFCMODE_STATUS_PAGE) | - V_FW_EQ_CTRL_CMD_PCIECHN(idx) | + V_FW_EQ_CTRL_CMD_PCIECHN(idx) | F_FW_EQ_CTRL_CMD_FETCHRO | V_FW_EQ_CTRL_CMD_IQID(eq->iqid)); c.dcaen_to_eqsize = htobe32(V_FW_EQ_CTRL_CMD_FBMIN(X_FETCHBURSTMIN_64B) | @@ -1561,7 +1571,7 @@ alloc_txq(struct port_info *pi, struct s c.viid_pkd = htobe32(V_FW_EQ_ETH_CMD_VIID(pi->viid)); c.fetchszm_to_iqid = htobe32(V_FW_EQ_ETH_CMD_HOSTFCMODE(X_HOSTFCMODE_STATUS_PAGE) | - V_FW_EQ_ETH_CMD_PCIECHN(pi->tx_chan) | + V_FW_EQ_ETH_CMD_PCIECHN(pi->tx_chan) | F_FW_EQ_ETH_CMD_FETCHRO | V_FW_EQ_ETH_CMD_IQID(eq->iqid)); c.dcaen_to_eqsize = htobe32(V_FW_EQ_ETH_CMD_FBMIN(X_FETCHBURSTMIN_64B) | V_FW_EQ_ETH_CMD_FBMAX(X_FETCHBURSTMAX_512B) | Modified: projects/largeSMP/sys/dev/puc/pucdata.c ============================================================================== --- projects/largeSMP/sys/dev/puc/pucdata.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/dev/puc/pucdata.c Thu May 19 22:55:37 2011 (r222106) @@ -656,6 +656,12 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_4S, 0x10, 0, 8, }, + { 0x1415, 0x950a, 0x131f, 0x2030, + "SIIG Cyber 2S PCIe", + DEFAULT_RCLK * 10, + PUC_PORT_2S, 0x10, 0, 8, + }, + { 0x1415, 0x950a, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c Thu May 19 22:55:37 2011 (r222106) @@ -1079,15 +1079,21 @@ nfs_mount(struct mount *mp) dirpath[0] = '\0'; dirlen = strlen(dirpath); - if (has_nfs_args_opt == 0 && vfs_getopt(mp->mnt_optnew, "addr", - (void **)&args.addr, &args.addrlen) == 0) { - if (args.addrlen > SOCK_MAXADDRLEN) { - error = ENAMETOOLONG; + if (has_nfs_args_opt == 0) { + if (vfs_getopt(mp->mnt_optnew, "addr", + (void **)&args.addr, &args.addrlen) == 0) { + if (args.addrlen > SOCK_MAXADDRLEN) { + error = ENAMETOOLONG; + goto out; + } + nam = malloc(args.addrlen, M_SONAME, M_WAITOK); + bcopy(args.addr, nam, args.addrlen); + nam->sa_len = args.addrlen; + } else { + vfs_mount_error(mp, "No server address"); + error = EINVAL; goto out; } - nam = malloc(args.addrlen, M_SONAME, M_WAITOK); - bcopy(args.addr, nam, args.addrlen); - nam->sa_len = args.addrlen; } args.fh = nfh; Modified: projects/largeSMP/sys/kern/kern_conf.c ============================================================================== --- projects/largeSMP/sys/kern/kern_conf.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/kern/kern_conf.c Thu May 19 22:55:37 2011 (r222106) @@ -981,6 +981,8 @@ destroy_devl(struct cdev *dev) /* Remove name marking */ dev->si_flags &= ~SI_NAMED; + dev->si_refcount++; /* Avoid race with dev_rel() */ + /* If we are a child, remove us from the parents list */ if (dev->si_flags & SI_CHILD) { LIST_REMOVE(dev, si_siblings); @@ -997,7 +999,6 @@ destroy_devl(struct cdev *dev) dev->si_flags &= ~SI_CLONELIST; } - dev->si_refcount++; /* Avoid race with dev_rel() */ csw = dev->si_devsw; dev->si_devsw = NULL; /* already NULL for SI_ALIAS */ while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) { Modified: projects/largeSMP/sys/netinet/sctp_output.c ============================================================================== --- projects/largeSMP/sys/netinet/sctp_output.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/netinet/sctp_output.c Thu May 19 22:55:37 2011 (r222106) @@ -3129,8 +3129,8 @@ plan_d: } #endif out: - if (sifa) { #ifdef INET + if (sifa) { if (retried == 1) { LIST_FOREACH(sctp_ifn, &vrf->ifnlist, next_ifn) { if (dest_is_loop == 0 && SCTP_IFN_IS_IFT_LOOP(sctp_ifn)) { Modified: projects/largeSMP/sys/nfsclient/nfs_vfsops.c ============================================================================== --- projects/largeSMP/sys/nfsclient/nfs_vfsops.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/nfsclient/nfs_vfsops.c Thu May 19 22:55:37 2011 (r222106) @@ -1149,6 +1149,10 @@ nfs_mount(struct mount *mp) goto out; } } + } else if (has_addr_opt == 0) { + vfs_mount_error(mp, "No server address"); + error = EINVAL; + goto out; } error = mountnfs(&args, mp, nam, args.hostname, &vp, curthread->td_ucred, negnametimeo); Modified: projects/largeSMP/sys/sys/proc.h ============================================================================== --- projects/largeSMP/sys/sys/proc.h Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/sys/sys/proc.h Thu May 19 22:55:37 2011 (r222106) @@ -157,21 +157,21 @@ struct pargs { * either lock is sufficient for read access, but both locks must be held * for write access. */ -struct racct; +struct cpuset; +struct kaioinfo; struct kaudit_record; -struct td_sched; +struct kdtrace_proc; +struct kdtrace_thread; +struct mqueue_notifier; struct nlminfo; -struct kaioinfo; struct p_sched; struct proc; +struct racct; struct sleepqueue; +struct td_sched; struct thread; struct trapframe; struct turnstile; -struct mqueue_notifier; -struct kdtrace_proc; -struct kdtrace_thread; -struct cpuset; /* * XXX: Does this belong in resource.h or resourcevar.h instead? @@ -185,13 +185,13 @@ struct cpuset; * Locking for td_rux: (t) for all fields. */ struct rusage_ext { - u_int64_t rux_runtime; /* (cj) Real time. */ - u_int64_t rux_uticks; /* (cj) Statclock hits in user mode. */ - u_int64_t rux_sticks; /* (cj) Statclock hits in sys mode. */ - u_int64_t rux_iticks; /* (cj) Statclock hits in intr mode. */ - u_int64_t rux_uu; /* (c) Previous user time in usec. */ - u_int64_t rux_su; /* (c) Previous sys time in usec. */ - u_int64_t rux_tu; /* (c) Previous total time in usec. */ + uint64_t rux_runtime; /* (cj) Real time. */ + uint64_t rux_uticks; /* (cj) Statclock hits in user mode. */ + uint64_t rux_sticks; /* (cj) Statclock hits in sys mode. */ + uint64_t rux_iticks; /* (cj) Statclock hits in intr mode. */ + uint64_t rux_uu; /* (c) Previous user time in usec. */ + uint64_t rux_su; /* (c) Previous sys time in usec. */ + uint64_t rux_tu; /* (c) Previous total time in usec. */ }; /* Copied: projects/largeSMP/tools/build/options/WITHOUT_BINUTILS (from r222105, head/tools/build/options/WITHOUT_BINUTILS) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/tools/build/options/WITHOUT_BINUTILS Thu May 19 22:55:37 2011 (r222106, copy of r222105, head/tools/build/options/WITHOUT_BINUTILS) @@ -0,0 +1,7 @@ +.\" $FreeBSD$ +Set to not install binutils (as, c++-filt, gconv, gnu-ar, gnu-randlib, +ld, nm, objcopy, objdump, readelf, size and strip) +.Bf -symbolic +The option does not generally work for build targets, unless some alternative +toolchain is enabled. +.Ef Copied: projects/largeSMP/tools/build/options/WITHOUT_GCC (from r222105, head/tools/build/options/WITHOUT_GCC) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/tools/build/options/WITHOUT_GCC Thu May 19 22:55:37 2011 (r222106, copy of r222105, head/tools/build/options/WITHOUT_GCC) @@ -0,0 +1,6 @@ +.\" $FreeBSD$ +Set to not install gcc and g++. +.Bf -symbolic +The option does not generally work for build targets, unless some alternative +toolchain is enabled. +.Ef Modified: projects/largeSMP/usr.bin/rpcgen/rpc_hout.c ============================================================================== --- projects/largeSMP/usr.bin/rpcgen/rpc_hout.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/rpcgen/rpc_hout.c Thu May 19 22:55:37 2011 (r222106) @@ -500,7 +500,7 @@ pdeclaration(const char *name, declarati break; } } - f_print(fout, separator); + fputs(separator, fout); } static int Modified: projects/largeSMP/usr.bin/rpcgen/rpc_svcout.c ============================================================================== --- projects/largeSMP/usr.bin/rpcgen/rpc_svcout.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/rpcgen/rpc_svcout.c Thu May 19 22:55:37 2011 (r222106) @@ -349,7 +349,7 @@ write_real_program(definition *def) f_print(fout, "("); /* arg name */ if (proc->arg_num > 1) - f_print(fout, proc->args.argname); + fputs(proc->args.argname, fout); else ptype(proc->args.decls->decl.prefix, proc->args.decls->decl.type, 0); Modified: projects/largeSMP/usr.bin/rpcgen/rpc_tblout.c ============================================================================== --- projects/largeSMP/usr.bin/rpcgen/rpc_tblout.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/rpcgen/rpc_tblout.c Thu May 19 22:55:37 2011 (r222106) @@ -103,7 +103,7 @@ write_table(definition *def) expected = 0; } else { expected = 1; - f_print(fout, null_entry); + fputs(null_entry, fout); } for (proc = vp->procs; proc != NULL; proc = proc->next) { current = atoi(proc->proc_num); @@ -141,7 +141,7 @@ write_table(definition *def) } /* print the table trailer */ - f_print(fout, tbl_end); + fputs(tbl_end, fout); f_print(fout, tbl_nproc, progvers, progvers, progvers); } } Modified: projects/largeSMP/usr.bin/truss/amd64-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/amd64-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/amd64-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -128,7 +128,7 @@ amd64_syscall_entry(struct trussinfo *tr /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ reg = 0; syscall_num = regs.r_rax; Modified: projects/largeSMP/usr.bin/truss/amd64-fbsd32.c ============================================================================== --- projects/largeSMP/usr.bin/truss/amd64-fbsd32.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/amd64-fbsd32.c Thu May 19 22:55:37 2011 (r222106) @@ -136,7 +136,7 @@ amd64_fbsd32_syscall_entry(struct trussi /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ syscall_num = regs.r_rax; switch (syscall_num) { Modified: projects/largeSMP/usr.bin/truss/i386-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/i386-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/i386-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -131,7 +131,7 @@ i386_syscall_entry(struct trussinfo *tru /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ syscall_num = regs.r_eax; switch (syscall_num) { Modified: projects/largeSMP/usr.bin/truss/ia64-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/ia64-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/ia64-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -128,7 +128,7 @@ ia64_syscall_entry(struct trussinfo *tru /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ syscall_num = regs.r_scratch.gr15; /* XXX double-check. */ if (syscall_num == SYS_syscall || syscall_num == SYS___syscall) Modified: projects/largeSMP/usr.bin/truss/main.c ============================================================================== --- projects/largeSMP/usr.bin/truss/main.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/main.c Thu May 19 22:55:37 2011 (r222106) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); /* - * The main module for truss. Suprisingly simple, but, then, the other + * The main module for truss. Surprisingly simple, but, then, the other * files handle the bulk of the work. And, of course, the kernel has to * do a lot of the work :). */ Modified: projects/largeSMP/usr.bin/truss/powerpc-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/powerpc-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/powerpc-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -137,7 +137,7 @@ powerpc_syscall_entry(struct trussinfo * /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ regargs = NARGREG; syscall_num = regs.fixreg[0]; Modified: projects/largeSMP/usr.bin/truss/powerpc64-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/powerpc64-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/powerpc64-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -129,7 +129,7 @@ powerpc64_syscall_entry(struct trussinfo /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ regargs = NARGREG; syscall_num = regs.fixreg[0]; Modified: projects/largeSMP/usr.bin/truss/sparc64-fbsd.c ============================================================================== --- projects/largeSMP/usr.bin/truss/sparc64-fbsd.c Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.bin/truss/sparc64-fbsd.c Thu May 19 22:55:37 2011 (r222106) @@ -135,7 +135,7 @@ sparc64_syscall_entry(struct trussinfo * /* * FreeBSD has two special kinds of system call redirctions -- * SYS_syscall, and SYS___syscall. The former is the old syscall() - * routine, basicly; the latter is for quad-aligned arguments. + * routine, basically; the latter is for quad-aligned arguments. */ syscall_num = regs.r_global[1]; if (syscall_num == SYS_syscall || syscall_num == SYS___syscall) { Modified: projects/largeSMP/usr.sbin/pc-sysinstall/backend/functions-disk.sh ============================================================================== --- projects/largeSMP/usr.sbin/pc-sysinstall/backend/functions-disk.sh Thu May 19 21:53:25 2011 (r222105) +++ projects/largeSMP/usr.sbin/pc-sysinstall/backend/functions-disk.sh Thu May 19 22:55:37 2011 (r222106) @@ -582,17 +582,9 @@ stop_gjournal() # Function to wipe the potential backup gpt table from a disk clear_backup_gpt_table() { - # Get the disk block size - local dSize="`gpart show $1 | grep $1 | tr -s ' ' | cut -d ' ' -f 3`" - - # Make sure this is a valid number - is_num "${dSize}" >/dev/null 2>/dev/null - [ $? -ne 0 ] && return *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri May 20 02:08:05 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5A8B1065670; Fri, 20 May 2011 02:08:05 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A572D8FC18; Fri, 20 May 2011 02:08:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4K285ni062378; Fri, 20 May 2011 02:08:05 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4K2852N062376; Fri, 20 May 2011 02:08:05 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201105200208.p4K2852N062376@svn.freebsd.org> From: Neel Natu Date: Fri, 20 May 2011 02:08:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222111 - projects/bhyve/sys/amd64/vmm/intel X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 02:08:05 -0000 Author: neel Date: Fri May 20 02:08:05 2011 New Revision: 222111 URL: http://svn.freebsd.org/changeset/base/222111 Log: Avoid unnecessary sign extension when promoted to a 64-bit integer. This was benign because the interruption info field is a 32-bit quantity and the hardware guarantees that the upper 32-bits are all zeros. But it did make reading the objdump output very confusing. Modified: projects/bhyve/sys/amd64/vmm/intel/vmcs.h Modified: projects/bhyve/sys/amd64/vmm/intel/vmcs.h ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmcs.h Fri May 20 01:04:33 2011 (r222110) +++ projects/bhyve/sys/amd64/vmm/intel/vmcs.h Fri May 20 02:08:05 2011 (r222111) @@ -304,7 +304,7 @@ uint64_t vmcs_read(uint32_t encoding); /* * VMCS interrupt information fields */ -#define VMCS_INTERRUPTION_INFO_VALID (1 << 31) +#define VMCS_INTERRUPTION_INFO_VALID (1U << 31) #define VMCS_INTERRUPTION_INFO_HW_INTR (0 << 8) #define VMCS_INTERRUPTION_INFO_NMI (2 << 8) From owner-svn-src-projects@FreeBSD.ORG Fri May 20 03:23:09 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EC0D106566C; Fri, 20 May 2011 03:23:09 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6DEBB8FC15; Fri, 20 May 2011 03:23:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4K3N9At064793; Fri, 20 May 2011 03:23:09 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4K3N9AS064788; Fri, 20 May 2011 03:23:09 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201105200323.p4K3N9AS064788@svn.freebsd.org> From: Neel Natu Date: Fri, 20 May 2011 03:23:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222112 - projects/bhyve/sys/amd64/vmm/intel X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 03:23:09 -0000 Author: neel Date: Fri May 20 03:23:09 2011 New Revision: 222112 URL: http://svn.freebsd.org/changeset/base/222112 Log: Fix a long standing bug in VMXCTX_GUEST_RESTORE(). There was an assumption by the "callers" of this macro that on "return" the %rsp will be pointing to the 'vmxctx'. The macro was not doing this and thus when trying to restore host state on an error from "vmlaunch" or "vmresume" we were treating the memory locations on the host stack as 'struct vmxctx'. This led to all sorts of weird bugs like double faults or invalid instruction faults. This bug is exposed by the -O2 option used to compile the kernel module. With the -O2 flag the compiler will optimize the following piece of code: int loopstart = 1; ... if (loopstart) { loopstart = 0; vmx_launch(); } else vmx_resume(); into this: vmx_launch(); Since vmx_launch() and vmx_resume() are declared to be __dead2 functions the compiler is free to do this. The compiler has no way to know that the functions return indirectly through vmx_setjmp(). This optimization in turn leads us to trigger the bug in VMXCTX_GUEST_RESTORE(). With this change we can boot a 8.1 guest on a 9.0 host. Reported by: jhb@ Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c projects/bhyve/sys/amd64/vmm/intel/vmx.h projects/bhyve/sys/amd64/vmm/intel/vmx_genassym.c projects/bhyve/sys/amd64/vmm/intel/vmx_support.S Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx.c Fri May 20 02:08:05 2011 (r222111) +++ projects/bhyve/sys/amd64/vmm/intel/vmx.c Fri May 20 03:23:09 2011 (r222112) @@ -1189,7 +1189,7 @@ vmx_exit_process(struct vmx *vmx, int vc static int vmx_run(void *arg, int vcpu, register_t rip, struct vm_exit *vmexit) { - int error, vie, rc, handled, astpending, loopstart; + int error, vie, rc, handled, astpending; uint32_t exit_reason; struct vmx *vmx; struct vmxctx *vmxctx; @@ -1198,7 +1198,7 @@ vmx_run(void *arg, int vcpu, register_t vmx = arg; vmcs = &vmx->vmcs[vcpu]; vmxctx = &vmx->ctx[vcpu]; - loopstart = 1; + vmxctx->launched = 0; /* * XXX Can we avoid doing this every time we do a vm run? @@ -1232,8 +1232,8 @@ vmx_run(void *arg, int vcpu, register_t #endif switch (rc) { case VMX_RETURN_DIRECT: - if (loopstart) { - loopstart = 0; + if (vmxctx->launched == 0) { + vmxctx->launched = 1; vmx_launch(vmxctx); } else vmx_resume(vmxctx); Modified: projects/bhyve/sys/amd64/vmm/intel/vmx.h ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx.h Fri May 20 02:08:05 2011 (r222111) +++ projects/bhyve/sys/amd64/vmm/intel/vmx.h Fri May 20 03:23:09 2011 (r222112) @@ -34,6 +34,9 @@ #define GUEST_MSR_MAX_ENTRIES 64 /* arbitrary */ struct vmxctx { + register_t tmpstk[32]; /* vmx_return() stack */ + register_t tmpstktop; + register_t guest_rdi; /* Guest state */ register_t guest_rsi; register_t guest_rdx; @@ -63,6 +66,7 @@ struct vmxctx { * XXX todo debug registers and fpu state */ + int launched; /* vmcs launch state */ int launch_error; }; Modified: projects/bhyve/sys/amd64/vmm/intel/vmx_genassym.c ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx_genassym.c Fri May 20 02:08:05 2011 (r222111) +++ projects/bhyve/sys/amd64/vmm/intel/vmx_genassym.c Fri May 20 03:23:09 2011 (r222112) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include "vmx.h" #include "vmx_cpufunc.h" +ASSYM(VMXCTX_TMPSTKTOP, offsetof(struct vmxctx, tmpstktop)); ASSYM(VMXCTX_GUEST_RDI, offsetof(struct vmxctx, guest_rdi)); ASSYM(VMXCTX_GUEST_RSI, offsetof(struct vmxctx, guest_rsi)); ASSYM(VMXCTX_GUEST_RDX, offsetof(struct vmxctx, guest_rdx)); Modified: projects/bhyve/sys/amd64/vmm/intel/vmx_support.S ============================================================================== --- projects/bhyve/sys/amd64/vmm/intel/vmx_support.S Fri May 20 02:08:05 2011 (r222111) +++ projects/bhyve/sys/amd64/vmm/intel/vmx_support.S Fri May 20 03:23:09 2011 (r222112) @@ -31,15 +31,23 @@ #include "vmx_assym.s" /* - * Assumes that %rdi holds a pointer to the 'vmxctx' + * Assumes that %rdi holds a pointer to the 'vmxctx'. + * + * On "return" all registers are updated to reflect guest state. The two + * exceptions are %rip and %rsp. These registers are atomically switched + * by hardware from the guest area of the vmcs. + * + * We modify %rsp to point to the 'vmxctx' so we can use it to restore + * host context in case of an error with 'vmlaunch' or 'vmresume'. */ #define VMX_GUEST_RESTORE \ /* \ - * Make sure that interrupts are disabled before restoring CR2. \ - * Otherwise there could be a page fault during the interrupt \ - * handler execution that would end up trashing CR2. \ + * Disable interrupts before updating %rsp. The location that \ + * %rsp points to is a 'vmxctx' and not a real stack so we \ + * don't want an interrupt handler to trash it. \ */ \ cli; \ + movq %rdi,%rsp; \ movq VMXCTX_GUEST_CR2(%rdi),%rsi; \ movq %rsi,%cr2; \ movq VMXCTX_GUEST_RSI(%rdi),%rsi; \ @@ -148,6 +156,8 @@ ENTRY(vmx_longjmp) movq %rsp,%rdi movq $VMX_RETURN_LONGJMP,%rsi + + addq $VMXCTX_TMPSTKTOP,%rsp callq vmx_return END(vmx_longjmp) @@ -174,6 +184,8 @@ ENTRY(vmx_resume) /* Return via vmx_setjmp with return value of VMX_RETURN_VMRESUME */ movq %rsp,%rdi movq $VMX_RETURN_VMRESUME,%rsi + + addq $VMXCTX_TMPSTKTOP,%rsp callq vmx_return END(vmx_resume) @@ -200,5 +212,7 @@ ENTRY(vmx_launch) /* Return via vmx_setjmp with return value of VMX_RETURN_VMLAUNCH */ movq %rsp,%rdi movq $VMX_RETURN_VMLAUNCH,%rsi + + addq $VMXCTX_TMPSTKTOP,%rsp callq vmx_return END(vmx_launch) From owner-svn-src-projects@FreeBSD.ORG Fri May 20 14:22:10 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2851106566B; Fri, 20 May 2011 14:22:10 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFD228FC14; Fri, 20 May 2011 14:22:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4KEMAR1087889; Fri, 20 May 2011 14:22:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4KEMAAO087880; Fri, 20 May 2011 14:22:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105201422.p4KEMAAO087880@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 20 May 2011 14:22:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222128 - in projects/pseries: conf powerpc/conf powerpc/include powerpc/ofw powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 14:22:11 -0000 Author: nwhitehorn Date: Fri May 20 14:22:10 2011 New Revision: 222128 URL: http://svn.freebsd.org/changeset/base/222128 Log: Add an RTAS (Runtime Abstraction Services) interface layer and an RTAS-based PCI bus driver. RTAS is tested and working on both 32 and 64-bit systems, but the RTAS PCI driver has been tested only on a 32-bit system (Powermac G3) due to lack of RTAS-enabled 64-bit hardware on my end. Added: projects/pseries/powerpc/include/rtas.h projects/pseries/powerpc/ofw/rtas.c projects/pseries/powerpc/pseries/rtas_pci.c Modified: projects/pseries/conf/files.powerpc projects/pseries/powerpc/conf/GENERIC projects/pseries/powerpc/ofw/ofw_machdep.c projects/pseries/powerpc/ofw/ofwcall32.S projects/pseries/powerpc/ofw/ofwcall64.S Modified: projects/pseries/conf/files.powerpc ============================================================================== --- projects/pseries/conf/files.powerpc Fri May 20 14:07:08 2011 (r222127) +++ projects/pseries/conf/files.powerpc Fri May 20 14:22:10 2011 (r222128) @@ -138,6 +138,7 @@ powerpc/ofw/ofw_syscons.c optional sc ai powerpc/ofw/ofwcall32.S optional aim powerpc powerpc/ofw/ofwcall64.S optional aim powerpc64 powerpc/ofw/ofwmagic.S optional aim +powerpc/ofw/rtas.c optional aim powerpc/powermac/ata_kauai.c optional powermac ata | powermac atamacio powerpc/powermac/ata_macio.c optional powermac ata | powermac atamacio powerpc/powermac/ata_dbdma.c optional powermac ata | powermac atamacio @@ -210,6 +211,7 @@ powerpc/ps3/ps3-hvcall.S optional ps3 sc powerpc/pseries/phyp-hvcall.S optional pseries powerpc64 powerpc/pseries/mmu_phyp.c optional pseries powerpc64 powerpc/pseries/platform_chrp.c optional pseries +powerpc/pseries/rtas_pci.c optional pseries powerpc/psim/iobus.c optional psim powerpc/psim/ata_iobus.c optional ata psim powerpc/psim/openpic_iobus.c optional psim Modified: projects/pseries/powerpc/conf/GENERIC ============================================================================== --- projects/pseries/powerpc/conf/GENERIC Fri May 20 14:07:08 2011 (r222127) +++ projects/pseries/powerpc/conf/GENERIC Fri May 20 14:22:10 2011 (r222128) @@ -29,6 +29,7 @@ makeoptions DEBUG=-g #Build kernel with options POWERMAC #NewWorld Apple PowerMacs options PSIM #GDB PSIM ppc simulator options MAMBO #IBM Mambo Full System Simulator +options PSERIES #PAPR-compliant systems options SCHED_ULE #ULE scheduler options INET #InterNETworking Added: projects/pseries/powerpc/include/rtas.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/include/rtas.h Fri May 20 14:22:10 2011 (r222128) @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2011 Nathan Whitehorn + * 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. + */ + +#ifndef _MACHINE_RTAS_H_ +#define _MACHINE_RTAS_H_ + +#include +#include +#include + +/* + * RTAS functions are defined by 32-bit integer tokens. These vary from + * system to system, and can be looked up from their standardized names + * using rtas_token_lookup(). If RTAS is not available, rtas_token_lookup() + * and rtas_call_method() return -1; this can be checked in advance using + * rtas_exists(). Otherwise, rtas_call_method() returns one of the RTAS + * status codes from the bottom of this file. + */ + +int rtas_exists(void); +int rtas_call_method(cell_t token, int nargs, int nreturns, ...); +cell_t rtas_token_lookup(const char *method); + +/* RTAS Status Codes: see CHRP or PAPR specification */ +#define RTAS_OK 0 +#define RTAS_HW_ERROR -1 +#define RTAS_BUSY -2 +#define RTAS_PARAM_ERROR -3 +#define RTAS_STATE_CHANGE -7 +#define RTAS_VENDOR_BEGIN 9000 +#define RTAS_EXTENDED_DELAY 9900 +#define RTAS_ISOLATION_ERROR -9000 +#define RTAS_VENDOR_ERROR_BEGIN -9004 + +#endif /* _MACHINE_RTAS_H_ */ + Modified: projects/pseries/powerpc/ofw/ofw_machdep.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_machdep.c Fri May 20 14:07:08 2011 (r222127) +++ projects/pseries/powerpc/ofw/ofw_machdep.c Fri May 20 14:22:10 2011 (r222128) @@ -70,7 +70,6 @@ static void *fdt; int ofw_real_mode; int ofwcall(void *); -int rtascall(void *); static void ofw_quiesce(void); static int openfirmware(void *args); Modified: projects/pseries/powerpc/ofw/ofwcall32.S ============================================================================== --- projects/pseries/powerpc/ofw/ofwcall32.S Fri May 20 14:07:08 2011 (r222127) +++ projects/pseries/powerpc/ofw/ofwcall32.S Fri May 20 14:22:10 2011 (r222128) @@ -46,8 +46,10 @@ GLOBAL(rtas_entry) .long 0 /* RTAS entry point */ .align 4 -GLOBAL(ofwstk) - .space OFWSTKSZ +ofwstk: + .space OFWSTKSZ +rtas_regsave: + .space 4 /* * Open Firmware Entry Point. May need to enter real mode. @@ -118,9 +120,10 @@ ASENTRY(rtascall) mflr %r0 stw %r0,4(%r1) - /* Record the old MSR just below the bottom of the stack */ + /* Record the old MSR to real-mode-accessible area */ mfmsr %r0 - stw %r0,-4(%r1) + lis %r5,rtas_regsave@ha + stw %r0,rtas_regsave@l(%r5) /* read client interface handler */ lis %r5,rtas_entry@ha @@ -137,7 +140,8 @@ ASENTRY(rtascall) bctrl /* Now set the MSR back */ - lwz %r6,-4(%r1) + lis %r6,rtas_regsave@ha + lwz %r6,rtas_regsave@l(%r6) mtmsr %r6 isync Modified: projects/pseries/powerpc/ofw/ofwcall64.S ============================================================================== --- projects/pseries/powerpc/ofw/ofwcall64.S Fri May 20 14:07:08 2011 (r222127) +++ projects/pseries/powerpc/ofw/ofwcall64.S Fri May 20 14:22:10 2011 (r222128) @@ -37,9 +37,9 @@ */ .data .align 4 -GLOBAL(ofwstk) +ofwstk: .space OFWSTKSZ -GLOBAL(rtas_regsave) +rtas_regsave: .space 24 /* 3 * sizeof(register_t) */ GLOBAL(ofmsr) .llong 0, 0, 0, 0, 0 /* msr/sprg0-3 used in Open Firmware */ @@ -170,7 +170,7 @@ ASENTRY(ofwcall) * RTAS 32-bit Entry Point. Similar to the OF one, but simpler (no separate * stack) * - * C prototype: int rtas_32bit_entry(void *callbuffer, void *rtas_privdat); + * C prototype: int rtascall(void *callbuffer, void *rtas_privdat); */ ASENTRY(rtascall) Added: projects/pseries/powerpc/ofw/rtas.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/ofw/rtas.c Fri May 20 14:22:10 2011 (r222128) @@ -0,0 +1,234 @@ +/*- + * Copyright (c) 2011 Nathan Whitehorn + * 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 +__FBSDID("$FreeBSD: projects/pseries/powerpc/ofw/ofw_real.c 222059 2011-05-18 15:07:36Z nwhitehorn $"); + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +MALLOC_DEFINE(M_RTAS, "rtas", "Run Time Abstraction Service"); + +static vm_offset_t rtas_bounce_phys; +static caddr_t rtas_bounce_virt; +static off_t rtas_bounce_offset; +static size_t rtas_bounce_size; +static uintptr_t rtas_private_data; +static struct mtx rtas_mtx; +static phandle_t rtas; + +/* From ofwcall.S */ +int rtascall(vm_offset_t callbuffer, uintptr_t rtas_privdat); +extern uintptr_t rtas_entry; +extern register_t rtasmsr; + +/* + * After the VM is up, allocate RTAS memory and instantiate it + */ + +static void rtas_setup(void *); + +SYSINIT(rtas_setup, SI_SUB_KMEM, SI_ORDER_ANY, rtas_setup, NULL); + +static void +rtas_setup(void *junk) +{ + ihandle_t rtasi; + cell_t rtas_size = 0, rtas_ptr; + int result; + + rtasi = OF_open("/rtas"); + rtas = OF_finddevice("/rtas"); + if (rtasi == 0 || rtas == -1) + return; + + mtx_init(&rtas_mtx, "RTAS", MTX_DEF, 0); + + /* RTAS must be called with everything turned off in MSR */ + rtasmsr = mfmsr(); + rtasmsr &= ~(PSL_IR | PSL_DR | PSL_EE | PSL_SE); + #ifdef __powerpc64__ + rtasmsr &= ~PSL_SF; + #endif + + /* + * Allocate rtas_size + one page of contiguous, wired physical memory + * that can fit into a 32-bit address space and accessed from real mode. + * This is used both to bounce arguments and for RTAS private data. + * + * It must be 4KB-aligned and not cross a 256 MB boundary. + */ + + OF_getprop(rtas, "rtas-size", &rtas_size, sizeof(rtas_size)); + rtas_size = round_page(rtas_size); + rtas_bounce_virt = contigmalloc(rtas_size + PAGE_SIZE, M_RTAS, 0, 0, + ulmin(platform_real_maxaddr(), BUS_SPACE_MAXADDR_32BIT), + 4096, 256*1024*1024); + + rtas_private_data = vtophys(rtas_bounce_virt); + rtas_bounce_virt += rtas_size; /* Actual bounce area */ + rtas_bounce_phys = vtophys(rtas_bounce_virt); + rtas_bounce_size = PAGE_SIZE; + + /* + * Instantiate RTAS. We always use the 32-bit version. + */ + + result = OF_call_method("instantiate-rtas", rtasi, 1, 1, + (cell_t)rtas_private_data, &rtas_ptr); + OF_close(rtasi); + + if (result == -1) { + rtas = 0; + rtas_ptr = 0; + printf("Error initializing RTAS\n"); + return; + } + + rtas_entry = (uintptr_t)(rtas_ptr); +} + +static cell_t +rtas_real_map(const void *buf, size_t len) +{ + cell_t phys; + + mtx_assert(&rtas_mtx, MA_OWNED); + + /* + * Make sure the bounce page offset satisfies any reasonable + * alignment constraint. + */ + rtas_bounce_offset += sizeof(register_t) - + (rtas_bounce_offset % sizeof(register_t)); + + if (rtas_bounce_offset + len > rtas_bounce_size) { + panic("Oversize RTAS call!"); + return 0; + } + + if (buf != NULL) + memcpy(rtas_bounce_virt + rtas_bounce_offset, buf, len); + else + return (0); + + phys = rtas_bounce_phys + rtas_bounce_offset; + rtas_bounce_offset += len; + + return (phys); +} + +static void +rtas_real_unmap(cell_t physaddr, void *buf, size_t len) +{ + mtx_assert(&rtas_mtx, MA_OWNED); + + if (physaddr == 0) + return; + + memcpy(buf, rtas_bounce_virt + (physaddr - rtas_bounce_phys), len); +} + +/* Check if we have RTAS */ +int +rtas_exists(void) +{ + return (rtas != 0); +} + +/* Call an RTAS method by token */ +int +rtas_call_method(cell_t token, int nargs, int nreturns, ...) +{ + vm_offset_t argsptr; + va_list ap; + struct { + cell_t token; + cell_t nargs; + cell_t nreturns; + cell_t args_n_results[12]; + } args; + int n, result; + + if (!rtas_exists() || nargs > 6) + return (-1); + + args.token = token; + va_start(ap, nreturns); + + mtx_lock(&rtas_mtx); + rtas_bounce_offset = 0; + + args.nargs = nargs; + args.nreturns = nreturns; + + for (n = 0; n < nargs; n++) + args.args_n_results[n] = va_arg(ap, cell_t); + + argsptr = rtas_real_map(&args, sizeof(args)); + result = rtascall(argsptr, rtas_private_data); + rtas_real_unmap(argsptr, &args, sizeof(args)); + mtx_unlock(&rtas_mtx); + + if (result < 0) + return (result); + + for (n = nargs; n < nargs + nreturns; n++) + *va_arg(ap, cell_t *) = args.args_n_results[n]; + return (result); +} + +/* Look up an RTAS token */ +cell_t +rtas_token_lookup(const char *method) +{ + cell_t token; + + if (!rtas_exists()) + return (-1); + + if (OF_getprop(rtas, method, &token, sizeof(token)) == -1) + return (-1); + + return (token); +} + + Added: projects/pseries/powerpc/pseries/rtas_pci.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pseries/powerpc/pseries/rtas_pci.c Fri May 20 14:22:10 2011 (r222128) @@ -0,0 +1,579 @@ +/*- + * Copyright (c) 2011 Nathan Whitehorn + * 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 +__FBSDID("$FreeBSD: projects/pseries/powerpc/ofw/ofw_real.c 222059 2011-05-18 15:07:36Z nwhitehorn $"); +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include "pcib_if.h" + +/* + * Device interface. + */ +static int rtaspci_probe(device_t); +static int rtaspci_attach(device_t); + +/* + * Bus interface. + */ +static int rtaspci_read_ivar(device_t, device_t, int, + uintptr_t *); +static struct resource * rtaspci_alloc_resource(device_t bus, + device_t child, int type, int *rid, u_long start, + u_long end, u_long count, u_int flags); +static int rtaspci_release_resource(device_t bus, device_t child, + int type, int rid, struct resource *res); +static int rtaspci_activate_resource(device_t bus, device_t child, + int type, int rid, struct resource *res); +static int rtaspci_deactivate_resource(device_t bus, + device_t child, int type, int rid, + struct resource *res); + + +/* + * pcib interface. + */ +static int rtaspci_maxslots(device_t); +static u_int32_t rtaspci_read_config(device_t, u_int, u_int, u_int, + u_int, int); +static void rtaspci_write_config(device_t, u_int, u_int, u_int, + u_int, u_int32_t, int); +static int rtaspci_route_interrupt(device_t, device_t, int); + +/* + * ofw_bus interface + */ +static phandle_t rtaspci_get_node(device_t bus, device_t dev); + +/* + * local methods + */ + +struct ofw_pci_range { + uint32_t pci_hi; + uint32_t pci_mid; + uint32_t pci_lo; + uint64_t host; + uint32_t size_hi; + uint32_t size_lo; +}; + +static int rtaspci_fill_ranges(phandle_t node, struct ofw_pci_range **ranges, + int *nranges); + +/* + * Driver methods. + */ +static device_method_t rtaspci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, rtaspci_probe), + DEVMETHOD(device_attach, rtaspci_attach), + + /* Bus interface */ + DEVMETHOD(bus_print_child, bus_generic_print_child), + DEVMETHOD(bus_read_ivar, rtaspci_read_ivar), + DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), + DEVMETHOD(bus_alloc_resource, rtaspci_alloc_resource), + DEVMETHOD(bus_release_resource, rtaspci_release_resource), + DEVMETHOD(bus_activate_resource, rtaspci_activate_resource), + DEVMETHOD(bus_deactivate_resource, rtaspci_deactivate_resource), + + /* pcib interface */ + DEVMETHOD(pcib_maxslots, rtaspci_maxslots), + DEVMETHOD(pcib_read_config, rtaspci_read_config), + DEVMETHOD(pcib_write_config, rtaspci_write_config), + DEVMETHOD(pcib_route_interrupt, rtaspci_route_interrupt), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_node, rtaspci_get_node), + + { 0, 0 } +}; + +struct rtaspci_softc { + device_t sc_dev; + phandle_t sc_node; + int sc_bus; + + cell_t read_pci_config, write_pci_config; + cell_t ex_read_pci_config, ex_write_pci_config; + int sc_extended_config; + struct ofw_pci_register pcir; + + struct ofw_pci_range *sc_range; + int sc_nrange; + + struct rman sc_io_rman; + struct rman sc_mem_rman; + bus_space_tag_t sc_memt; + bus_dma_tag_t sc_dmat; + vm_offset_t sc_iostart; + + struct ofw_bus_iinfo sc_pci_iinfo; +}; + +static driver_t rtaspci_driver = { + "pcib", + rtaspci_methods, + sizeof(struct rtaspci_softc) +}; + +static devclass_t rtaspci_devclass; + +DRIVER_MODULE(rtaspci, nexus, rtaspci_driver, rtaspci_devclass, 0, 0); + +static int +rtaspci_probe(device_t dev) +{ + const char *type; + + if (!rtas_exists()) + return (ENXIO); + + type = ofw_bus_get_type(dev); + + if (OF_getproplen(ofw_bus_get_node(dev), "used-by-rtas") < 0) + return (ENXIO); + if (type == NULL || strcmp(type, "pci") != 0) + return (ENXIO); + + device_set_desc(dev, "RTAS Host-PCI bridge"); + return (BUS_PROBE_GENERIC); +} + +static int +rtaspci_attach(device_t dev) +{ + struct rtaspci_softc *sc; + phandle_t node; + u_int32_t busrange[2]; + struct ofw_pci_range *rp, *io, *mem[5]; + int nmem, i, error; + + node = ofw_bus_get_node(dev); + sc = device_get_softc(dev); + + sc->read_pci_config = rtas_token_lookup("read-pci-config"); + sc->write_pci_config = rtas_token_lookup("write-pci-config"); + sc->ex_read_pci_config = rtas_token_lookup("ibm,read-pci-config"); + sc->ex_write_pci_config = rtas_token_lookup("ibm,write-pci-config"); + if (OF_getprop(node, "reg", &sc->pcir, sizeof(sc->pcir)) == -1) + return (ENXIO); + + sc->sc_extended_config = 0; + OF_getprop(node, "ibm,pci-config-space-type", &sc->sc_extended_config, + sizeof(sc->sc_extended_config)); + + if (OF_getprop(node, "bus-range", busrange, sizeof(busrange)) != 8) + return (ENXIO); + + sc->sc_dev = dev; + sc->sc_node = node; + sc->sc_bus = busrange[0]; + + if (rtaspci_fill_ranges(node, &sc->sc_range, &sc->sc_nrange) < 0) { + device_printf(dev, "could not get ranges\n"); + return (ENXIO); + } + + io = NULL; + nmem = 0; + + for (rp = sc->sc_range; rp < sc->sc_range + sc->sc_nrange && + rp->pci_hi != 0; rp++) { + switch (rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) { + case OFW_PCI_PHYS_HI_SPACE_CONFIG: + break; + case OFW_PCI_PHYS_HI_SPACE_IO: + io = rp; + break; + case OFW_PCI_PHYS_HI_SPACE_MEM32: + mem[nmem] = rp; + nmem++; + break; + case OFW_PCI_PHYS_HI_SPACE_MEM64: + break; + } + } + + if (io == NULL) { + device_printf(dev, "can't find io range\n"); + return (ENXIO); + } + sc->sc_io_rman.rm_type = RMAN_ARRAY; + sc->sc_io_rman.rm_descr = "PCI I/O Ports"; + sc->sc_iostart = io->host; + if (rman_init(&sc->sc_io_rman) != 0 || + rman_manage_region(&sc->sc_io_rman, io->pci_lo, + io->pci_lo + io->size_lo) != 0) { + panic("rtaspci_attach: failed to set up I/O rman"); + } + + if (nmem == 0) { + device_printf(dev, "can't find mem ranges\n"); + return (ENXIO); + } + sc->sc_mem_rman.rm_type = RMAN_ARRAY; + sc->sc_mem_rman.rm_descr = "PCI Memory"; + error = rman_init(&sc->sc_mem_rman); + if (error) { + device_printf(dev, "rman_init() failed. error = %d\n", error); + return (error); + } + for (i = 0; i < nmem; i++) { + error = rman_manage_region(&sc->sc_mem_rman, mem[i]->pci_lo, + mem[i]->pci_lo + mem[i]->size_lo); + if (error) { + device_printf(dev, + "rman_manage_region() failed. error = %d\n", error); + return (error); + } + } + + ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(cell_t)); + + device_add_child(dev, "pci", device_get_unit(dev)); + return (bus_generic_attach(dev)); +} + +static int +rtaspci_maxslots(device_t dev) +{ + + return (PCI_SLOTMAX); +} + +static uint32_t +rtaspci_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, + int width) +{ + struct rtaspci_softc *sc; + uint32_t retval = 0xffffffff; + uint32_t config_addr; + int error, pcierror; + + sc = device_get_softc(dev); + + config_addr = ((bus & 0xff) << 16) | ((slot & 0x1f) << 11) | + ((func & 0x7) << 8) | (reg & 0xff); + if (sc->sc_extended_config) + config_addr |= (reg & 0xf00) << 16; + + if (sc->ex_read_pci_config != -1) + error = rtas_call_method(sc->ex_read_pci_config, 4, 2, + config_addr, sc->pcir.phys_hi, sc->pcir.phys_mid, + width, &pcierror, &retval); + else + error = rtas_call_method(sc->read_pci_config, 2, 2, + config_addr, width, &pcierror, &retval); + + /* Sign-extend output */ + switch (width) { + case 1: + retval = (int32_t)(int8_t)(retval); + break; + case 2: + retval = (int32_t)(int16_t)(retval); + break; + } + + if (error < 0 || pcierror != 0) + retval = 0xffffffff; + + return (retval); +} + +static void +rtaspci_write_config(device_t dev, u_int bus, u_int slot, u_int func, + u_int reg, uint32_t val, int width) +{ + struct rtaspci_softc *sc; + uint32_t config_addr; + int pcierror; + + sc = device_get_softc(dev); + + config_addr = ((bus & 0xff) << 16) | ((slot & 0x1f) << 11) | + ((func & 0x7) << 8) | (reg & 0xff); + if (sc->sc_extended_config) + config_addr |= (reg & 0xf00) << 16; + + if (sc->ex_write_pci_config != -1) + rtas_call_method(sc->ex_write_pci_config, 5, 1, config_addr, + sc->pcir.phys_hi, sc->pcir.phys_mid, width, val, + &pcierror); + else + rtas_call_method(sc->write_pci_config, 3, 1, config_addr, + width, val, &pcierror); +} + +static int +rtaspci_route_interrupt(device_t bus, device_t dev, int pin) +{ + struct rtaspci_softc *sc; + struct ofw_pci_register reg; + uint32_t pintr, mintr; + phandle_t iparent; + uint8_t maskbuf[sizeof(reg) + sizeof(pintr)]; + + sc = device_get_softc(bus); + pintr = pin; + if (ofw_bus_lookup_imap(ofw_bus_get_node(dev), &sc->sc_pci_iinfo, ®, + sizeof(reg), &pintr, sizeof(pintr), &mintr, sizeof(mintr), + &iparent, maskbuf)) + return (MAP_IRQ(iparent, mintr)); + + /* Maybe it's a real interrupt, not an intpin */ + if (pin > 4) + return (pin); + + device_printf(bus, "could not route pin %d for device %d.%d\n", + pin, pci_get_slot(dev), pci_get_function(dev)); + return (PCI_INVALID_IRQ); +} + +static int +rtaspci_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) +{ + struct rtaspci_softc *sc; + + sc = device_get_softc(dev); + + switch (which) { + case PCIB_IVAR_DOMAIN: + *result = 0; + return (0); + case PCIB_IVAR_BUS: + *result = sc->sc_bus; + return (0); + } + + return (ENOENT); +} + +static struct resource * +rtaspci_alloc_resource(device_t bus, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct rtaspci_softc *sc; + struct resource *rv; + struct rman *rm; + int needactivate; + + needactivate = flags & RF_ACTIVE; + flags &= ~RF_ACTIVE; + + sc = device_get_softc(bus); + + switch (type) { + case SYS_RES_MEMORY: + rm = &sc->sc_mem_rman; + break; + + case SYS_RES_IOPORT: + rm = &sc->sc_io_rman; + break; + + case SYS_RES_IRQ: + return (bus_alloc_resource(bus, type, rid, start, end, count, + flags)); + + default: + device_printf(bus, "unknown resource request from %s\n", + device_get_nameunit(child)); + return (NULL); + } + + rv = rman_reserve_resource(rm, start, end, count, flags, child); + if (rv == NULL) { + device_printf(bus, "failed to reserve resource for %s\n", + device_get_nameunit(child)); + return (NULL); + } + + rman_set_rid(rv, *rid); + + if (needactivate) { + if (bus_activate_resource(child, type, *rid, rv) != 0) { + device_printf(bus, + "failed to activate resource for %s\n", + device_get_nameunit(child)); + rman_release_resource(rv); + return (NULL); + } + } + + return (rv); +} + +static int +rtaspci_release_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + if (rman_get_flags(res) & RF_ACTIVE) { + int error = bus_deactivate_resource(child, type, rid, res); + if (error) + return error; + } + + return (rman_release_resource(res)); +} + +static int +rtaspci_activate_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + struct rtaspci_softc *sc; + void *p; + + sc = device_get_softc(bus); + + if (type == SYS_RES_IRQ) { + return (bus_activate_resource(bus, type, rid, res)); + } + if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) { + vm_offset_t start; + + start = (vm_offset_t)rman_get_start(res); + + /* + * Some bridges have I/O ports relative to the start of I/O + * space, so adjust if we are under that. + */ + if (type == SYS_RES_IOPORT && start < sc->sc_iostart) + start += sc->sc_iostart; + + if (bootverbose) + printf("rtaspci mapdev: start %zx, len %ld\n", start, + rman_get_size(res)); + + p = pmap_mapdev(start, (vm_size_t)rman_get_size(res)); + if (p == NULL) + return (ENOMEM); + + rman_set_virtual(res, p); + rman_set_bustag(res, &bs_le_tag); + rman_set_bushandle(res, (u_long)p); + } + + return (rman_activate_resource(res)); +} + +static int +rtaspci_deactivate_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) +{ + /* + * If this is a memory resource, unmap it. + */ + if ((type == SYS_RES_MEMORY) || (type == SYS_RES_IOPORT)) { + u_int32_t psize; + + psize = rman_get_size(res); + pmap_unmapdev((vm_offset_t)rman_get_virtual(res), psize); + } + + return (rman_deactivate_resource(res)); +} + +static phandle_t +rtaspci_get_node(device_t bus, device_t dev) +{ + struct rtaspci_softc *sc; + + sc = device_get_softc(bus); + /* We only have one child, the PCI bus, which needs our own node. */ + + return (sc->sc_node); +} + +static int +rtaspci_fill_ranges(phandle_t node, struct ofw_pci_range **ranges, + int *nranges) +{ + int address_cells = 1; + cell_t *base_ranges; + ssize_t nbase_ranges; + int i, j; + + OF_getprop(OF_parent(node), "#address-cells", &address_cells, + sizeof(address_cells)); + if (address_cells > 2) + panic("RTAS PCI: Addresses too wide (%d)", address_cells); + + nbase_ranges = OF_getproplen(node, "ranges"); + if (nbase_ranges <= 0) + return (-1); + + base_ranges = malloc(nbase_ranges, M_DEVBUF, M_WAITOK); + OF_getprop(node, "ranges", base_ranges, nbase_ranges); + *nranges = nbase_ranges / sizeof(cell_t) / (5 + address_cells); + *ranges = malloc(*nranges * sizeof(struct ofw_pci_range), M_DEVBUF, + M_WAITOK); + + for (i = 0, j = 0; i < *nranges; i++) { + (*ranges)[i].pci_hi = base_ranges[j++]; + (*ranges)[i].pci_mid = base_ranges[j++]; + (*ranges)[i].pci_lo = base_ranges[j++]; + (*ranges)[i].host = base_ranges[j++]; + if (address_cells == 2) { + (*ranges)[i].host <<= 32; + (*ranges)[i].host |= base_ranges[j++]; + } + (*ranges)[i].size_hi = base_ranges[j++]; + (*ranges)[i].size_lo = base_ranges[j++]; + } + + free(base_ranges, M_DEVBUF); + return (0); +} + From owner-svn-src-projects@FreeBSD.ORG Fri May 20 14:26:14 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 36CFB1065672; Fri, 20 May 2011 14:26:14 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 26A9D8FC12; Fri, 20 May 2011 14:26:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4KEQEbO088033; Fri, 20 May 2011 14:26:14 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4KEQERk088031; Fri, 20 May 2011 14:26:14 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105201426.p4KEQERk088031@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 20 May 2011 14:26:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222129 - projects/pseries/powerpc/pseries X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 14:26:14 -0000 Author: nwhitehorn Date: Fri May 20 14:26:13 2011 New Revision: 222129 URL: http://svn.freebsd.org/changeset/base/222129 Log: A small nit: RTAS (and this driver) support multi-domain PCI systems, so set the PCI domain to the PCI root bus unit number. This may be overkill, but is guaranteed to work. Modified: projects/pseries/powerpc/pseries/rtas_pci.c Modified: projects/pseries/powerpc/pseries/rtas_pci.c ============================================================================== --- projects/pseries/powerpc/pseries/rtas_pci.c Fri May 20 14:22:10 2011 (r222128) +++ projects/pseries/powerpc/pseries/rtas_pci.c Fri May 20 14:26:13 2011 (r222129) @@ -390,7 +390,7 @@ rtaspci_read_ivar(device_t dev, device_t switch (which) { case PCIB_IVAR_DOMAIN: - *result = 0; + *result = device_get_unit(dev); return (0); case PCIB_IVAR_BUS: *result = sc->sc_bus; From owner-svn-src-projects@FreeBSD.ORG Fri May 20 14:53:17 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D80A106564A; Fri, 20 May 2011 14:53:17 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3C40D8FC18; Fri, 20 May 2011 14:53:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4KErHru088945; Fri, 20 May 2011 14:53:17 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4KErGem088936; Fri, 20 May 2011 14:53:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105201453.p4KErGem088936@svn.freebsd.org> From: Attilio Rao Date: Fri, 20 May 2011 14:53:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222131 - in projects/largeSMP/sys/i386: i386 include xen X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 14:53:17 -0000 Author: attilio Date: Fri May 20 14:53:16 2011 New Revision: 222131 URL: http://svn.freebsd.org/changeset/base/222131 Log: Reintroduce the lazypmap infrastructure and convert it to using cpuset_t. Requested by: alc Modified: projects/largeSMP/sys/i386/i386/apic_vector.s projects/largeSMP/sys/i386/i386/db_trace.c projects/largeSMP/sys/i386/i386/mp_machdep.c projects/largeSMP/sys/i386/i386/pmap.c projects/largeSMP/sys/i386/i386/swtch.s projects/largeSMP/sys/i386/include/smp.h projects/largeSMP/sys/i386/xen/mp_machdep.c projects/largeSMP/sys/i386/xen/pmap.c Modified: projects/largeSMP/sys/i386/i386/apic_vector.s ============================================================================== --- projects/largeSMP/sys/i386/i386/apic_vector.s Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/i386/apic_vector.s Fri May 20 14:53:16 2011 (r222131) @@ -357,4 +357,20 @@ IDTVEC(rendezvous) POP_FRAME iret +/* + * Clean up when we lose out on the lazy context switch optimization. + * ie: when we are about to release a PTD but a cpu is still borrowing it. + */ + SUPERALIGN_TEXT +IDTVEC(lazypmap) + PUSH_FRAME + SET_KERNEL_SREGS + cld + + call pmap_lazyfix_action + + movl lapic, %eax + movl $0, LA_EOI(%eax) /* End Of Interrupt to APIC */ + POP_FRAME + iret #endif /* SMP */ Modified: projects/largeSMP/sys/i386/i386/db_trace.c ============================================================================== --- projects/largeSMP/sys/i386/i386/db_trace.c Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/i386/db_trace.c Fri May 20 14:53:16 2011 (r222131) @@ -312,7 +312,8 @@ db_nextframe(struct i386_frame **fp, db_ frame_type = TRAP_TIMERINT; else if (strcmp(name, "Xcpustop") == 0 || strcmp(name, "Xrendezvous") == 0 || - strcmp(name, "Xipi_intr_bitmap_handler") == 0) + strcmp(name, "Xipi_intr_bitmap_handler") == 0 || + strcmp(name, "Xlazypmap") == 0) frame_type = TRAP_INTERRUPT; } Modified: projects/largeSMP/sys/i386/i386/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/i386/i386/mp_machdep.c Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/i386/mp_machdep.c Fri May 20 14:53:16 2011 (r222131) @@ -166,6 +166,7 @@ u_long *ipi_invlrng_counts[MAXCPU]; u_long *ipi_invlpg_counts[MAXCPU]; u_long *ipi_invlcache_counts[MAXCPU]; u_long *ipi_rendezvous_counts[MAXCPU]; +u_long *ipi_lazypmap_counts[MAXCPU]; static u_long *ipi_hardclock_counts[MAXCPU]; #endif @@ -575,6 +576,10 @@ cpu_mp_start(void) setidt(IPI_INVLCACHE, IDTVEC(invlcache), SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); + /* Install an inter-CPU IPI for lazy pmap release */ + setidt(IPI_LAZYPMAP, IDTVEC(lazypmap), + SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); + /* Install an inter-CPU IPI for all-CPU rendezvous */ setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); @@ -1718,6 +1723,8 @@ mp_ipi_intrcnt(void *dummy) intrcnt_add(buf, &ipi_ast_counts[i]); snprintf(buf, sizeof(buf), "cpu%d:rendezvous", i); intrcnt_add(buf, &ipi_rendezvous_counts[i]); + snprintf(buf, sizeof(buf), "cpu%d:lazypmap", i); + intrcnt_add(buf, &ipi_lazypmap_counts[i]); snprintf(buf, sizeof(buf), "cpu%d:hardclock", i); intrcnt_add(buf, &ipi_hardclock_counts[i]); } Modified: projects/largeSMP/sys/i386/i386/pmap.c ============================================================================== --- projects/largeSMP/sys/i386/i386/pmap.c Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/i386/pmap.c Fri May 20 14:53:16 2011 (r222131) @@ -1900,6 +1900,104 @@ retry: * Pmap allocation/deallocation routines. ***************************************************/ +#ifdef SMP +/* + * Deal with a SMP shootdown of other users of the pmap that we are + * trying to dispose of. This can be a bit hairy. + */ +static cpuset_t *lazymask; +static u_int lazyptd; +static volatile u_int lazywait; + +void pmap_lazyfix_action(void); + +void +pmap_lazyfix_action(void) +{ + +#ifdef COUNT_IPIS + (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++; +#endif + if (rcr3() == lazyptd) + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_CLR_ATOMIC(PCPU_GET(cpuid), lazymask); + atomic_store_rel_int(&lazywait, 1); +} + +static void +pmap_lazyfix_self(cpuset_t mymask) +{ + + if (rcr3() == lazyptd) + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_NAND_ATOMIC(lazymask, &mymask); +} + + +static void +pmap_lazyfix(pmap_t pmap) +{ + cpuset_t mymask, mask; + u_int spins; + int lbs; + + mask = pmap->pm_active; + while (!CPU_EMPTY(&mask)) { + spins = 50000000; + + /* Find least significant set bit. */ + lsb = cpusetobj_ffs(&mask); + lsb--; + CPU_SETOF(lsb, &mask); + mtx_lock_spin(&smp_ipi_mtx); +#ifdef PAE + lazyptd = vtophys(pmap->pm_pdpt); +#else + lazyptd = vtophys(pmap->pm_pdir); +#endif + mymask = PCPU_GET(cpumask); + if (mask == mymask) { + lazymask = &pmap->pm_active; + pmap_lazyfix_self(mymask); + } else { + atomic_store_rel_int((u_int *)&lazymask, + (u_int)&pmap->pm_active); + atomic_store_rel_int(&lazywait, 0); + ipi_selected(mask, IPI_LAZYPMAP); + while (lazywait == 0) { + ia32_pause(); + if (--spins == 0) + break; + } + } + mtx_unlock_spin(&smp_ipi_mtx); + if (spins == 0) + printf("pmap_lazyfix: spun for 50000000\n"); + mask = pmap->pm_active; + } +} + +#else /* SMP */ + +/* + * Cleaning up on uniprocessor is easy. For various reasons, we're + * unlikely to have to even execute this code, including the fact + * that the cleanup is deferred until the parent does a wait(2), which + * means that another userland process has run. + */ +static void +pmap_lazyfix(pmap_t pmap) +{ + u_int cr3; + + cr3 = vtophys(pmap->pm_pdir); + if (cr3 == rcr3()) { + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_CLR(PCPU_GET(cpuid), &pmap->pm_active); + } +} +#endif /* SMP */ + /* * Release any resources held by the given physical map. * Called when a pmap initialized by pmap_pinit is being released. @@ -1917,6 +2015,7 @@ pmap_release(pmap_t pmap) KASSERT(pmap->pm_root == NULL, ("pmap_release: pmap has reserved page table page(s)")); + pmap_lazyfix(pmap); mtx_lock_spin(&allpmaps_lock); LIST_REMOVE(pmap, pm_list); mtx_unlock_spin(&allpmaps_lock); Modified: projects/largeSMP/sys/i386/i386/swtch.s ============================================================================== --- projects/largeSMP/sys/i386/i386/swtch.s Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/i386/swtch.s Fri May 20 14:53:16 2011 (r222131) @@ -174,6 +174,12 @@ ENTRY(cpu_switch) /* switch address space */ movl PCB_CR3(%edx),%eax +#ifdef PAE + cmpl %eax,IdlePDPT /* Kernel address space? */ +#else + cmpl %eax,IdlePTD /* Kernel address space? */ +#endif + je sw0 READ_CR3(%ebx) /* The same address space? */ cmpl %ebx,%eax je sw0 Modified: projects/largeSMP/sys/i386/include/smp.h ============================================================================== --- projects/largeSMP/sys/i386/include/smp.h Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/include/smp.h Fri May 20 14:53:16 2011 (r222131) @@ -42,6 +42,7 @@ extern u_long *ipi_invlrng_counts[MAXCPU extern u_long *ipi_invlpg_counts[MAXCPU]; extern u_long *ipi_invlcache_counts[MAXCPU]; extern u_long *ipi_rendezvous_counts[MAXCPU]; +extern u_long *ipi_lazypmap_counts[MAXCPU]; #endif /* IPI handlers */ @@ -52,7 +53,8 @@ inthand_t IDTVEC(invlcache), /* Write back and invalidate cache */ IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ IDTVEC(cpustop), /* CPU stops & waits to be restarted */ - IDTVEC(rendezvous); /* handle CPU rendezvous */ + IDTVEC(rendezvous), /* handle CPU rendezvous */ + IDTVEC(lazypmap); /* handle lazy pmap release */ /* functions in mp_machdep.c */ void cpu_add(u_int apic_id, char boot_cpu); Modified: projects/largeSMP/sys/i386/xen/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/i386/xen/mp_machdep.c Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/xen/mp_machdep.c Fri May 20 14:53:16 2011 (r222131) @@ -154,6 +154,7 @@ static cpuset_t hyperthreading_cpus_mask extern void Xhypervisor_callback(void); extern void failsafe_callback(void); +extern void pmap_lazyfix_action(void); struct cpu_group * cpu_topo(void) @@ -341,16 +342,24 @@ iv_invlcache(uintptr_t a, uintptr_t b) atomic_add_int(&smp_tlb_wait, 1); } +static void +iv_lazypmap(uintptr_t a, uintptr_t b) +{ + pmap_lazyfix_action(); + atomic_add_int(&smp_tlb_wait, 1); +} + /* * These start from "IPI offset" APIC_IPI_INTS */ -static call_data_func_t *ipi_vectors[5] = +static call_data_func_t *ipi_vectors[6] = { iv_rendezvous, iv_invltlb, iv_invlpg, iv_invlrng, iv_invlcache, + iv_lazypmap, }; /* Modified: projects/largeSMP/sys/i386/xen/pmap.c ============================================================================== --- projects/largeSMP/sys/i386/xen/pmap.c Fri May 20 14:32:28 2011 (r222130) +++ projects/largeSMP/sys/i386/xen/pmap.c Fri May 20 14:53:16 2011 (r222131) @@ -1683,6 +1683,104 @@ retry: * Pmap allocation/deallocation routines. ***************************************************/ +#ifdef SMP +/* + * Deal with a SMP shootdown of other users of the pmap that we are + * trying to dispose of. This can be a bit hairy. + */ +static cpuset_t *lazymask; +static u_int lazyptd; +static volatile u_int lazywait; + +void pmap_lazyfix_action(void); + +void +pmap_lazyfix_action(void) +{ + +#ifdef COUNT_IPIS + (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++; +#endif + if (rcr3() == lazyptd) + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_CLR_ATOMIC(PCPU_GET(cpuid), lazymask); + atomic_store_rel_int(&lazywait, 1); +} + +static void +pmap_lazyfix_self(cpuset_t mymask) +{ + + if (rcr3() == lazyptd) + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_NAND_ATOMIC(lazymask, &mymask); +} + + +static void +pmap_lazyfix(pmap_t pmap) +{ + cpuset_t mymask, mask; + u_int spins; + int lsb; + + mask = pmap->pm_active; + while (!CPU_EMPTY(&mask)) { + spins = 50000000; + + /* Find least significant set bit. */ + lsb = cpusetobj_ffs(&mask); + lsb--; + CPU_SETOF(lsb, &mask); + mtx_lock_spin(&smp_ipi_mtx); +#ifdef PAE + lazyptd = vtophys(pmap->pm_pdpt); +#else + lazyptd = vtophys(pmap->pm_pdir); +#endif + mymask = PCPU_GET(cpumask); + if (mask == mymask) { + lazymask = &pmap->pm_active; + pmap_lazyfix_self(mymask); + } else { + atomic_store_rel_int((u_int *)&lazymask, + (u_int)&pmap->pm_active); + atomic_store_rel_int(&lazywait, 0); + ipi_selected(mask, IPI_LAZYPMAP); + while (lazywait == 0) { + ia32_pause(); + if (--spins == 0) + break; + } + } + mtx_unlock_spin(&smp_ipi_mtx); + if (spins == 0) + printf("pmap_lazyfix: spun for 50000000\n"); + mask = pmap->pm_active; + } +} + +#else /* SMP */ + +/* + * Cleaning up on uniprocessor is easy. For various reasons, we're + * unlikely to have to even execute this code, including the fact + * that the cleanup is deferred until the parent does a wait(2), which + * means that another userland process has run. + */ +static void +pmap_lazyfix(pmap_t pmap) +{ + u_int cr3; + + cr3 = vtophys(pmap->pm_pdir); + if (cr3 == rcr3()) { + load_cr3(PCPU_GET(curpcb)->pcb_cr3); + CPU_CLR(PCPU_GET(cpuid), &pmap->pm_active); + } +} +#endif /* SMP */ + /* * Release any resources held by the given physical map. * Called when a pmap initialized by pmap_pinit is being released. @@ -1708,6 +1806,7 @@ pmap_release(pmap_t pmap) mtx_lock(&createdelete_lock); #endif + pmap_lazyfix(pmap); mtx_lock_spin(&allpmaps_lock); LIST_REMOVE(pmap, pm_list); mtx_unlock_spin(&allpmaps_lock); From owner-svn-src-projects@FreeBSD.ORG Fri May 20 15:48:09 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A97E4106564A; Fri, 20 May 2011 15:48:08 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9708A8FC0A; Fri, 20 May 2011 15:48:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4KFm8Hs090645; Fri, 20 May 2011 15:48:08 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4KFm8r9090637; Fri, 20 May 2011 15:48:08 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105201548.p4KFm8r9090637@svn.freebsd.org> From: Attilio Rao Date: Fri, 20 May 2011 15:48:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222133 - in projects/largeSMP: bin/ps contrib/top sbin/hastd share/mk sys/dev/alc sys/dev/ale sys/vm usr.bin/ar X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 20 May 2011 15:48:09 -0000 Author: attilio Date: Fri May 20 15:48:08 2011 New Revision: 222133 URL: http://svn.freebsd.org/changeset/base/222133 Log: MFC Added: projects/largeSMP/sbin/hastd/proto_tcp.c - copied unchanged from r222132, head/sbin/hastd/proto_tcp.c Deleted: projects/largeSMP/sbin/hastd/proto_tcp4.c Modified: projects/largeSMP/bin/ps/ps.1 projects/largeSMP/sbin/hastd/Makefile projects/largeSMP/sbin/hastd/hast.conf.5 projects/largeSMP/sbin/hastd/hast.h projects/largeSMP/sbin/hastd/hastd.c projects/largeSMP/sbin/hastd/parse.y projects/largeSMP/sbin/hastd/token.l projects/largeSMP/sys/dev/alc/if_alcreg.h projects/largeSMP/sys/dev/ale/if_alereg.h projects/largeSMP/sys/vm/uma_core.c projects/largeSMP/usr.bin/ar/acpyacc.y projects/largeSMP/usr.bin/ar/ar.c projects/largeSMP/usr.bin/ar/write.c Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/bin/ps/ps.1 ============================================================================== --- projects/largeSMP/bin/ps/ps.1 Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/bin/ps/ps.1 Fri May 20 15:48:08 2011 (r222133) @@ -301,7 +301,7 @@ the include file .It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit" .It Dv "P_PROFIL" Ta No "0x00020 Has started profiling" .It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof" -.It Dv "P_HASTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)" +.It Dv "P_HADTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)" .It Dv "P_SUGID" Ta No "0x00100 Had set id privileges since last exec" .It Dv "P_SYSTEM" Ta No "0x00200 System proc: no sigs, stats or swapping" .It Dv "P_SINGLE_EXIT" Ta No "0x00400 Threads suspending should exit, not wait" @@ -549,7 +549,7 @@ wait channel (as an address) total blocks written (alias .Cm oublock ) .It Cm paddr -swap address +process pointer .It Cm pagein pageins (same as majflt) .It Cm pgid Modified: projects/largeSMP/sbin/hastd/Makefile ============================================================================== --- projects/largeSMP/sbin/hastd/Makefile Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/sbin/hastd/Makefile Fri May 20 15:48:08 2011 (r222133) @@ -12,7 +12,7 @@ SRCS+= metadata.c SRCS+= nv.c SRCS+= secondary.c SRCS+= parse.y pjdlog.c primary.c -SRCS+= proto.c proto_common.c proto_socketpair.c proto_tcp4.c proto_uds.c +SRCS+= proto.c proto_common.c proto_socketpair.c proto_tcp.c proto_uds.c SRCS+= rangelock.c SRCS+= subr.c SRCS+= token.l @@ -20,7 +20,7 @@ SRCS+= y.tab.h MAN= hastd.8 hast.conf.5 NO_WFORMAT= -CFLAGS+=-DPROTO_TCP4_DEFAULT_PORT=8457 +CFLAGS+=-DPROTO_TCP_DEFAULT_PORT=8457 CFLAGS+=-I${.CURDIR} CFLAGS+=-DINET .if ${MK_INET6_SUPPORT} != "no" Modified: projects/largeSMP/sbin/hastd/hast.conf.5 ============================================================================== --- projects/largeSMP/sbin/hastd/hast.conf.5 Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/sbin/hastd/hast.conf.5 Fri May 20 15:48:08 2011 (r222133) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 2, 2011 +.Dd May 20, 2011 .Dt HAST.CONF 5 .Os .Sh NAME @@ -159,8 +159,14 @@ tcp4://0.0.0.0 tcp4://0.0.0.0:8457 .Ed .Pp -The default value is -.Pa tcp4://0.0.0.0:8457 . +Multiple listen addresses can be specified. +By default +.Nm hastd +listens on +.Pa tcp4://0.0.0.0:8457 +and +.Pa tcp6://[::]:8457 +if kernel supports IPv4 and IPv6 respectively. .It Ic replication Aq mode .Pp Replication mode should be one of the following: @@ -364,26 +370,35 @@ daemon. .Sh EXAMPLES The example configuration file can look as follows: .Bd -literal -offset indent +listen tcp://0.0.0.0 + +on hasta { + listen tcp://2001:db8::1/64 +} +on hastb { + listen tcp://2001:db8::2/64 +} + resource shared { local /dev/da0 on hasta { - remote tcp4://10.0.0.2 + remote tcp://10.0.0.2 } on hastb { - remote tcp4://10.0.0.1 + remote tcp://10.0.0.1 } } resource tank { on hasta { local /dev/mirror/tanka - source tcp4://10.0.0.1 - remote tcp4://10.0.0.2 + source tcp://10.0.0.1 + remote tcp://10.0.0.2 } on hastb { local /dev/mirror/tankb - source tcp4://10.0.0.2 - remote tcp4://10.0.0.1 + source tcp://10.0.0.2 + remote tcp://10.0.0.1 } } .Ed Modified: projects/largeSMP/sbin/hastd/hast.h ============================================================================== --- projects/largeSMP/sbin/hastd/hast.h Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/sbin/hastd/hast.h Fri May 20 15:48:08 2011 (r222133) @@ -82,12 +82,13 @@ #define HIO_FLUSH 4 #define HIO_KEEPALIVE 5 -#define HAST_USER "hast" -#define HAST_TIMEOUT 20 -#define HAST_CONFIG "/etc/hast.conf" -#define HAST_CONTROL "/var/run/hastctl" -#define HASTD_LISTEN "tcp4://0.0.0.0:8457" -#define HASTD_PIDFILE "/var/run/hastd.pid" +#define HAST_USER "hast" +#define HAST_TIMEOUT 20 +#define HAST_CONFIG "/etc/hast.conf" +#define HAST_CONTROL "/var/run/hastctl" +#define HASTD_LISTEN_TCP4 "tcp4://0.0.0.0:8457" +#define HASTD_LISTEN_TCP6 "tcp6://[::]:8457" +#define HASTD_PIDFILE "/var/run/hastd.pid" /* Default extent size. */ #define HAST_EXTENTSIZE 2097152 @@ -100,6 +101,14 @@ /* Number of seconds to sleep between reconnect retries or keepalive packets. */ #define HAST_KEEPALIVE 10 +struct hastd_listen { + /* Address to listen on. */ + char hl_addr[HAST_ADDRSIZE]; + /* Protocol-specific data. */ + struct proto_conn *hl_conn; + TAILQ_ENTRY(hastd_listen) hl_next; +}; + struct hastd_config { /* Address to communicate with hastctl(8). */ char hc_controladdr[HAST_ADDRSIZE]; @@ -107,10 +116,8 @@ struct hastd_config { struct proto_conn *hc_controlconn; /* Incoming control connection. */ struct proto_conn *hc_controlin; - /* Address to listen on. */ - char hc_listenaddr[HAST_ADDRSIZE]; - /* Protocol-specific data. */ - struct proto_conn *hc_listenconn; + /* List of addresses to listen on. */ + TAILQ_HEAD(, hastd_listen) hc_listen; /* List of resources. */ TAILQ_HEAD(, hast_resource) hc_resources; }; Modified: projects/largeSMP/sbin/hastd/hastd.c ============================================================================== --- projects/largeSMP/sbin/hastd/hastd.c Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/sbin/hastd/hastd.c Fri May 20 15:48:08 2011 (r222133) @@ -98,6 +98,7 @@ void descriptors_cleanup(struct hast_resource *res) { struct hast_resource *tres; + struct hastd_listen *lst; TAILQ_FOREACH(tres, &cfg->hc_resources, hr_next) { if (tres == res) { @@ -120,7 +121,10 @@ descriptors_cleanup(struct hast_resource if (cfg->hc_controlin != NULL) proto_close(cfg->hc_controlin); proto_close(cfg->hc_controlconn); - proto_close(cfg->hc_listenconn); + TAILQ_FOREACH(lst, &cfg->hc_listen, hl_next) { + if (lst->hl_conn != NULL) + proto_close(lst->hl_conn); + } (void)pidfile_close(pfh); hook_fini(); pjdlog_fini(); @@ -462,6 +466,8 @@ hastd_reload(void) { struct hastd_config *newcfg; struct hast_resource *nres, *cres, *tres; + struct hastd_listen *nlst, *clst; + unsigned int nlisten; uint8_t role; pjdlog_info("Reloading configuration..."); @@ -483,19 +489,37 @@ hastd_reload(void) } } /* - * Check if listen address has changed. + * Check if any listen address has changed. */ - if (strcmp(cfg->hc_listenaddr, newcfg->hc_listenaddr) != 0) { - if (proto_server(newcfg->hc_listenaddr, - &newcfg->hc_listenconn) < 0) { - pjdlog_errno(LOG_ERR, "Unable to listen on address %s", - newcfg->hc_listenaddr); - goto failed; + nlisten = 0; + TAILQ_FOREACH(nlst, &newcfg->hc_listen, hl_next) { + TAILQ_FOREACH(clst, &cfg->hc_listen, hl_next) { + if (strcmp(nlst->hl_addr, clst->hl_addr) == 0) + break; + } + if (clst != NULL && clst->hl_conn != NULL) { + pjdlog_info("Keep listening on address %s.", + nlst->hl_addr); + nlst->hl_conn = clst->hl_conn; + nlisten++; + } else if (proto_server(nlst->hl_addr, &nlst->hl_conn) == 0) { + pjdlog_info("Listening on new address %s.", + nlst->hl_addr); + nlisten++; + } else { + pjdlog_errno(LOG_WARNING, + "Unable to listen on address %s", nlst->hl_addr); } } + if (nlisten == 0) { + pjdlog_error("No addresses to listen on."); + goto failed; + } + + /* No failures from now on. */ + /* - * Only when both control and listen sockets are successfully - * initialized switch them to new configuration. + * Switch to new control socket. */ if (newcfg->hc_controlconn != NULL) { pjdlog_info("Control socket changed from %s to %s.", @@ -506,15 +530,23 @@ hastd_reload(void) strlcpy(cfg->hc_controladdr, newcfg->hc_controladdr, sizeof(cfg->hc_controladdr)); } - if (newcfg->hc_listenconn != NULL) { - pjdlog_info("Listen socket changed from %s to %s.", - cfg->hc_listenaddr, newcfg->hc_listenaddr); - proto_close(cfg->hc_listenconn); - cfg->hc_listenconn = newcfg->hc_listenconn; - newcfg->hc_listenconn = NULL; - strlcpy(cfg->hc_listenaddr, newcfg->hc_listenaddr, - sizeof(cfg->hc_listenaddr)); + /* + * Switch to new listen addresses. Close all that were removed. + */ + while ((clst = TAILQ_FIRST(&cfg->hc_listen)) != NULL) { + TAILQ_FOREACH(nlst, &newcfg->hc_listen, hl_next) { + if (strcmp(nlst->hl_addr, clst->hl_addr) == 0) + break; + } + if (nlst == NULL && clst->hl_conn != NULL) { + proto_close(clst->hl_conn); + pjdlog_info("No longer listening on address %s.", + clst->hl_addr); + } + TAILQ_REMOVE(&cfg->hc_listen, clst, hl_next); + free(clst); } + TAILQ_CONCAT(&cfg->hc_listen, &newcfg->hc_listen, hl_next); /* * Stop and remove resources that were removed from the configuration. @@ -607,8 +639,20 @@ failed: if (newcfg != NULL) { if (newcfg->hc_controlconn != NULL) proto_close(newcfg->hc_controlconn); - if (newcfg->hc_listenconn != NULL) - proto_close(newcfg->hc_listenconn); + while ((nlst = TAILQ_FIRST(&newcfg->hc_listen)) != NULL) { + if (nlst->hl_conn != NULL) { + TAILQ_FOREACH(clst, &cfg->hc_listen, hl_next) { + if (strcmp(nlst->hl_addr, + clst->hl_addr) == 0) { + break; + } + } + if (clst == NULL || clst->hl_conn == NULL) + proto_close(nlst->hl_conn); + } + TAILQ_REMOVE(&newcfg->hc_listen, nlst, hl_next); + free(nlst); + } yy_config_free(newcfg); } pjdlog_warning("Configuration not reloaded."); @@ -634,7 +678,7 @@ terminate_workers(void) } static void -listen_accept(void) +listen_accept(struct hastd_listen *lst) { struct hast_resource *res; struct proto_conn *conn; @@ -646,10 +690,10 @@ listen_accept(void) pid_t pid; int status; - proto_local_address(cfg->hc_listenconn, laddr, sizeof(laddr)); + proto_local_address(lst->hl_conn, laddr, sizeof(laddr)); pjdlog_debug(1, "Accepting connection to %s.", laddr); - if (proto_accept(cfg->hc_listenconn, &conn) < 0) { + if (proto_accept(lst->hl_conn, &conn) < 0) { pjdlog_errno(LOG_ERR, "Unable to accept connection %s", laddr); return; } @@ -943,6 +987,7 @@ static void main_loop(void) { struct hast_resource *res; + struct hastd_listen *lst; struct timeval seltimeout; int fd, maxfd, ret; time_t lastcheck, now; @@ -952,9 +997,6 @@ main_loop(void) seltimeout.tv_sec = REPORT_INTERVAL; seltimeout.tv_usec = 0; - pjdlog_info("Started successfully, running protocol version %d.", - HAST_PROTO_VERSION); - for (;;) { check_signals(); @@ -963,10 +1005,14 @@ main_loop(void) maxfd = fd = proto_descriptor(cfg->hc_controlconn); PJDLOG_ASSERT(fd >= 0); FD_SET(fd, &rfds); - fd = proto_descriptor(cfg->hc_listenconn); - PJDLOG_ASSERT(fd >= 0); - FD_SET(fd, &rfds); - maxfd = fd > maxfd ? fd : maxfd; + TAILQ_FOREACH(lst, &cfg->hc_listen, hl_next) { + if (lst->hl_conn == NULL) + continue; + fd = proto_descriptor(lst->hl_conn); + PJDLOG_ASSERT(fd >= 0); + FD_SET(fd, &rfds); + maxfd = fd > maxfd ? fd : maxfd; + } TAILQ_FOREACH(res, &cfg->hc_resources, hr_next) { if (res->hr_event == NULL) continue; @@ -1014,8 +1060,12 @@ main_loop(void) if (FD_ISSET(proto_descriptor(cfg->hc_controlconn), &rfds)) control_handle(cfg); - if (FD_ISSET(proto_descriptor(cfg->hc_listenconn), &rfds)) - listen_accept(); + TAILQ_FOREACH(lst, &cfg->hc_listen, hl_next) { + if (lst->hl_conn == NULL) + continue; + if (FD_ISSET(proto_descriptor(lst->hl_conn), &rfds)) + listen_accept(lst); + } TAILQ_FOREACH(res, &cfg->hc_resources, hr_next) { if (res->hr_event == NULL) continue; @@ -1053,6 +1103,7 @@ dummy_sighandler(int sig __unused) int main(int argc, char *argv[]) { + struct hastd_listen *lst; const char *pidfile; pid_t otherpid; bool foreground; @@ -1136,10 +1187,12 @@ main(int argc, char *argv[]) cfg->hc_controladdr); } /* Listen for remote connections. */ - if (proto_server(cfg->hc_listenaddr, &cfg->hc_listenconn) < 0) { - KEEP_ERRNO((void)pidfile_remove(pfh)); - pjdlog_exit(EX_OSERR, "Unable to listen on address %s", - cfg->hc_listenaddr); + TAILQ_FOREACH(lst, &cfg->hc_listen, hl_next) { + if (proto_server(lst->hl_addr, &lst->hl_conn) < 0) { + KEEP_ERRNO((void)pidfile_remove(pfh)); + pjdlog_exit(EX_OSERR, "Unable to listen on address %s", + lst->hl_addr); + } } if (!foreground) { @@ -1158,6 +1211,14 @@ main(int argc, char *argv[]) } } + pjdlog_info("Started successfully, running protocol version %d.", + HAST_PROTO_VERSION); + + pjdlog_debug(1, "Listening on control address %s.", + cfg->hc_controladdr); + TAILQ_FOREACH(lst, &cfg->hc_listen, hl_next) + pjdlog_info("Listening on address %s.", lst->hl_addr); + hook_init(); main_loop(); Modified: projects/largeSMP/sbin/hastd/parse.y ============================================================================== --- projects/largeSMP/sbin/hastd/parse.y Fri May 20 15:26:31 2011 (r222132) +++ projects/largeSMP/sbin/hastd/parse.y Fri May 20 15:48:08 2011 (r222133) @@ -33,12 +33,14 @@ #include /* MAXHOSTNAMELEN */ #include +#include #include #include #include #include +#include #include #include #include @@ -59,7 +61,9 @@ static struct hast_resource *curres; static bool mynode, hadmynode; static char depth0_control[HAST_ADDRSIZE]; -static char depth0_listen[HAST_ADDRSIZE]; +static char depth0_listen_tcp4[HAST_ADDRSIZE]; +static char depth0_listen_tcp6[HAST_ADDRSIZE]; +static TAILQ_HEAD(, hastd_listen) depth0_listen; static int depth0_replication; static int depth0_checksum; static int depth0_compression; @@ -114,6 +118,19 @@ isitme(const char *name) return (0); } +static bool +family_supported(int family) +{ + int sock; + + sock = socket(family, SOCK_STREAM, 0); + if (sock == -1 && errno == EPROTONOSUPPORT) + return (false); + if (sock >= 0) + (void)close(sock); + return (true); +} + static int node_names(char **namesp) { @@ -175,7 +192,11 @@ yy_config_parse(const char *config, bool depth0_checksum = HAST_CHECKSUM_NONE; depth0_compression = HAST_COMPRESSION_HOLE; strlcpy(depth0_control, HAST_CONTROL, sizeof(depth0_control)); - strlcpy(depth0_listen, HASTD_LISTEN, sizeof(depth0_listen)); + TAILQ_INIT(&depth0_listen); + strlcpy(depth0_listen_tcp4, HASTD_LISTEN_TCP4, + sizeof(depth0_listen_tcp4)); + strlcpy(depth0_listen_tcp6, HASTD_LISTEN_TCP6, + sizeof(depth0_listen_tcp6)); depth0_exec[0] = '\0'; lconfig = calloc(1, sizeof(*lconfig)); @@ -186,6 +207,7 @@ yy_config_parse(const char *config, bool return (NULL); } + TAILQ_INIT(&lconfig->hc_listen); TAILQ_INIT(&lconfig->hc_resources); yyin = fopen(config, "r"); @@ -214,9 +236,50 @@ yy_config_parse(const char *config, bool strlcpy(lconfig->hc_controladdr, depth0_control, sizeof(lconfig->hc_controladdr)); } - if (lconfig->hc_listenaddr[0] == '\0') { - strlcpy(lconfig->hc_listenaddr, depth0_listen, - sizeof(lconfig->hc_listenaddr)); + if (!TAILQ_EMPTY(&depth0_listen)) + TAILQ_CONCAT(&lconfig->hc_listen, &depth0_listen, hl_next); + if (TAILQ_EMPTY(&lconfig->hc_listen)) { + struct hastd_listen *lst; + + if (family_supported(AF_INET)) { + lst = calloc(1, sizeof(*lst)); + if (lst == NULL) { + pjdlog_error("Unable to allocate memory for listen address."); + yy_config_free(lconfig); + if (exitonerror) + exit(EX_TEMPFAIL); + return (NULL); + } + (void)strlcpy(lst->hl_addr, depth0_listen_tcp4, + sizeof(lst->hl_addr)); + TAILQ_INSERT_TAIL(&lconfig->hc_listen, lst, hl_next); + } else { + pjdlog_debug(1, + "No IPv4 support in the kernel, not listening on IPv4 address."); + } + if (family_supported(AF_INET6)) { + lst = calloc(1, sizeof(*lst)); + if (lst == NULL) { + pjdlog_error("Unable to allocate memory for listen address."); + yy_config_free(lconfig); + if (exitonerror) + exit(EX_TEMPFAIL); + return (NULL); + } + (void)strlcpy(lst->hl_addr, depth0_listen_tcp6, + sizeof(lst->hl_addr)); + TAILQ_INSERT_TAIL(&lconfig->hc_listen, lst, hl_next); + } else { + pjdlog_debug(1, + "No IPv6 support in the kernel, not listening on IPv6 address."); + } + if (TAILQ_EMPTY(&lconfig->hc_listen)) { + pjdlog_error("No address to listen on."); + yy_config_free(lconfig); + if (exitonerror) + exit(EX_TEMPFAIL); + return (NULL); + } } TAILQ_FOREACH(curres, &lconfig->hc_resources, hr_next) { assert(curres->hr_provname[0] != '\0'); @@ -274,8 +337,17 @@ yy_config_parse(const char *config, bool void yy_config_free(struct hastd_config *config) { + struct hastd_listen *lst; struct hast_resource *res; + while ((lst = TAILQ_FIRST(&depth0_listen)) != NULL) { + TAILQ_REMOVE(&depth0_listen, lst, hl_next); + free(lst); + } + while ((lst = TAILQ_FIRST(&config->hc_listen)) != NULL) { + TAILQ_REMOVE(&config->hc_listen, lst, hl_next); + free(lst); + } while ((res = TAILQ_FIRST(&config->hc_resources)) != NULL) { TAILQ_REMOVE(&config->hc_resources, res, hr_next); free(res); @@ -362,26 +434,30 @@ control_statement: CONTROL STR listen_statement: LISTEN STR { + struct hastd_listen *lst; + + lst = calloc(1, sizeof(*lst)); + if (lst == NULL) { + pjdlog_error("Unable to allocate memory for listen address."); + free($2); + return (1); + } + if (strlcpy(lst->hl_addr, $2, sizeof(lst->hl_addr)) >= + sizeof(lst->hl_addr)) { + pjdlog_error("listen argument is too long."); + free($2); + free(lst); + return (1); + } switch (depth) { case 0: - if (strlcpy(depth0_listen, $2, - sizeof(depth0_listen)) >= - sizeof(depth0_listen)) { - pjdlog_error("listen argument is too long."); - free($2); - return (1); - } + TAILQ_INSERT_TAIL(&depth0_listen, lst, hl_next); break; case 1: - if (!mynode) - break; - if (strlcpy(lconfig->hc_listenaddr, $2, - sizeof(lconfig->hc_listenaddr)) >= - sizeof(lconfig->hc_listenaddr)) { - pjdlog_error("listen argument is too long."); - free($2); - return (1); - } + if (mynode) + TAILQ_INSERT_TAIL(&depth0_listen, lst, hl_next); + else + free(lst); break; default: assert(!"listen at wrong depth level"); Copied: projects/largeSMP/sbin/hastd/proto_tcp.c (from r222132, head/sbin/hastd/proto_tcp.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/sbin/hastd/proto_tcp.c Fri May 20 15:48:08 2011 (r222133, copy of r222132, head/sbin/hastd/proto_tcp.c) @@ -0,0 +1,638 @@ +/*- + * Copyright (c) 2009-2010 The FreeBSD Foundation + * Copyright (c) 2011 Pawel Jakub Dawidek + * All rights reserved. + * + * This software was developed by Pawel Jakub Dawidek under sponsorship from + * the FreeBSD Foundation. + * + * 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 AUTHORS 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 AUTHORS 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 +__FBSDID("$FreeBSD$"); + +#include /* MAXHOSTNAMELEN */ +#include + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pjdlog.h" +#include "proto_impl.h" +#include "subr.h" + +#define TCP_CTX_MAGIC 0x7c41c +struct tcp_ctx { + int tc_magic; + struct sockaddr_storage tc_sa; + int tc_fd; + int tc_side; +#define TCP_SIDE_CLIENT 0 +#define TCP_SIDE_SERVER_LISTEN 1 +#define TCP_SIDE_SERVER_WORK 2 +}; + +static int tcp_connect_wait(void *ctx, int timeout); +static void tcp_close(void *ctx); + +/* + * Function converts the given string to unsigned number. + */ +static int +numfromstr(const char *str, intmax_t minnum, intmax_t maxnum, intmax_t *nump) +{ + intmax_t digit, num; + + if (str[0] == '\0') + goto invalid; /* Empty string. */ + num = 0; + for (; *str != '\0'; str++) { + if (*str < '0' || *str > '9') + goto invalid; /* Non-digit character. */ + digit = *str - '0'; + if (num > num * 10 + digit) + goto invalid; /* Overflow. */ + num = num * 10 + digit; + if (num > maxnum) + goto invalid; /* Too big. */ + } + if (num < minnum) + goto invalid; /* Too small. */ + *nump = num; + return (0); +invalid: + errno = EINVAL; + return (-1); +} + +static int +tcp_addr(const char *addr, int defport, struct sockaddr_storage *sap) +{ + char iporhost[MAXHOSTNAMELEN], portstr[6]; + struct addrinfo hints; + struct addrinfo *res; + const char *pp; + intmax_t port; + size_t size; + int error; + + if (addr == NULL) + return (-1); + + bzero(&hints, sizeof(hints)); + hints.ai_flags = AI_ADDRCONFIG | AI_NUMERICSERV; + hints.ai_family = PF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = IPPROTO_TCP; + + if (strncasecmp(addr, "tcp4://", 7) == 0) { + addr += 7; + hints.ai_family = PF_INET; + } else if (strncasecmp(addr, "tcp6://", 7) == 0) { + addr += 7; + hints.ai_family = PF_INET6; + } else if (strncasecmp(addr, "tcp://", 6) == 0) { + addr += 6; + } else { + /* + * Because TCP is the default assume IP or host is given without + * prefix. + */ + } + + /* + * Extract optional port. + * There are three cases to consider. + * 1. hostname with port, eg. freefall.freebsd.org:8457 + * 2. IPv4 address with port, eg. 192.168.0.101:8457 + * 3. IPv6 address with port, eg. [fe80::1]:8457 + * We discover IPv6 address by checking for two colons and if port is + * given, the address has to start with [. + */ + pp = NULL; + if (strchr(addr, ':') != strrchr(addr, ':')) { + if (addr[0] == '[') + pp = strrchr(addr, ':'); + } else { + pp = strrchr(addr, ':'); + } + if (pp == NULL) { + /* Port not given, use the default. */ + port = defport; + } else { + if (numfromstr(pp + 1, 1, 65535, &port) < 0) + return (errno); + } + (void)snprintf(portstr, sizeof(portstr), "%jd", (intmax_t)port); + /* Extract host name or IP address. */ + if (pp == NULL) { + size = sizeof(iporhost); + if (strlcpy(iporhost, addr, size) >= size) + return (ENAMETOOLONG); + } else if (addr[0] == '[' && pp[-1] == ']') { + size = (size_t)(pp - addr - 2 + 1); + if (size > sizeof(iporhost)) + return (ENAMETOOLONG); + (void)strlcpy(iporhost, addr + 1, size); + } else { + size = (size_t)(pp - addr + 1); + if (size > sizeof(iporhost)) + return (ENAMETOOLONG); + (void)strlcpy(iporhost, addr, size); + } + + error = getaddrinfo(iporhost, portstr, &hints, &res); + if (error != 0) { + pjdlog_debug(1, "getaddrinfo(%s, %s) failed: %s.", iporhost, + portstr, gai_strerror(error)); + return (EINVAL); + } + if (res == NULL) + return (ENOENT); + + memcpy(sap, res->ai_addr, res->ai_addrlen); + + freeaddrinfo(res); + + return (0); +} + +static int +tcp_setup_new(const char *addr, int side, void **ctxp) +{ + struct tcp_ctx *tctx; + int ret, nodelay; + + PJDLOG_ASSERT(addr != NULL); + PJDLOG_ASSERT(side == TCP_SIDE_CLIENT || + side == TCP_SIDE_SERVER_LISTEN); + PJDLOG_ASSERT(ctxp != NULL); + + tctx = malloc(sizeof(*tctx)); + if (tctx == NULL) + return (errno); + + /* Parse given address. */ + if ((ret = tcp_addr(addr, PROTO_TCP_DEFAULT_PORT, &tctx->tc_sa)) != 0) { + free(tctx); + return (ret); + } + + PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC); + + tctx->tc_fd = socket(tctx->tc_sa.ss_family, SOCK_STREAM, 0); + if (tctx->tc_fd == -1) { + ret = errno; + free(tctx); + return (ret); + } + + PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC); + + /* Socket settings. */ + nodelay = 1; + if (setsockopt(tctx->tc_fd, IPPROTO_TCP, TCP_NODELAY, &nodelay, + sizeof(nodelay)) == -1) { + pjdlog_errno(LOG_WARNING, "Unable to set TCP_NOELAY"); + } + + tctx->tc_side = side; + tctx->tc_magic = TCP_CTX_MAGIC; + *ctxp = tctx; + + return (0); +} + +static int +tcp_setup_wrap(int fd, int side, void **ctxp) +{ + struct tcp_ctx *tctx; + + PJDLOG_ASSERT(fd >= 0); + PJDLOG_ASSERT(side == TCP_SIDE_CLIENT || + side == TCP_SIDE_SERVER_WORK); + PJDLOG_ASSERT(ctxp != NULL); + + tctx = malloc(sizeof(*tctx)); + if (tctx == NULL) + return (errno); + + tctx->tc_fd = fd; + tctx->tc_sa.ss_family = AF_UNSPEC; + tctx->tc_side = side; + tctx->tc_magic = TCP_CTX_MAGIC; + *ctxp = tctx; + + return (0); +} + +static int +tcp_client(const char *srcaddr, const char *dstaddr, void **ctxp) +{ + struct tcp_ctx *tctx; + struct sockaddr_storage sa; + int ret; + + ret = tcp_setup_new(dstaddr, TCP_SIDE_CLIENT, ctxp); + if (ret != 0) + return (ret); + tctx = *ctxp; + if (srcaddr == NULL) + return (0); + ret = tcp_addr(srcaddr, 0, &sa); + if (ret != 0) { + tcp_close(tctx); + return (ret); + } + if (bind(tctx->tc_fd, (struct sockaddr *)&sa, sa.ss_len) < 0) { + ret = errno; + tcp_close(tctx); + return (ret); + } + return (0); +} + +static int +tcp_connect(void *ctx, int timeout) +{ + struct tcp_ctx *tctx = ctx; + int error, flags; + + PJDLOG_ASSERT(tctx != NULL); + PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC); + PJDLOG_ASSERT(tctx->tc_side == TCP_SIDE_CLIENT); + PJDLOG_ASSERT(tctx->tc_fd >= 0); + PJDLOG_ASSERT(tctx->tc_sa.ss_family != AF_UNSPEC); + PJDLOG_ASSERT(timeout >= -1); + + flags = fcntl(tctx->tc_fd, F_GETFL); + if (flags == -1) { + KEEP_ERRNO(pjdlog_common(LOG_DEBUG, 1, errno, + "fcntl(F_GETFL) failed")); + return (errno); + } + /* + * We make socket non-blocking so we can handle connection timeout + * manually. + */ + flags |= O_NONBLOCK; + if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) { + KEEP_ERRNO(pjdlog_common(LOG_DEBUG, 1, errno, + "fcntl(F_SETFL, O_NONBLOCK) failed")); + return (errno); + } + + if (connect(tctx->tc_fd, (struct sockaddr *)&tctx->tc_sa, + tctx->tc_sa.ss_len) == 0) { + if (timeout == -1) + return (0); + error = 0; + goto done; + } + if (errno != EINPROGRESS) { + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, "connect() failed"); + goto done; + } + if (timeout == -1) + return (0); + return (tcp_connect_wait(ctx, timeout)); +done: + flags &= ~O_NONBLOCK; + if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) { + if (error == 0) + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, + "fcntl(F_SETFL, ~O_NONBLOCK) failed"); + } + return (error); +} + +static int +tcp_connect_wait(void *ctx, int timeout) +{ + struct tcp_ctx *tctx = ctx; + struct timeval tv; + fd_set fdset; + socklen_t esize; + int error, flags, ret; + + PJDLOG_ASSERT(tctx != NULL); + PJDLOG_ASSERT(tctx->tc_magic == TCP_CTX_MAGIC); + PJDLOG_ASSERT(tctx->tc_side == TCP_SIDE_CLIENT); + PJDLOG_ASSERT(tctx->tc_fd >= 0); + PJDLOG_ASSERT(timeout >= 0); + + tv.tv_sec = timeout; + tv.tv_usec = 0; +again: + FD_ZERO(&fdset); + FD_SET(tctx->tc_fd, &fdset); + ret = select(tctx->tc_fd + 1, NULL, &fdset, NULL, &tv); + if (ret == 0) { + error = ETIMEDOUT; + goto done; + } else if (ret == -1) { + if (errno == EINTR) + goto again; + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, "select() failed"); + goto done; + } + PJDLOG_ASSERT(ret > 0); + PJDLOG_ASSERT(FD_ISSET(tctx->tc_fd, &fdset)); + esize = sizeof(error); + if (getsockopt(tctx->tc_fd, SOL_SOCKET, SO_ERROR, &error, + &esize) == -1) { + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, + "getsockopt(SO_ERROR) failed"); + goto done; + } + if (error != 0) { + pjdlog_common(LOG_DEBUG, 1, error, + "getsockopt(SO_ERROR) returned error"); + goto done; + } + error = 0; +done: + flags = fcntl(tctx->tc_fd, F_GETFL); + if (flags == -1) { + if (error == 0) + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, "fcntl(F_GETFL) failed"); + return (error); + } + flags &= ~O_NONBLOCK; + if (fcntl(tctx->tc_fd, F_SETFL, flags) == -1) { + if (error == 0) + error = errno; + pjdlog_common(LOG_DEBUG, 1, errno, + "fcntl(F_SETFL, ~O_NONBLOCK) failed"); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat May 21 01:44:14 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06936106564A; Sat, 21 May 2011 01:44:14 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E78958FC13; Sat, 21 May 2011 01:44:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4L1iDXF009375; Sat, 21 May 2011 01:44:13 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4L1iDMT009353; Sat, 21 May 2011 01:44:13 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105210144.p4L1iDMT009353@svn.freebsd.org> From: Attilio Rao Date: Sat, 21 May 2011 01:44:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222156 - in projects/largeSMP: bin/sh contrib/top share/man/man4 share/mk sys/dev/atkbdc sys/dev/gem sys/dev/vge sys/net sys/netinet sys/netinet6 sys/vm tools/regression/bin/sh/builtin... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sat, 21 May 2011 01:44:14 -0000 Author: attilio Date: Sat May 21 01:44:13 2011 New Revision: 222156 URL: http://svn.freebsd.org/changeset/base/222156 Log: MFC Added: projects/largeSMP/tools/regression/bin/sh/builtins/cd3.0 - copied unchanged from r222155, head/tools/regression/bin/sh/builtins/cd3.0 projects/largeSMP/tools/regression/bin/sh/builtins/cd4.0 - copied unchanged from r222155, head/tools/regression/bin/sh/builtins/cd4.0 projects/largeSMP/tools/regression/bin/sh/parser/heredoc11.0 - copied unchanged from r222155, head/tools/regression/bin/sh/parser/heredoc11.0 Modified: projects/largeSMP/bin/sh/cd.c projects/largeSMP/bin/sh/parser.c projects/largeSMP/bin/sh/sh.1 projects/largeSMP/share/man/man4/atkbd.4 projects/largeSMP/sys/dev/atkbdc/atkbd.c projects/largeSMP/sys/dev/atkbdc/atkbdreg.h projects/largeSMP/sys/dev/gem/if_gem.c projects/largeSMP/sys/dev/vge/if_vge.c projects/largeSMP/sys/net/if_llatbl.c projects/largeSMP/sys/net/if_llatbl.h projects/largeSMP/sys/netinet/in.c projects/largeSMP/sys/netinet/in_var.h projects/largeSMP/sys/netinet/raw_ip.c projects/largeSMP/sys/netinet6/in6.c projects/largeSMP/sys/vm/uma_int.h projects/largeSMP/usr.bin/top/machine.c projects/largeSMP/usr.sbin/tzsetup/tzsetup.8 projects/largeSMP/usr.sbin/tzsetup/tzsetup.c Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) Modified: projects/largeSMP/bin/sh/cd.c ============================================================================== --- projects/largeSMP/bin/sh/cd.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/bin/sh/cd.c Sat May 21 01:44:13 2011 (r222156) @@ -84,12 +84,16 @@ cdcmd(int argc, char **argv) const char *path; char *p; struct stat statb; - int ch, phys, print = 0; + int ch, phys, print = 0, getcwderr = 0; + int rc; optreset = 1; optind = 1; opterr = 0; /* initialize getopt */ phys = Pflag; - while ((ch = getopt(argc, argv, "LP")) != -1) { + while ((ch = getopt(argc, argv, "eLP")) != -1) { switch (ch) { + case 'e': + getcwderr = 1; + break; case 'L': phys = 0; break; @@ -131,8 +135,9 @@ cdcmd(int argc, char **argv) else print = strcmp(p, dest); } - if (docd(p, print, phys) >= 0) - return 0; + rc = docd(p, print, phys); + if (rc >= 0) + return getcwderr ? rc : 0; } } error("can't cd to %s", dest); @@ -148,17 +153,18 @@ cdcmd(int argc, char **argv) static int docd(char *dest, int print, int phys) { + int rc; TRACE(("docd(\"%s\", %d, %d) called\n", dest, print, phys)); /* If logical cd fails, fall back to physical. */ - if ((phys || cdlogical(dest) < 0) && cdphysical(dest) < 0) + if ((phys || (rc = cdlogical(dest)) < 0) && (rc = cdphysical(dest)) < 0) return (-1); if (print && iflag && curdir) out1fmt("%s\n", curdir); - return 0; + return (rc); } static int @@ -216,6 +222,7 @@ static int cdphysical(char *dest) { char *p; + int rc = 0; INTOFF; if (chdir(dest) < 0) { @@ -223,11 +230,13 @@ cdphysical(char *dest) return (-1); } p = findcwd(NULL); - if (p == NULL) + if (p == NULL) { warning("warning: failed to get name of current directory"); + rc = 1; + } updatepwd(p); INTON; - return (0); + return (rc); } /* Modified: projects/largeSMP/bin/sh/parser.c ============================================================================== --- projects/largeSMP/bin/sh/parser.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/bin/sh/parser.c Sat May 21 01:44:13 2011 (r222156) @@ -1513,10 +1513,12 @@ checkend: { p = line; for (q = eofmark + 1 ; *q && *p == *q ; p++, q++); - if (*p == '\n' && *q == '\0') { + if ((*p == '\0' || *p == '\n') && *q == '\0') { c = PEOF; - plinno++; - needprompt = doprompt; + if (*p == '\n') { + plinno++; + needprompt = doprompt; + } } else { pushstring(line, strlen(line), NULL); } Modified: projects/largeSMP/bin/sh/sh.1 ============================================================================== --- projects/largeSMP/bin/sh/sh.1 Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/bin/sh/sh.1 Sat May 21 01:44:13 2011 (r222156) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd May 8, 2011 +.Dd May 20, 2011 .Dt SH 1 .Os .Sh NAME @@ -1729,7 +1729,7 @@ Execute the specified built-in command, .Ar cmd . This is useful when the user wishes to override a shell function with the same name as a built-in command. -.It Ic cd Oo Fl L | P Oc Op Ar directory +.It Ic cd Oo Fl L | P Oc Oo Fl e Oc Op Ar directory Switch to the specified .Ar directory , or to the directory specified in the @@ -1778,6 +1778,15 @@ option is specified, .Pa .. is handled logically. This is the default. +.Pp +The +.Fl e +option causes +.Ic cd +to return exit status 1 if the full pathname of the new directory +cannot be determined reliably or at all. +Normally this is not considered an error, +although a warning is printed. .It Ic chdir A synonym for the .Ic cd Modified: projects/largeSMP/share/man/man4/atkbd.4 ============================================================================== --- projects/largeSMP/share/man/man4/atkbd.4 Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/share/man/man4/atkbd.4 Sat May 21 01:44:13 2011 (r222156) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 29, 2008 +.Dd May 20, 2011 .Dt ATKBD 4 .Os .Sh NAME @@ -176,6 +176,11 @@ When this option is given, the .Nm driver will not test the keyboard port during the probe routine. Some machines hang during boot when this test is performed. +.It bit 4 (PROBE_TYPEMATIC) +When this option is given, the +.Nm +driver will try to probe the keyboard typematic rate on boot. +Some machines hang during boot when this test is performed. .El .\".Sh FILES .Sh EXAMPLES Modified: projects/largeSMP/sys/dev/atkbdc/atkbd.c ============================================================================== --- projects/largeSMP/sys/dev/atkbdc/atkbd.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/dev/atkbdc/atkbd.c Sat May 21 01:44:13 2011 (r222156) @@ -1097,6 +1097,9 @@ get_typematic(keyboard_t *kbd) x86regs_t regs; uint8_t *p; + if (!(kbd->kb_config & KB_CONF_PROBE_TYPEMATIC)) + return (ENODEV); + if (x86bios_get_intr(0x15) == 0 || x86bios_get_intr(0x16) == 0) return (ENODEV); Modified: projects/largeSMP/sys/dev/atkbdc/atkbdreg.h ============================================================================== --- projects/largeSMP/sys/dev/atkbdc/atkbdreg.h Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/dev/atkbdc/atkbdreg.h Sat May 21 01:44:13 2011 (r222156) @@ -36,6 +36,7 @@ #define KB_CONF_NO_RESET (1 << 1) /* don't reset the keyboard */ #define KB_CONF_ALT_SCANCODESET (1 << 2) /* assume the XT type keyboard */ #define KB_CONF_NO_PROBE_TEST (1 << 3) /* don't test keyboard during probe */ +#define KB_CONF_PROBE_TYPEMATIC (1 << 4) /* probe keyboard typematic */ #ifdef _KERNEL Modified: projects/largeSMP/sys/dev/gem/if_gem.c ============================================================================== --- projects/largeSMP/sys/dev/gem/if_gem.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/dev/gem/if_gem.c Sat May 21 01:44:13 2011 (r222156) @@ -739,8 +739,10 @@ gem_reset_rxdma(struct gem_softc *sc) { int i; - if (gem_reset_rx(sc) != 0) + if (gem_reset_rx(sc) != 0) { + sc->sc_ifp->if_drv_flags &= ~IFF_DRV_RUNNING; return (gem_init_locked(sc)); + } for (i = 0; i < GEM_NRXDESC; i++) if (sc->sc_rxsoft[i].rxs_mbuf != NULL) GEM_UPDATE_RXDESC(sc, i); @@ -924,6 +926,9 @@ gem_init_locked(struct gem_softc *sc) GEM_LOCK_ASSERT(sc, MA_OWNED); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) + return; + #ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: %s: calling stop", device_get_name(sc->sc_dev), __func__); @@ -1762,6 +1767,7 @@ gem_intr(void *v) if ((status2 & (GEM_MAC_TX_UNDERRUN | GEM_MAC_TX_PKT_TOO_LONG)) != 0) { sc->sc_ifp->if_oerrors++; + sc->sc_ifp->if_drv_flags &= ~IFF_DRV_RUNNING; gem_init_locked(sc); } } @@ -1814,6 +1820,7 @@ gem_watchdog(struct gem_softc *sc) ++ifp->if_oerrors; /* Try to get more packets going. */ + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; gem_init_locked(sc); gem_start_locked(ifp); return (EJUSTRETURN); Modified: projects/largeSMP/sys/dev/vge/if_vge.c ============================================================================== --- projects/largeSMP/sys/dev/vge/if_vge.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/dev/vge/if_vge.c Sat May 21 01:44:13 2011 (r222156) @@ -685,7 +685,18 @@ vge_dma_alloc(struct vge_softc *sc) bus_addr_t lowaddr, tx_ring_end, rx_ring_end; int error, i; - lowaddr = BUS_SPACE_MAXADDR; + /* + * It seems old PCI controllers do not support DAC. DAC + * configuration can be enabled by accessing VGE_CHIPCFG3 + * register but honor EEPROM configuration instead of + * blindly overriding DAC configuration. PCIe based + * controllers are supposed to support 64bit DMA so enable + * 64bit DMA on these controllers. + */ + if ((sc->vge_flags & VGE_FLAG_PCIE) != 0) + lowaddr = BUS_SPACE_MAXADDR; + else + lowaddr = BUS_SPACE_MAXADDR_32BIT; again: /* Create parent ring tag. */ @@ -802,10 +813,14 @@ again: goto again; } + if ((sc->vge_flags & VGE_FLAG_PCIE) != 0) + lowaddr = VGE_BUF_DMA_MAXADDR; + else + lowaddr = BUS_SPACE_MAXADDR_32BIT; /* Create parent buffer tag. */ error = bus_dma_tag_create(bus_get_dma_tag(sc->vge_dev),/* parent */ 1, 0, /* algnmnt, boundary */ - VGE_BUF_DMA_MAXADDR, /* lowaddr */ + lowaddr, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ BUS_SPACE_MAXSIZE_32BIT, /* maxsize */ Modified: projects/largeSMP/sys/net/if_llatbl.c ============================================================================== --- projects/largeSMP/sys/net/if_llatbl.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/net/if_llatbl.c Sat May 21 01:44:13 2011 (r222156) @@ -228,7 +228,8 @@ lltable_drain(int af) #endif void -lltable_prefix_free(int af, struct sockaddr *prefix, struct sockaddr *mask) +lltable_prefix_free(int af, struct sockaddr *prefix, struct sockaddr *mask, + u_int flags) { struct lltable *llt; @@ -237,7 +238,7 @@ lltable_prefix_free(int af, struct socka if (llt->llt_af != af) continue; - llt->llt_prefix_free(llt, prefix, mask); + llt->llt_prefix_free(llt, prefix, mask, flags); } LLTABLE_RUNLOCK(); } Modified: projects/largeSMP/sys/net/if_llatbl.h ============================================================================== --- projects/largeSMP/sys/net/if_llatbl.h Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/net/if_llatbl.h Sat May 21 01:44:13 2011 (r222156) @@ -155,7 +155,8 @@ struct lltable { void (*llt_free)(struct lltable *, struct llentry *); void (*llt_prefix_free)(struct lltable *, const struct sockaddr *prefix, - const struct sockaddr *mask); + const struct sockaddr *mask, + u_int flags); struct llentry * (*llt_lookup)(struct lltable *, u_int flags, const struct sockaddr *l3addr); int (*llt_rtcheck)(struct ifnet *, u_int flags, @@ -184,7 +185,7 @@ MALLOC_DECLARE(M_LLTABLE); struct lltable *lltable_init(struct ifnet *, int); void lltable_free(struct lltable *); void lltable_prefix_free(int, struct sockaddr *, - struct sockaddr *); + struct sockaddr *, u_int); #if 0 void lltable_drain(int); #endif Modified: projects/largeSMP/sys/netinet/in.c ============================================================================== --- projects/largeSMP/sys/netinet/in.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/netinet/in.c Sat May 21 01:44:13 2011 (r222156) @@ -70,7 +70,7 @@ static int in_lifaddr_ioctl(struct socke struct ifnet *, struct thread *); static int in_addprefix(struct in_ifaddr *, int); -static int in_scrubprefix(struct in_ifaddr *); +static int in_scrubprefix(struct in_ifaddr *, u_int); static void in_socktrim(struct sockaddr_in *); static int in_ifinit(struct ifnet *, struct in_ifaddr *, struct sockaddr_in *, int); @@ -548,7 +548,7 @@ in_control(struct socket *so, u_long cmd * is the same as before, then the call is * un-necessarily executed here. */ - in_ifscrub(ifp, ia); + in_ifscrub(ifp, ia, 0); ia->ia_sockmask = ifra->ifra_mask; ia->ia_sockmask.sin_family = AF_INET; ia->ia_subnetmask = @@ -557,7 +557,7 @@ in_control(struct socket *so, u_long cmd } if ((ifp->if_flags & IFF_POINTOPOINT) && (ifra->ifra_dstaddr.sin_family == AF_INET)) { - in_ifscrub(ifp, ia); + in_ifscrub(ifp, ia, 0); ia->ia_dstaddr = ifra->ifra_dstaddr; maskIsNew = 1; /* We lie; but the effect's the same */ } @@ -585,7 +585,7 @@ in_control(struct socket *so, u_long cmd /* * in_ifscrub kills the interface route. */ - in_ifscrub(ifp, ia); + in_ifscrub(ifp, ia, LLE_STATIC); /* * in_ifadown gets rid of all the rest of @@ -829,10 +829,10 @@ in_lifaddr_ioctl(struct socket *so, u_lo * Delete any existing route for an interface. */ void -in_ifscrub(struct ifnet *ifp, struct in_ifaddr *ia) +in_ifscrub(struct ifnet *ifp, struct in_ifaddr *ia, u_int flags) { - in_scrubprefix(ia); + in_scrubprefix(ia, flags); } /* @@ -887,7 +887,7 @@ in_ifinit(struct ifnet *ifp, struct in_i splx(s); if (scrub) { ia->ia_ifa.ifa_addr = (struct sockaddr *)&oldaddr; - in_ifscrub(ifp, ia); + in_ifscrub(ifp, ia, LLE_STATIC); ia->ia_ifa.ifa_addr = (struct sockaddr *)&ia->ia_addr; } if (IN_CLASSA(i)) @@ -1095,7 +1095,7 @@ extern void arp_ifscrub(struct ifnet *if * otherwise. */ static int -in_scrubprefix(struct in_ifaddr *target) +in_scrubprefix(struct in_ifaddr *target, u_int flags) { struct in_ifaddr *ia; struct in_addr prefix, mask, p; @@ -1130,13 +1130,15 @@ in_scrubprefix(struct in_ifaddr *target) RT_REMREF(ia_ro.ro_rt); RTFREE_LOCKED(ia_ro.ro_rt); } - if (freeit) + if (freeit && (flags & LLE_STATIC)) { error = ifa_del_loopback_route((struct ifaddr *)target, (struct sockaddr *)&target->ia_addr); - if (error == 0) - target->ia_flags &= ~IFA_RTSELF; - /* remove arp cache */ - arp_ifscrub(target->ia_ifp, IA_SIN(target)->sin_addr.s_addr); + if (error == 0) + target->ia_flags &= ~IFA_RTSELF; + } + if (flags & LLE_STATIC) + /* remove arp cache */ + arp_ifscrub(target->ia_ifp, IA_SIN(target)->sin_addr.s_addr); } if (rtinitflags(target)) @@ -1203,7 +1205,7 @@ in_scrubprefix(struct in_ifaddr *target) mask0.sin_family = AF_INET; mask0.sin_addr.s_addr = target->ia_subnetmask; lltable_prefix_free(AF_INET, (struct sockaddr *)&prefix0, - (struct sockaddr *)&mask0); + (struct sockaddr *)&mask0, flags); /* * As no-one seem to have this prefix, we can remove the route. @@ -1362,7 +1364,8 @@ in_lltable_free(struct lltable *llt, str static void in_lltable_prefix_free(struct lltable *llt, const struct sockaddr *prefix, - const struct sockaddr *mask) + const struct sockaddr *mask, + u_int flags) { const struct sockaddr_in *pfx = (const struct sockaddr_in *)prefix; const struct sockaddr_in *msk = (const struct sockaddr_in *)mask; @@ -1373,8 +1376,13 @@ in_lltable_prefix_free(struct lltable *l for (i=0; i < LLTBL_HASHTBL_SIZE; i++) { LIST_FOREACH_SAFE(lle, &llt->lle_head[i], lle_next, next) { + /* + * (flags & LLE_STATIC) means deleting all entries + * including static ARP entries + */ if (IN_ARE_MASKED_ADDR_EQUAL((struct sockaddr_in *)L3_ADDR(lle), - pfx, msk)) { + pfx, msk) && + ((flags & LLE_STATIC) || !(lle->la_flags & LLE_STATIC))) { int canceled; canceled = callout_drain(&lle->la_timer); Modified: projects/largeSMP/sys/netinet/in_var.h ============================================================================== --- projects/largeSMP/sys/netinet/in_var.h Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/netinet/in_var.h Sat May 21 01:44:13 2011 (r222156) @@ -447,7 +447,7 @@ int in_control(struct socket *, u_long, void in_rtqdrain(void); void ip_input(struct mbuf *); int in_ifadown(struct ifaddr *ifa, int); -void in_ifscrub(struct ifnet *, struct in_ifaddr *); +void in_ifscrub(struct ifnet *, struct in_ifaddr *, u_int); struct mbuf *ip_fastforward(struct mbuf *); void *in_domifattach(struct ifnet *); void in_domifdetach(struct ifnet *, void *); Modified: projects/largeSMP/sys/netinet/raw_ip.c ============================================================================== --- projects/largeSMP/sys/netinet/raw_ip.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/netinet/raw_ip.c Sat May 21 01:44:13 2011 (r222156) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -721,7 +722,7 @@ rip_ctlinput(int cmd, struct sockaddr *s /* * in_ifscrub kills the interface route. */ - in_ifscrub(ia->ia_ifp, ia); + in_ifscrub(ia->ia_ifp, ia, 0); /* * in_ifadown gets rid of all the rest of the * routes. This is not quite the right thing @@ -756,12 +757,18 @@ rip_ctlinput(int cmd, struct sockaddr *s || (ifp->if_flags & IFF_POINTOPOINT)) flags |= RTF_HOST; + err = ifa_del_loopback_route((struct ifaddr *)ia, sa); + if (err == 0) + ia->ia_flags &= ~IFA_RTSELF; + err = rtinit(&ia->ia_ifa, RTM_ADD, flags); if (err == 0) ia->ia_flags |= IFA_ROUTE; + err = ifa_add_loopback_route((struct ifaddr *)ia, sa); if (err == 0) ia->ia_flags |= IFA_RTSELF; + ifa_free(&ia->ia_ifa); break; } Modified: projects/largeSMP/sys/netinet6/in6.c ============================================================================== --- projects/largeSMP/sys/netinet6/in6.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/netinet6/in6.c Sat May 21 01:44:13 2011 (r222156) @@ -2376,19 +2376,25 @@ in6_lltable_free(struct lltable *llt, st static void in6_lltable_prefix_free(struct lltable *llt, const struct sockaddr *prefix, - const struct sockaddr *mask) + const struct sockaddr *mask, + u_int flags) { const struct sockaddr_in6 *pfx = (const struct sockaddr_in6 *)prefix; const struct sockaddr_in6 *msk = (const struct sockaddr_in6 *)mask; struct llentry *lle, *next; register int i; + /* + * (flags & LLE_STATIC) means deleting all entries + * including static ND6 entries + */ for (i=0; i < LLTBL_HASHTBL_SIZE; i++) { LIST_FOREACH_SAFE(lle, &llt->lle_head[i], lle_next, next) { if (IN6_ARE_MASKED_ADDR_EQUAL( &((struct sockaddr_in6 *)L3_ADDR(lle))->sin6_addr, &pfx->sin6_addr, - &msk->sin6_addr)) { + &msk->sin6_addr) && + ((flags & LLE_STATIC) || !(lle->la_flags & LLE_STATIC))) { int canceled; canceled = callout_drain(&lle->la_timer); Modified: projects/largeSMP/sys/vm/uma_int.h ============================================================================== --- projects/largeSMP/sys/vm/uma_int.h Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/sys/vm/uma_int.h Sat May 21 01:44:13 2011 (r222156) @@ -45,7 +45,7 @@ * * The uma_slab_t may be embedded in a UMA_SLAB_SIZE chunk of memory or it may * be allocated off the page from a special slab zone. The free list within a - * slab is managed with a linked list of indexes, which are 8 bit values. If + * slab is managed with a linked list of indices, which are 8 bit values. If * UMA_SLAB_SIZE is defined to be too large I will have to switch to 16bit * values. Currently on alpha you can get 250 or so 32 byte items and on x86 * you can get 250 or so 16byte items. For item sizes that would yield more @@ -56,9 +56,9 @@ * wasted between items due to alignment problems. This may yield a much better * memory footprint for certain sizes of objects. Another alternative is to * increase the UMA_SLAB_SIZE, or allow for dynamic slab sizes. I prefer - * dynamic slab sizes because we could stick with 8 bit indexes and only use + * dynamic slab sizes because we could stick with 8 bit indices and only use * large slab sizes for zones with a lot of waste per slab. This may create - * ineffeciencies in the vm subsystem due to fragmentation in the address space. + * inefficiencies in the vm subsystem due to fragmentation in the address space. * * The only really gross cases, with regards to memory waste, are for those * items that are just over half the page size. You can get nearly 50% waste, Copied: projects/largeSMP/tools/regression/bin/sh/builtins/cd3.0 (from r222155, head/tools/regression/bin/sh/builtins/cd3.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/tools/regression/bin/sh/builtins/cd3.0 Sat May 21 01:44:13 2011 (r222156, copy of r222155, head/tools/regression/bin/sh/builtins/cd3.0) @@ -0,0 +1,21 @@ +# $FreeBSD$ + +# If fully successful, cd -Pe must be like cd -P. + +set -e + +cd "${TMPDIR:-/tmp}" +cd -Pe / +[ "$PWD" = / ] +[ "$(pwd)" = / ] +cd "${TMPDIR:-/tmp}" +cd -eP / +[ "$PWD" = / ] +[ "$(pwd)" = / ] + +set +e + +# If cd -Pe cannot chdir, the exit status must be greater than 1. + +v=$( (cd -Pe /var/empty/nonexistent) 2>&1 >/dev/null) +[ $? -gt 1 ] && [ -n "$v" ] Copied: projects/largeSMP/tools/regression/bin/sh/builtins/cd4.0 (from r222155, head/tools/regression/bin/sh/builtins/cd4.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/tools/regression/bin/sh/builtins/cd4.0 Sat May 21 01:44:13 2011 (r222156, copy of r222155, head/tools/regression/bin/sh/builtins/cd4.0) @@ -0,0 +1,38 @@ +# $FreeBSD$ + +# This test assumes that whatever mechanism cd -P uses to determine the +# pathname to the current directory if it is longer than PATH_MAX requires +# read permission on all parent directories. It also works if this +# requirement always applies. + +set -e +L=$(getconf PATH_MAX / 2>/dev/null) || L=4096 +[ "$L" -lt 100000 ] 2>/dev/null || L=4096 +L=$((L+100)) +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +trap 'chmod u+r ${T}; rm -rf ${T}' 0 +cd -Pe $T +D=$(pwd) +chmod u-r "$D" +if [ -r "$D" ]; then + # Running as root, cannot test. + exit 0 +fi +set +e +while [ ${#D} -lt $L ]; do + mkdir veryverylongdirectoryname || exit + cd -Pe veryverylongdirectoryname 2>/dev/null + r=$? + [ $r -gt 1 ] && exit $r + if [ $r -eq 1 ]; then + # Verify that the directory was changed correctly. + cd -Pe .. || exit + [ "$(pwd)" = "$D" ] || exit + # Verify that omitting -e results in success. + cd -P veryverylongdirectoryname 2>/dev/null || exit + exit 0 + fi + D=$D/veryverylongdirectoryname +done +echo "cd -Pe never returned 1" +exit 0 Copied: projects/largeSMP/tools/regression/bin/sh/parser/heredoc11.0 (from r222155, head/tools/regression/bin/sh/parser/heredoc11.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/largeSMP/tools/regression/bin/sh/parser/heredoc11.0 Sat May 21 01:44:13 2011 (r222156, copy of r222155, head/tools/regression/bin/sh/parser/heredoc11.0) @@ -0,0 +1,26 @@ +# $FreeBSD$ + +failures='' + +check() { + if eval "[ $* ]"; then + : + else + echo "Failed: $*" + failures=x$failures + fi +} + +check '`cat < #include +#include #include #include #include Modified: projects/largeSMP/usr.sbin/tzsetup/tzsetup.8 ============================================================================== --- projects/largeSMP/usr.sbin/tzsetup/tzsetup.8 Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/usr.sbin/tzsetup/tzsetup.8 Sat May 21 01:44:13 2011 (r222156) @@ -23,7 +23,8 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd July 4, 2009 +.\" +.Dd October 21, 2009 .Dt TZSETUP 8 .Os .Sh NAME @@ -32,8 +33,8 @@ .Sh SYNOPSIS .Nm .Op Fl nrs -.Op Fl C Ar chroot directory -.Op Ar zoneinfo file | zoneinfo name +.Op Fl C Ar chroot_directory +.Op Ar zoneinfo_file | zoneinfo_name .Sh DESCRIPTION The .Nm @@ -50,24 +51,25 @@ the hardware clock does not keep .Pp The following option is available: .Bl -tag -offset indent -width Fl -.It Fl C Ar chroot directory +.It Fl C Ar chroot_directory Open all files and directories relative to -.Ar chroot directory . +.Ar chroot_directory . .It Fl n Do not create or copy files. .It Fl r -Reinstall the zoneinfo file installed last time. The name is obtained from +Reinstall the zoneinfo file installed last time. +The name is obtained from .Pa /var/db/zoneinfo . -.It Fl s +.It Fl s Skip the initial question about adjusting the clock if not set to .Tn UTC . .El .Pp It is possible to short-circuit the menu system by specifying the location of a -.Ar zoneinfo file +.Ar zoneinfo_file or the name of the -.Ar zoneinfo name +.Ar zoneinfo_name on the command line; this is intended mainly for pre-configured installation scripts or people who know which zoneinfo they want to install. .Sh TIMEZONE DATABASE @@ -101,38 +103,41 @@ The source code to the database contains many additional comments and documentation references for the historically minded. .Sh FILES -.Bl -tag -width /usr/share/zoneinfo/zone.tab -compact +.Bl -tag -width ".Pa /usr/share/zoneinfo/zone.tab" -compact .It Pa /etc/localtime -current time zone file. +current time zone file .It Pa /etc/wall_cmos_clock see -.Xr adjkerntz 8 . +.Xr adjkerntz 8 .It Pa /usr/share/misc/iso3166 mapping of .Tn ISO -3166 territory codes to names. +3166 territory codes to names .It Pa /usr/share/zoneinfo -directory for zoneinfo files. +directory for zoneinfo files .It Pa /usr/share/zoneinfo/zone.tab -mapping of timezone file to country and location. +mapping of timezone file to country and location .It Pa /var/db/zoneinfo -saved name of the timezone file installed last. +saved name of the timezone file installed last .El .Sh EXAMPLES Normal usage, to select the right zoneinfo file via the dialog-based user interface: -.Dl # tzsetup +.Dl tzsetup +.Pp Install the file .Pa /usr/share/zoneinfo/Australia/Sydney : -.Dl # tzsetup /usr/share/zoneinfo/Australia/Sydney +.Dl "tzsetup /usr/share/zoneinfo/Australia/Sydney" +.Pp Install the zoneinfo file for Australia/Sydney, assumed to be located in .Pa /usr/share/zoneinfo : -.Dl # tzsetup Australia/Sydney +.Dl "tzsetup Australia/Sydney" +.Pp After a reinstall of the zoneinfo files, you can reinstall the -latest installed zoneinfo file: (as specified in -.Pa /var/db/zoneinfo ) -.Dl # tzsetup -r +latest installed zoneinfo file (as specified in +.Pa /var/db/zoneinfo ) : +.Dl "tzsetup -r" .Sh SEE ALSO .Xr date 1 , .Xr adjtime 2 , Modified: projects/largeSMP/usr.sbin/tzsetup/tzsetup.c ============================================================================== --- projects/largeSMP/usr.sbin/tzsetup/tzsetup.c Sat May 21 00:38:43 2011 (r222155) +++ projects/largeSMP/usr.sbin/tzsetup/tzsetup.c Sat May 21 01:44:13 2011 (r222156) @@ -731,7 +731,8 @@ static void usage(void) { - fprintf(stderr, "usage: tzsetup [-nrs] [zoneinfo file]\n"); + fprintf(stderr, "usage: tzsetup [-nrs] [-C chroot_directory]" + " [zoneinfo_file | zoneinfo_name]\n"); exit(1); } From owner-svn-src-projects@FreeBSD.ORG Sat May 21 22:53:57 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 38D951065670; Sat, 21 May 2011 22:53:57 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 297338FC08; Sat, 21 May 2011 22:53:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4LMrviV048690; Sat, 21 May 2011 22:53:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4LMrv5S048688; Sat, 21 May 2011 22:53:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105212253.p4LMrv5S048688@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 21 May 2011 22:53:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r222166 - projects/pseries/powerpc/ofw X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 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: Sat, 21 May 2011 22:53:57 -0000 Author: nwhitehorn Date: Sat May 21 22:53:56 2011 New Revision: 222166 URL: http://svn.freebsd.org/changeset/base/222166 Log: Remove a (likely) obsolete comment about RTAS. Modified: projects/pseries/powerpc/ofw/ofw_machdep.c Modified: projects/pseries/powerpc/ofw/ofw_machdep.c ============================================================================== --- projects/pseries/powerpc/ofw/ofw_machdep.c Sat May 21 22:03:06 2011 (r222165) +++ projects/pseries/powerpc/ofw/ofw_machdep.c Sat May 21 22:53:56 2011 (r222166) @@ -368,10 +368,6 @@ OF_bootstrap() * background processes. */ ofw_quiesce(); - - /* - * If available, we need to instantiate RTAS. - */ } else if (fdt != NULL) { status = OF_install(OFW_FDT, 0);