Date: Tue, 28 Jun 2011 21:21:11 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r223656 - in projects/altix: lib/libstand sys/amd64/conf sys/amd64/ia32 sys/amd64/include sys/amd64/pci sys/arm/at91 sys/arm/conf sys/arm/sa11x0 sys/boot sys/boot/common sys/boot/forth ... Message-ID: <201106282121.p5SLLBFC066044@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marcel Date: Tue Jun 28 21:21:10 2011 New Revision: 223656 URL: http://svn.freebsd.org/changeset/base/223656 Log: Sync with head@223653 Added: projects/altix/sys/contrib/pf/net/if_pflow.h - copied unchanged from r223653, head/sys/contrib/pf/net/if_pflow.h projects/altix/sys/contrib/pf/net/pf_lb.c - copied unchanged from r223653, head/sys/contrib/pf/net/pf_lb.c projects/altix/sys/dev/pci/pci_subr.c - copied unchanged from r223653, head/sys/dev/pci/pci_subr.c projects/altix/sys/dev/usb/template/usb_template_audio.c - copied unchanged from r223653, head/sys/dev/usb/template/usb_template_audio.c projects/altix/sys/dev/usb/template/usb_template_kbd.c - copied unchanged from r223653, head/sys/dev/usb/template/usb_template_kbd.c projects/altix/sys/dev/usb/template/usb_template_modem.c - copied unchanged from r223653, head/sys/dev/usb/template/usb_template_modem.c projects/altix/sys/dev/usb/template/usb_template_mouse.c - copied unchanged from r223653, head/sys/dev/usb/template/usb_template_mouse.c projects/altix/sys/fs/nfsclient/nfs_clkdtrace.c - copied unchanged from r223653, head/sys/fs/nfsclient/nfs_clkdtrace.c projects/altix/sys/fs/nfsclient/nfs_kdtrace.h - copied unchanged from r223653, head/sys/fs/nfsclient/nfs_kdtrace.h projects/altix/sys/modules/dtrace/dtnfscl/ - copied from r223653, head/sys/modules/dtrace/dtnfscl/ projects/altix/sys/modules/pfsync/ - copied from r223653, head/sys/modules/pfsync/ projects/altix/sys/powerpc/ps3/ohci_ps3.c - copied unchanged from r223653, head/sys/powerpc/ps3/ohci_ps3.c projects/altix/sys/powerpc/ps3/ps3disk.c - copied unchanged from r223653, head/sys/powerpc/ps3/ps3disk.c projects/altix/sys/x86/include/pci_cfgreg.h - copied unchanged from r223653, head/sys/x86/include/pci_cfgreg.h projects/altix/sys/x86/pci/pci_bus.c - copied unchanged from r223653, head/sys/x86/pci/pci_bus.c Deleted: projects/altix/sys/amd64/pci/pci_bus.c projects/altix/sys/contrib/pf/net/pf_subr.c projects/altix/sys/i386/pci/pci_bus.c Modified: projects/altix/lib/libstand/net.c projects/altix/lib/libstand/tftp.c projects/altix/lib/libstand/zalloc.c projects/altix/lib/libstand/zalloc_malloc.c projects/altix/sys/amd64/conf/GENERIC projects/altix/sys/amd64/ia32/ia32_sigtramp.S projects/altix/sys/amd64/include/pci_cfgreg.h projects/altix/sys/arm/at91/at91_machdep.c projects/altix/sys/arm/conf/CAMBRIA projects/altix/sys/arm/sa11x0/assabet_machdep.c projects/altix/sys/arm/sa11x0/sa11x0.c projects/altix/sys/boot/Makefile projects/altix/sys/boot/Makefile.arm projects/altix/sys/boot/Makefile.powerpc projects/altix/sys/boot/common/load_elf_obj.c projects/altix/sys/boot/forth/loader.rc projects/altix/sys/boot/i386/libi386/biosacpi.c projects/altix/sys/boot/i386/zfsboot/zfsldr.S projects/altix/sys/cam/ata/ata_da.c projects/altix/sys/cam/ata/ata_xpt.c projects/altix/sys/cam/cam_ccb.h projects/altix/sys/cam/cam_periph.c projects/altix/sys/cam/cam_periph.h projects/altix/sys/cam/cam_xpt.c projects/altix/sys/cam/cam_xpt.h projects/altix/sys/cam/cam_xpt_internal.h projects/altix/sys/cam/scsi/scsi_all.c projects/altix/sys/cam/scsi/scsi_all.h projects/altix/sys/cam/scsi/scsi_cd.c projects/altix/sys/cam/scsi/scsi_da.c projects/altix/sys/cam/scsi/scsi_pass.c projects/altix/sys/cam/scsi/scsi_xpt.c projects/altix/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c projects/altix/sys/cddl/contrib/opensolaris/uts/common/sys/ctf_api.h projects/altix/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h projects/altix/sys/compat/freebsd32/freebsd32_misc.c projects/altix/sys/compat/freebsd32/freebsd32_proto.h projects/altix/sys/compat/freebsd32/freebsd32_syscall.h projects/altix/sys/compat/freebsd32/freebsd32_syscalls.c projects/altix/sys/compat/freebsd32/freebsd32_sysent.c projects/altix/sys/compat/freebsd32/syscalls.master projects/altix/sys/compat/linprocfs/linprocfs.c projects/altix/sys/conf/Makefile.arm projects/altix/sys/conf/files projects/altix/sys/conf/files.amd64 projects/altix/sys/conf/files.i386 projects/altix/sys/conf/files.ia64 projects/altix/sys/conf/files.pc98 projects/altix/sys/conf/files.powerpc projects/altix/sys/conf/options projects/altix/sys/contrib/altq/altq/altq_red.c projects/altix/sys/contrib/pf/net/if_pflog.c projects/altix/sys/contrib/pf/net/if_pflog.h projects/altix/sys/contrib/pf/net/if_pfsync.c projects/altix/sys/contrib/pf/net/if_pfsync.h projects/altix/sys/contrib/pf/net/pf.c projects/altix/sys/contrib/pf/net/pf_if.c projects/altix/sys/contrib/pf/net/pf_ioctl.c projects/altix/sys/contrib/pf/net/pf_mtag.h projects/altix/sys/contrib/pf/net/pf_norm.c projects/altix/sys/contrib/pf/net/pf_osfp.c projects/altix/sys/contrib/pf/net/pf_ruleset.c projects/altix/sys/contrib/pf/net/pf_table.c projects/altix/sys/contrib/pf/net/pfvar.h projects/altix/sys/dev/acpica/acpi.c projects/altix/sys/dev/acpica/acpi_cpu.c projects/altix/sys/dev/acpica/acpi_pci.c projects/altix/sys/dev/acpica/acpi_pcib_acpi.c projects/altix/sys/dev/acpica/acpi_resource.c projects/altix/sys/dev/acpica/acpi_thermal.c projects/altix/sys/dev/acpica/acpivar.h projects/altix/sys/dev/an/if_an.c projects/altix/sys/dev/ata/chipsets/ata-intel.c projects/altix/sys/dev/ath/ah_osdep.c projects/altix/sys/dev/ath/ath_hal/ah.h projects/altix/sys/dev/ath/ath_hal/ah_eeprom_9287.h projects/altix/sys/dev/ath/ath_hal/ah_internal.h projects/altix/sys/dev/ath/ath_hal/ah_regdomain.c projects/altix/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/altix/sys/dev/ath/ath_hal/ar5210/ar5210_beacon.c projects/altix/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/altix/sys/dev/ath/ath_hal/ar5211/ar5211_beacon.c projects/altix/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/altix/sys/dev/ath/ath_hal/ar5212/ar5112.c projects/altix/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/altix/sys/dev/ath/ath_hal/ar5212/ar5212_beacon.c projects/altix/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/altix/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/altix/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/altix/sys/dev/ath/if_ath.c projects/altix/sys/dev/ath/if_ath_ahb.c projects/altix/sys/dev/ath/if_ath_sysctl.c projects/altix/sys/dev/ath/if_ath_sysctl.h projects/altix/sys/dev/atkbdc/atkbd.c projects/altix/sys/dev/cardbus/cardbus_cis.c projects/altix/sys/dev/dc/dcphy.c projects/altix/sys/dev/dc/if_dc.c projects/altix/sys/dev/dc/pnphy.c projects/altix/sys/dev/e1000/if_igb.c projects/altix/sys/dev/e1000/if_igb.h projects/altix/sys/dev/en/if_en_pci.c projects/altix/sys/dev/et/if_et.c projects/altix/sys/dev/fdc/fdc_pccard.c projects/altix/sys/dev/firewire/fwohci.c projects/altix/sys/dev/fxp/if_fxp.c projects/altix/sys/dev/gem/if_gem.c projects/altix/sys/dev/gem/if_gemvar.h projects/altix/sys/dev/iicbus/if_ic.c projects/altix/sys/dev/mfi/mfi_cam.c projects/altix/sys/dev/my/if_my.c projects/altix/sys/dev/pccbb/pccbb.c projects/altix/sys/dev/pccbb/pccbb_pci.c projects/altix/sys/dev/pci/pci.c projects/altix/sys/dev/pci/pci_pci.c projects/altix/sys/dev/pty/pty.c projects/altix/sys/dev/puc/puc.c projects/altix/sys/dev/puc/puc_bfe.h projects/altix/sys/dev/puc/puc_pccard.c projects/altix/sys/dev/puc/puc_pci.c projects/altix/sys/dev/safe/safe.c projects/altix/sys/dev/sis/if_sis.c projects/altix/sys/dev/snp/snp.c projects/altix/sys/dev/sound/macio/i2s.c projects/altix/sys/dev/sound/pci/hda/hdac.c projects/altix/sys/dev/sound/usb/uaudio.c projects/altix/sys/dev/syscons/scterm-teken.c projects/altix/sys/dev/tdfx/tdfx_pci.c projects/altix/sys/dev/usb/input/atp.c projects/altix/sys/dev/usb/input/uep.c projects/altix/sys/dev/usb/input/uhid.c projects/altix/sys/dev/usb/input/ukbd.c projects/altix/sys/dev/usb/input/ums.c projects/altix/sys/dev/usb/misc/udbp.c projects/altix/sys/dev/usb/misc/ufm.c projects/altix/sys/dev/usb/net/if_aue.c projects/altix/sys/dev/usb/net/if_axe.c projects/altix/sys/dev/usb/net/if_cdce.c projects/altix/sys/dev/usb/net/if_cue.c projects/altix/sys/dev/usb/net/if_ipheth.c projects/altix/sys/dev/usb/net/if_kue.c projects/altix/sys/dev/usb/net/if_mos.c projects/altix/sys/dev/usb/net/if_rue.c projects/altix/sys/dev/usb/net/if_udav.c projects/altix/sys/dev/usb/net/uhso.c projects/altix/sys/dev/usb/serial/u3g.c projects/altix/sys/dev/usb/serial/uark.c projects/altix/sys/dev/usb/serial/ubsa.c projects/altix/sys/dev/usb/serial/uchcom.c projects/altix/sys/dev/usb/serial/ucycom.c projects/altix/sys/dev/usb/serial/ufoma.c projects/altix/sys/dev/usb/serial/uftdi.c projects/altix/sys/dev/usb/serial/ugensa.c projects/altix/sys/dev/usb/serial/uipaq.c projects/altix/sys/dev/usb/serial/ulpt.c projects/altix/sys/dev/usb/serial/umcs.c projects/altix/sys/dev/usb/serial/umct.c projects/altix/sys/dev/usb/serial/umodem.c projects/altix/sys/dev/usb/serial/umoscom.c projects/altix/sys/dev/usb/serial/uplcom.c projects/altix/sys/dev/usb/serial/uslcom.c projects/altix/sys/dev/usb/serial/uvisor.c projects/altix/sys/dev/usb/serial/uvscom.c projects/altix/sys/dev/usb/storage/umass.c projects/altix/sys/dev/usb/storage/urio.c projects/altix/sys/dev/usb/template/usb_template.c projects/altix/sys/dev/usb/template/usb_template.h projects/altix/sys/dev/usb/template/usb_template_cdce.c projects/altix/sys/dev/usb/template/usb_template_msc.c projects/altix/sys/dev/usb/template/usb_template_mtp.c projects/altix/sys/dev/usb/usb_device.c projects/altix/sys/dev/usb/usb_hub.c projects/altix/sys/dev/usb/usb_ioctl.h projects/altix/sys/dev/usb/usb_lookup.c projects/altix/sys/dev/usb/usb_msctest.c projects/altix/sys/dev/usb/usbdevs projects/altix/sys/dev/usb/usbdi.h projects/altix/sys/dev/usb/wlan/if_rum.c projects/altix/sys/dev/usb/wlan/if_run.c projects/altix/sys/dev/usb/wlan/if_uath.c projects/altix/sys/dev/usb/wlan/if_upgt.c projects/altix/sys/dev/usb/wlan/if_ural.c projects/altix/sys/dev/usb/wlan/if_urtw.c projects/altix/sys/dev/usb/wlan/if_zyd.c projects/altix/sys/dev/vr/if_vr.c projects/altix/sys/dev/vr/if_vrreg.h projects/altix/sys/dev/xen/blkback/blkback.c projects/altix/sys/dev/xl/if_xl.c projects/altix/sys/fs/nfs/nfs_commonkrpc.c projects/altix/sys/fs/nfs/nfsport.h projects/altix/sys/fs/nfs/nfsproto.h projects/altix/sys/fs/nfsclient/nfs_clbio.c projects/altix/sys/fs/nfsclient/nfs_clkrpc.c projects/altix/sys/fs/nfsclient/nfs_clnode.c projects/altix/sys/fs/nfsclient/nfs_clport.c projects/altix/sys/fs/nfsclient/nfs_clsubs.c projects/altix/sys/fs/nfsclient/nfs_clvnops.c projects/altix/sys/fs/nfsserver/nfs_nfsdcache.c projects/altix/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/altix/sys/fs/nfsserver/nfs_nfsdserv.c projects/altix/sys/fs/nfsserver/nfs_nfsdsocket.c projects/altix/sys/geom/geom.h projects/altix/sys/geom/geom_dev.c projects/altix/sys/geom/geom_disk.c projects/altix/sys/geom/geom_disk.h projects/altix/sys/geom/geom_event.c projects/altix/sys/geom/geom_subr.c projects/altix/sys/geom/part/g_part_bsd.c projects/altix/sys/geom/part/g_part_ebr.c projects/altix/sys/geom/part/g_part_mbr.c projects/altix/sys/i386/conf/GENERIC projects/altix/sys/i386/include/param.h projects/altix/sys/i386/include/pci_cfgreg.h projects/altix/sys/ia64/conf/NOTES projects/altix/sys/ia64/ia64/clock.c projects/altix/sys/ia64/ia64/db_machdep.c projects/altix/sys/ia64/ia64/interrupt.c projects/altix/sys/ia64/ia64/machdep.c projects/altix/sys/ia64/ia64/mp_machdep.c projects/altix/sys/ia64/ia64/pmap.c projects/altix/sys/ia64/include/ia64_cpu.h projects/altix/sys/ia64/include/pcpu.h projects/altix/sys/ia64/include/smp.h projects/altix/sys/kern/imgact_aout.c projects/altix/sys/kern/kern_clocksource.c projects/altix/sys/kern/kern_conf.c projects/altix/sys/kern/kern_exit.c projects/altix/sys/kern/link_elf.c projects/altix/sys/kern/subr_devstat.c projects/altix/sys/kern/subr_kdb.c projects/altix/sys/kern/subr_smp.c projects/altix/sys/kern/sys_capability.c projects/altix/sys/kern/sys_process.c projects/altix/sys/kern/tty.c projects/altix/sys/kern/tty_inq.c projects/altix/sys/kern/tty_outq.c projects/altix/sys/kern/tty_pts.c projects/altix/sys/kern/tty_ttydisc.c projects/altix/sys/kern/vfs_subr.c projects/altix/sys/kgssapi/gss_impl.c projects/altix/sys/mips/atheros/ar71xx_chip.c projects/altix/sys/mips/atheros/ar71xx_machdep.c projects/altix/sys/mips/atheros/ar71xx_ohci.c projects/altix/sys/mips/atheros/ar71xx_setup.c projects/altix/sys/mips/atheros/ar724x_chip.c projects/altix/sys/mips/atheros/ar91xx_chip.c projects/altix/sys/mips/mips/genassym.c projects/altix/sys/mips/mips/trap.c projects/altix/sys/mips/rmi/dev/xlr/rge.c projects/altix/sys/mips/rmi/fmn.c projects/altix/sys/mips/rmi/iodi.c projects/altix/sys/mips/sentry5/s5_machdep.c projects/altix/sys/mips/sibyte/sb_machdep.c projects/altix/sys/modules/Makefile projects/altix/sys/modules/cxgbe/if_cxgbe/Makefile projects/altix/sys/modules/dtrace/Makefile projects/altix/sys/modules/dtrace/dtraceall/dtraceall.c projects/altix/sys/modules/ipdivert/Makefile projects/altix/sys/modules/kgssapi_krb5/Makefile projects/altix/sys/modules/nfscl/Makefile projects/altix/sys/modules/nfscommon/Makefile projects/altix/sys/modules/pf/Makefile projects/altix/sys/modules/pflog/Makefile projects/altix/sys/modules/usb/template/Makefile projects/altix/sys/net/if.c projects/altix/sys/net/if.h projects/altix/sys/net/if_gre.c projects/altix/sys/net/if_gre.h projects/altix/sys/net/route.c projects/altix/sys/net/route.h projects/altix/sys/net80211/ieee80211_acl.c projects/altix/sys/net80211/ieee80211_dfs.c projects/altix/sys/net80211/ieee80211_ht.c projects/altix/sys/net80211/ieee80211_ioctl.c projects/altix/sys/net80211/ieee80211_ioctl.h projects/altix/sys/net80211/ieee80211_var.h projects/altix/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/altix/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c projects/altix/sys/netgraph/ng_ether.c projects/altix/sys/netinet/if_ether.c projects/altix/sys/netinet/in_gif.c projects/altix/sys/netinet/ip_divert.c projects/altix/sys/netinet/ip_icmp.c projects/altix/sys/netinet/ipfw/ip_dn_io.c projects/altix/sys/netinet/ipfw/ip_fw2.c projects/altix/sys/netinet/ipfw/ip_fw_nat.c projects/altix/sys/netinet/ipfw/ip_fw_pfil.c projects/altix/sys/netinet/libalias/alias.h projects/altix/sys/netinet/libalias/alias_db.c projects/altix/sys/netinet/libalias/alias_ftp.c projects/altix/sys/netinet/libalias/alias_local.h projects/altix/sys/netinet/libalias/libalias.3 projects/altix/sys/netinet/raw_ip.c projects/altix/sys/netinet/sctp.h projects/altix/sys/netinet/sctp_auth.c projects/altix/sys/netinet/sctp_indata.c projects/altix/sys/netinet/sctp_output.c projects/altix/sys/netinet/sctp_pcb.c projects/altix/sys/netinet/sctp_structs.h projects/altix/sys/netinet/sctp_uio.h projects/altix/sys/netinet/sctp_usrreq.c projects/altix/sys/netinet/sctp_var.h projects/altix/sys/netinet/sctputil.c projects/altix/sys/netinet/tcp_output.c projects/altix/sys/netinet6/icmp6.c projects/altix/sys/netinet6/in6_gif.c projects/altix/sys/netipsec/ipsec_input.c projects/altix/sys/netipsec/ipsec_output.c projects/altix/sys/netipsec/xform_ipip.c projects/altix/sys/nfsclient/nfs_krpc.c projects/altix/sys/nfsserver/nfs_srvkrpc.c projects/altix/sys/pc98/conf/GENERIC projects/altix/sys/powerpc/aim/copyinout.c projects/altix/sys/powerpc/aim/locore32.S projects/altix/sys/powerpc/aim/locore64.S projects/altix/sys/powerpc/aim/machdep.c projects/altix/sys/powerpc/aim/mmu_oea64.c projects/altix/sys/powerpc/aim/mp_cpudep.c projects/altix/sys/powerpc/aim/swtch32.S projects/altix/sys/powerpc/aim/swtch64.S projects/altix/sys/powerpc/aim/trap.c projects/altix/sys/powerpc/aim/trap_subr32.S projects/altix/sys/powerpc/aim/trap_subr64.S projects/altix/sys/powerpc/booke/copyinout.c projects/altix/sys/powerpc/booke/interrupt.c projects/altix/sys/powerpc/booke/trap.c projects/altix/sys/powerpc/include/pcpu.h projects/altix/sys/powerpc/ofw/ofwcall32.S projects/altix/sys/powerpc/ofw/rtas.c projects/altix/sys/powerpc/powermac/fcu.c projects/altix/sys/powerpc/powerpc/db_trace.c projects/altix/sys/powerpc/powerpc/mp_machdep.c projects/altix/sys/powerpc/ps3/if_glc.c projects/altix/sys/powerpc/ps3/ps3-hvcall.h projects/altix/sys/powerpc/ps3/ps3-hvcall.master projects/altix/sys/powerpc/ps3/ps3bus.c projects/altix/sys/powerpc/ps3/ps3bus.h projects/altix/sys/powerpc/ps3/ps3pic.c projects/altix/sys/rpc/rpc_generic.c projects/altix/sys/rpc/rpcsec_gss.h projects/altix/sys/sparc64/conf/GENERIC projects/altix/sys/sparc64/include/smp.h projects/altix/sys/sparc64/include/tsb.h projects/altix/sys/sparc64/include/vmparam.h projects/altix/sys/sparc64/sparc64/intr_machdep.c projects/altix/sys/sparc64/sparc64/mp_machdep.c projects/altix/sys/sparc64/sparc64/pmap.c projects/altix/sys/sparc64/sparc64/tlb.c projects/altix/sys/sys/conf.h projects/altix/sys/sys/disk.h projects/altix/sys/sys/diskmbr.h projects/altix/sys/sys/diskpc98.h projects/altix/sys/sys/dtrace_bsd.h projects/altix/sys/sys/mbuf.h projects/altix/sys/sys/param.h projects/altix/sys/sys/proc.h projects/altix/sys/sys/systm.h projects/altix/sys/teken/demo/teken_demo.c projects/altix/sys/teken/gensequences projects/altix/sys/teken/libteken/teken.3 projects/altix/sys/teken/teken.c projects/altix/sys/teken/teken_subr.h projects/altix/sys/ufs/ffs/ffs_alloc.c projects/altix/sys/ufs/ffs/ffs_balloc.c projects/altix/sys/ufs/ffs/ffs_extern.h projects/altix/sys/ufs/ffs/ffs_inode.c projects/altix/sys/ufs/ffs/ffs_snapshot.c projects/altix/sys/ufs/ffs/ffs_softdep.c projects/altix/sys/ufs/ffs/softdep.h projects/altix/sys/vm/vm_fault.c projects/altix/sys/vm/vm_page.c projects/altix/sys/vm/vm_page.h projects/altix/sys/x86/x86/tsc.c Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) Modified: projects/altix/lib/libstand/net.c ============================================================================== --- projects/altix/lib/libstand/net.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/lib/libstand/net.c Tue Jun 28 21:21:10 2011 (r223656) @@ -100,7 +100,7 @@ sendrecv(struct iodesc *d, cc, ssize); tleft = tmo; - tmo <<= 1; + tmo += MINTMO; if (tmo > MAXTMO) tmo = MAXTMO; Modified: projects/altix/lib/libstand/tftp.c ============================================================================== --- projects/altix/lib/libstand/tftp.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/lib/libstand/tftp.c Tue Jun 28 21:21:10 2011 (r223656) @@ -60,12 +60,21 @@ __FBSDID("$FreeBSD$"); #include "tftp.h" +struct tftp_handle; + static int tftp_open(const char *path, struct open_file *f); static int tftp_close(struct open_file *f); +static int tftp_parse_oack(struct tftp_handle *h, char *buf, size_t len); static int tftp_read(struct open_file *f, void *buf, size_t size, size_t *resid); static int tftp_write(struct open_file *f, void *buf, size_t size, size_t *resid); static off_t tftp_seek(struct open_file *f, off_t offset, int where); +static int tftp_set_blksize(struct tftp_handle *h, const char *str); static int tftp_stat(struct open_file *f, struct stat *sb); +static ssize_t sendrecv_tftp(struct tftp_handle *h, + ssize_t (*sproc)(struct iodesc *, void *, size_t), + void *sbuf, size_t ssize, + ssize_t (*rproc)(struct tftp_handle *h, void *, ssize_t, time_t, unsigned short *), + void *rbuf, size_t rsize, unsigned short *rtype); struct fs_ops tftp_fsops = { "tftp", @@ -81,8 +90,20 @@ struct fs_ops tftp_fsops = { extern struct in_addr servip; static int tftpport = 2000; +static int is_open = 0; -#define RSPACE 520 /* max data packet, rounded up */ +/* + * The legacy TFTP_BLKSIZE value was SEGSIZE(512). + * TFTP_REQUESTED_BLKSIZE of 1428 is (Ethernet MTU, less the TFTP, UDP and + * IP header lengths). + */ +#define TFTP_REQUESTED_BLKSIZE 1428 + +/* + * Choose a blksize big enough so we can test with Ethernet + * Jumbo frames in the future. + */ +#define TFTP_MAX_BLKSIZE 9008 struct tftp_handle { struct iodesc *iodesc; @@ -91,14 +112,17 @@ struct tftp_handle { int validsize; int off; char *path; /* saved for re-requests */ + unsigned int tftp_blksize; + unsigned long tftp_tsize; struct { u_char header[HEADER_SIZE]; struct tftphdr t; - u_char space[RSPACE]; + u_char space[TFTP_MAX_BLKSIZE]; } __packed __aligned(4) lastdata; }; -static const int tftperrors[8] = { +#define TFTP_MAX_ERRCODE EOPTNEG +static const int tftperrors[TFTP_MAX_ERRCODE + 1] = { 0, /* ??? */ ENOENT, EPERM, @@ -106,12 +130,61 @@ static const int tftperrors[8] = { EINVAL, /* ??? */ EINVAL, /* ??? */ EEXIST, - EINVAL /* ??? */ + EINVAL, /* ??? */ + EINVAL, /* Option negotiation failed. */ }; -static ssize_t -recvtftp(struct iodesc *d, void *pkt, ssize_t len, time_t tleft) +static int tftp_getnextblock(struct tftp_handle *h); + +/* send error message back. */ +static void +tftp_senderr(struct tftp_handle *h, u_short errcode, const char *msg) +{ + struct { + u_char header[HEADER_SIZE]; + struct tftphdr t; + u_char space[63]; /* +1 from t */ + } __packed __aligned(4) wbuf; + char *wtail; + int len; + + len = strlen(msg); + if (len > sizeof(wbuf.space)) + len = sizeof(wbuf.space); + + wbuf.t.th_opcode = htons((u_short) ERROR); + wbuf.t.th_code = htons(errcode); + + wtail = wbuf.t.th_msg; + bcopy(msg, wtail, len); + wtail[len] = '\0'; + wtail += len + 1; + + sendudp(h->iodesc, &wbuf.t, wtail - (char *) &wbuf.t); +} + +static void +tftp_sendack(struct tftp_handle *h) +{ + struct { + u_char header[HEADER_SIZE]; + struct tftphdr t; + } __packed __aligned(4) wbuf; + char *wtail; + + wbuf.t.th_opcode = htons((u_short) ACK); + wtail = (char *) &wbuf.t.th_block; + wbuf.t.th_block = htons((u_short) h->currblock); + wtail += 2; + + sendudp(h->iodesc, &wbuf.t, wtail - (char *) &wbuf.t); +} + +static ssize_t +recvtftp(struct tftp_handle *h, void *pkt, ssize_t len, time_t tleft, + unsigned short *rtype) { + struct iodesc *d = h->iodesc; struct tftphdr *t; errno = 0; @@ -122,6 +195,7 @@ recvtftp(struct iodesc *d, void *pkt, ss return (-1); t = (struct tftphdr *) pkt; + *rtype = ntohs(t->th_opcode); switch (ntohs(t->th_opcode)) { case DATA: { int got; @@ -144,7 +218,7 @@ recvtftp(struct iodesc *d, void *pkt, ss return got; } case ERROR: - if ((unsigned) ntohs(t->th_code) >= 8) { + if ((unsigned) ntohs(t->th_code) > TFTP_MAX_ERRCODE) { printf("illegal tftp error %d\n", ntohs(t->th_code)); errno = EIO; } else { @@ -154,6 +228,34 @@ recvtftp(struct iodesc *d, void *pkt, ss errno = tftperrors[ntohs(t->th_code)]; } return (-1); + case OACK: { + struct udphdr *uh; + int tftp_oack_len; + + /* + * Unexpected OACK. TFTP transfer already in progress. + * Drop the pkt. + */ + if (d->xid != 1) { + return (-1); + } + + /* + * Remember which port this OACK came from, because we need + * to send the ACK or errors back to it. + */ + uh = (struct udphdr *) pkt - 1; + d->destport = uh->uh_sport; + + /* Parse options ACK-ed by the server. */ + tftp_oack_len = len - sizeof(t->th_opcode); + if (tftp_parse_oack(h, t->th_u.tu_stuff, tftp_oack_len) != 0) { + tftp_senderr(h, EOPTNEG, "Malformed OACK"); + errno = EIO; + return (-1); + } + return (0); + } default: #ifdef TFTP_DEBUG printf("tftp type %d not handled\n", ntohs(t->th_opcode)); @@ -163,7 +265,7 @@ recvtftp(struct iodesc *d, void *pkt, ss } /* send request, expect first block (or error) */ -static int +static int tftp_makereq(struct tftp_handle *h) { struct { @@ -175,14 +277,35 @@ tftp_makereq(struct tftp_handle *h) int l; ssize_t res; struct tftphdr *t; + char *tftp_blksize = NULL; + int blksize_l; + unsigned short rtype = 0; + + /* + * Allow overriding default TFTP block size by setting + * a tftp.blksize environment variable. + */ + if ((tftp_blksize = getenv("tftp.blksize")) != NULL) { + tftp_set_blksize(h, tftp_blksize); + } wbuf.t.th_opcode = htons((u_short) RRQ); wtail = wbuf.t.th_stuff; l = strlen(h->path); + if (l > FNAME_SIZE) + return (ENAMETOOLONG); bcopy(h->path, wtail, l + 1); wtail += l + 1; bcopy("octet", wtail, 6); wtail += 6; + bcopy("blksize", wtail, 8); + wtail += 8; + blksize_l = sprintf(wtail, "%d", h->tftp_blksize); + wtail += blksize_l + 1; + bcopy("tsize", wtail, 6); + wtail += 6; + bcopy("0", wtail, 2); + wtail += 2; t = &h->lastdata.t; @@ -191,18 +314,35 @@ tftp_makereq(struct tftp_handle *h) h->iodesc->destport = htons(IPPORT_TFTP); h->iodesc->xid = 1; /* expected block */ - res = sendrecv(h->iodesc, sendudp, &wbuf.t, wtail - (char *) &wbuf.t, - recvtftp, t, sizeof(*t) + RSPACE); + h->currblock = 0; + h->islastblock = 0; + h->validsize = 0; - if (res == -1) - return (errno); + res = sendrecv_tftp(h, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t, + &recvtftp, t, sizeof(*t) + h->tftp_blksize, &rtype); + + if (rtype == OACK) + return (tftp_getnextblock(h)); + + /* Server ignored our blksize request, revert to TFTP default. */ + h->tftp_blksize = SEGSIZE; + + switch (rtype) { + case DATA: { + h->currblock = 1; + h->validsize = res; + h->islastblock = 0; + if (res < h->tftp_blksize) { + h->islastblock = 1; /* very short file */ + tftp_sendack(h); + } + return (0); + } + case ERROR: + default: + return (errno); + } - h->currblock = 1; - h->validsize = res; - h->islastblock = 0; - if (res < SEGSIZE) - h->islastblock = 1; /* very short file */ - return (0); } /* ack block, expect next */ @@ -216,7 +356,7 @@ tftp_getnextblock(struct tftp_handle *h) char *wtail; int res; struct tftphdr *t; - + unsigned short rtype = 0; wbuf.t.th_opcode = htons((u_short) ACK); wtail = (char *) &wbuf.t.th_block; wbuf.t.th_block = htons((u_short) h->currblock); @@ -226,20 +366,27 @@ tftp_getnextblock(struct tftp_handle *h) h->iodesc->xid = h->currblock + 1; /* expected block */ - res = sendrecv(h->iodesc, sendudp, &wbuf.t, wtail - (char *) &wbuf.t, - recvtftp, t, sizeof(*t) + RSPACE); + res = sendrecv_tftp(h, &sendudp, &wbuf.t, wtail - (char *) &wbuf.t, + &recvtftp, t, sizeof(*t) + h->tftp_blksize, &rtype); if (res == -1) /* 0 is OK! */ return (errno); h->currblock++; h->validsize = res; - if (res < SEGSIZE) + if (res < h->tftp_blksize) h->islastblock = 1; /* EOF */ + + if (h->islastblock == 1) { + /* Send an ACK for the last block */ + wbuf.t.th_block = htons((u_short) h->currblock); + sendudp(h->iodesc, &wbuf.t, wtail - (char *)&wbuf.t); + } + return (0); } -static int +static int tftp_open(const char *path, struct open_file *f) { struct tftp_handle *tftpfile; @@ -251,10 +398,15 @@ tftp_open(const char *path, struct open_ return (EINVAL); #endif + if (is_open) + return (EBUSY); + tftpfile = (struct tftp_handle *) malloc(sizeof(*tftpfile)); if (!tftpfile) return (ENOMEM); + memset(tftpfile, 0, sizeof(*tftpfile)); + tftpfile->tftp_blksize = TFTP_REQUESTED_BLKSIZE; tftpfile->iodesc = io = socktodesc(*(int *) (f->f_devdata)); if (io == NULL) return (EINVAL); @@ -275,10 +427,11 @@ tftp_open(const char *path, struct open_ return (res); } f->f_fsdata = (void *) tftpfile; + is_open = 1; return (0); } -static int +static int tftp_read(struct open_file *f, void *addr, size_t size, size_t *resid /* out */) { @@ -292,11 +445,13 @@ tftp_read(struct open_file *f, void *add if (!(tc++ % 16)) twiddle(); - needblock = tftpfile->off / SEGSIZE + 1; + needblock = tftpfile->off / tftpfile->tftp_blksize + 1; - if (tftpfile->currblock > needblock) /* seek backwards */ + if (tftpfile->currblock > needblock) { /* seek backwards */ + tftp_senderr(tftpfile, 0, "No error: read aborted"); tftp_makereq(tftpfile); /* no error check, it worked * for open */ + } while (tftpfile->currblock < needblock) { int res; @@ -315,7 +470,7 @@ tftp_read(struct open_file *f, void *add if (tftpfile->currblock == needblock) { int offinblock, inbuffer; - offinblock = tftpfile->off % SEGSIZE; + offinblock = tftpfile->off % tftpfile->tftp_blksize; inbuffer = tftpfile->validsize - offinblock; if (inbuffer < 0) { @@ -361,18 +516,19 @@ tftp_close(struct open_file *f) free(tftpfile->path); free(tftpfile); } + is_open = 0; return (0); } -static int +static int tftp_write(struct open_file *f __unused, void *start __unused, size_t size __unused, - size_t *resid /* out */ __unused) + size_t *resid __unused /* out */) { return (EROFS); } static int -tftp_stat(struct open_file *f, struct stat *sb) +tftp_stat(struct open_file *f, struct stat *sb) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; @@ -385,7 +541,7 @@ tftp_stat(struct open_file *f, struct st return (0); } -static off_t +static off_t tftp_seek(struct open_file *f, off_t offset, int where) { struct tftp_handle *tftpfile; @@ -404,3 +560,179 @@ tftp_seek(struct open_file *f, off_t off } return (tftpfile->off); } + +static ssize_t +sendrecv_tftp(struct tftp_handle *h, + ssize_t (*sproc)(struct iodesc *, void *, size_t), + void *sbuf, size_t ssize, + ssize_t (*rproc)(struct tftp_handle *, void *, ssize_t, time_t, unsigned short *), + void *rbuf, size_t rsize, unsigned short *rtype) +{ + struct iodesc *d = h->iodesc; + ssize_t cc; + time_t t, t1, tleft; + +#ifdef TFTP_DEBUG + if (debug) + printf("sendrecv: called\n"); +#endif + + tleft = MINTMO; + t = t1 = getsecs(); + for (;;) { + if ((getsecs() - t) > MAXTMO) { + errno = ETIMEDOUT; + return -1; + } + + cc = (*sproc)(d, sbuf, ssize); + if (cc != -1 && cc < ssize) + panic("sendrecv: short write! (%zd < %zu)", + cc, ssize); + + if (cc == -1) { + /* Error on transmit; wait before retrying */ + while ((getsecs() - t1) < tleft); + continue; + } + +recvnext: + /* Try to get a packet and process it. */ + cc = (*rproc)(h, rbuf, rsize, tleft, rtype); + /* Return on data, EOF or real error. */ + if (cc != -1 || errno != 0) + return (cc); + if ((getsecs() - t1) < tleft) { + goto recvnext; + } + + /* Timed out or didn't get the packet we're waiting for */ + tleft += MINTMO; + if (tleft > (2 * MINTMO)) { + tleft = (2 * MINTMO); + } + t1 = getsecs(); + } +} + +static int +tftp_set_blksize(struct tftp_handle *h, const char *str) +{ + char *endptr; + int new_blksize; + int ret = 0; + + if (h == NULL || str == NULL) + return (ret); + + new_blksize = + (unsigned int)strtol(str, &endptr, 0); + + /* + * Only accept blksize value if it is numeric. + * RFC2348 specifies that acceptable values are 8-65464. + * Let's choose a limit less than MAXRSPACE. + */ + if (*endptr == '\0' && new_blksize >= 8 + && new_blksize <= TFTP_MAX_BLKSIZE) { + h->tftp_blksize = new_blksize; + ret = 1; + } + + return (ret); +} + +/* + * In RFC2347, the TFTP Option Acknowledgement package (OACK) + * is used to acknowledge a client's option negotiation request. + * The format of an OACK packet is: + * +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ + * | opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 | + * +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ + * + * opc + * The opcode field contains a 6, for Option Acknowledgment. + * + * opt1 + * The first option acknowledgment, copied from the original + * request. + * + * value1 + * The acknowledged value associated with the first option. If + * and how this value may differ from the original request is + * detailed in the specification for the option. + * + * optN, valueN + * The final option/value acknowledgment pair. + */ +static int +tftp_parse_oack(struct tftp_handle *h, char *buf, size_t len) +{ + /* + * We parse the OACK strings into an array + * of name-value pairs. + */ + char *tftp_options[128] = { 0 }; + char *val = buf; + int i = 0; + int option_idx = 0; + int blksize_is_set = 0; + int tsize = 0; + + unsigned int orig_blksize; + + while (option_idx < 128 && i < len) { + if (buf[i] == '\0') { + if (&buf[i] > val) { + tftp_options[option_idx] = val; + val = &buf[i] + 1; + ++option_idx; + } + } + ++i; + } + + /* Save the block size we requested for sanity check later. */ + orig_blksize = h->tftp_blksize; + + /* + * Parse individual TFTP options. + * * "blksize" is specified in RFC2348. + * * "tsize" is specified in RFC2349. + */ + for (i = 0; i < option_idx; i += 2) { + if (strcasecmp(tftp_options[i], "blksize") == 0) { + if (i + 1 < option_idx) + blksize_is_set = + tftp_set_blksize(h, tftp_options[i + 1]); + } else if (strcasecmp(tftp_options[i], "tsize") == 0) { + if (i + 1 < option_idx) + tsize = strtol(tftp_options[i + 1], (char **)NULL, 10); + } else { + /* Do not allow any options we did not expect to be ACKed. */ + printf("unexpected tftp option '%s'\n", tftp_options[i]); + return (-1); + } + } + + if (!blksize_is_set) { + /* + * If TFTP blksize was not set, try defaulting + * to the legacy TFTP blksize of SEGSIZE(512) + */ + h->tftp_blksize = SEGSIZE; + } else if (h->tftp_blksize > orig_blksize) { + /* + * Server should not be proposing block sizes that + * exceed what we said we can handle. + */ + printf("unexpected blksize %u\n", h->tftp_blksize); + return (-1); + } + +#ifdef TFTP_DEBUG + printf("tftp_blksize: %u\n", h->tftp_blksize); + printf("tftp_tsize: %lu\n", h->tftp_tsize); +#endif + return 0; +} Modified: projects/altix/lib/libstand/zalloc.c ============================================================================== --- projects/altix/lib/libstand/zalloc.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/lib/libstand/zalloc.c Tue Jun 28 21:21:10 2011 (r223656) @@ -154,7 +154,7 @@ zfree(MemPool *mp, void *ptr, iaddr_t by if ((char *)ptr < (char *)mp->mp_Base || (char *)ptr + bytes > (char *)mp->mp_End || ((iaddr_t)ptr & MEMNODE_SIZE_MASK) != 0) - panic("zfree(%p,%d): wild pointer", ptr, bytes); + panic("zfree(%p,%ju): wild pointer", ptr, bytes); /* * free the segment @@ -178,7 +178,7 @@ zfree(MemPool *mp, void *ptr, iaddr_t by * range check */ if ((char *)ptr + bytes > (char *)mn) - panic("zfree(%p,%d): corrupt memlist1",ptr, bytes); + panic("zfree(%p,%ju): corrupt memlist1",ptr, bytes); /* * merge against next area or create independant area @@ -209,7 +209,7 @@ zfree(MemPool *mp, void *ptr, iaddr_t by /* NOT REACHED */ } if ((char *)ptr < (char *)mn + mn->mr_Bytes) - panic("zfree(%p,%d): corrupt memlist2", ptr, bytes); + panic("zfree(%p,%ju): corrupt memlist2", ptr, bytes); } /* * We are beyond the last MemNode, append new MemNode. Merge against Modified: projects/altix/lib/libstand/zalloc_malloc.c ============================================================================== --- projects/altix/lib/libstand/zalloc_malloc.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/lib/libstand/zalloc_malloc.c Tue Jun 28 21:21:10 2011 (r223656) @@ -110,7 +110,7 @@ Free(void *ptr, const char *file, int li return; } if (*((signed char *)res + res->ga_Bytes - 1) != -2) - panic("free: guard2 fail @ %p + %d from %s:%d", ptr, res->ga_Bytes - MALLOCALIGN, file, line); + panic("free: guard2 fail @ %p + %zu from %s:%d", ptr, res->ga_Bytes - MALLOCALIGN, file, line); *((signed char *)res + res->ga_Bytes - 1) = -1; #endif Modified: projects/altix/sys/amd64/conf/GENERIC ============================================================================== --- projects/altix/sys/amd64/conf/GENERIC Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/amd64/conf/GENERIC Tue Jun 28 21:21:10 2011 (r223656) @@ -295,6 +295,7 @@ options USB_DEBUG # enable debug msgs device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) +device xhci # XHCI PCI->USB interface (USB 3.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices (needs netgraph) device uhid # "Human Interface Devices" Modified: projects/altix/sys/amd64/ia32/ia32_sigtramp.S ============================================================================== --- projects/altix/sys/amd64/ia32/ia32_sigtramp.S Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/amd64/ia32/ia32_sigtramp.S Tue Jun 28 21:21:10 2011 (r223656) @@ -79,8 +79,20 @@ ia32_osigcode: jmp 1b +/* + * The lcall $7,$0 emulator cannot use the call gate that does an + * inter-privilege transition. The reason is that the call gate + * does not disable interrupts, and, before the swapgs is + * executed, we would have a window where the ring 0 code is + * executed with the wrong gsbase. + * + * Instead, reflect the lcall $7,$0 back to ring 3 trampoline + * which sets up the frame for int $0x80. + */ ALIGN_TEXT lcall_tramp: + cmpl $SYS_vfork,%eax + je 2f pushl %ebp movl %esp,%ebp pushl 0x24(%ebp) /* arg 6 */ @@ -91,8 +103,19 @@ lcall_tramp: pushl 0x10(%ebp) /* arg 1 */ pushl 0xc(%ebp) /* gap */ int $0x80 - leave + leavel +1: lretl +2: + /* + * vfork handling is special and relies on the libc stub saving + * the return ip in %ecx. If vfork failed, then there is no + * child which can corrupt the frame created by call gate. + */ + int $0x80 + jb 1b + addl $8,%esp + jmpl *%ecx #endif ALIGN_TEXT Modified: projects/altix/sys/amd64/include/pci_cfgreg.h ============================================================================== --- projects/altix/sys/amd64/include/pci_cfgreg.h Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/amd64/include/pci_cfgreg.h Tue Jun 28 21:21:10 2011 (r223656) @@ -1,43 +1,6 @@ /*- - * Copyright (c) 1997, Stefan Esser <se@freebsd.org> - * 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 unmodified, 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$ - * + * This file is in the public domain. */ +/* $FreeBSD$ */ -#define CONF1_ADDR_PORT 0x0cf8 -#define CONF1_DATA_PORT 0x0cfc - -#define CONF1_ENABLE 0x80000000ul -#define CONF1_ENABLE_CHK 0x80000000ul -#define CONF1_ENABLE_MSK 0x7f000000ul -#define CONF1_ENABLE_CHK1 0xff000001ul -#define CONF1_ENABLE_MSK1 0x80000001ul -#define CONF1_ENABLE_RES1 0x80000000ul - -int pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t maxbus); -int pci_cfgregopen(void); -u_int32_t pci_cfgregread(int bus, int slot, int func, int reg, int bytes); -void pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes); +#include <x86/pci_cfgreg.h> Modified: projects/altix/sys/arm/at91/at91_machdep.c ============================================================================== --- projects/altix/sys/arm/at91/at91_machdep.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/arm/at91/at91_machdep.c Tue Jun 28 21:21:10 2011 (r223656) @@ -91,7 +91,6 @@ __FBSDID("$FreeBSD$"); #include <arm/at91/at91var.h> #include <arm/at91/at91rm92reg.h> #include <arm/at91/at91sam9g20reg.h> -#include <arm/at91/at91board.h> #define KERNEL_PT_SYS 0 /* Page table for mapping proc0 zero page */ #define KERNEL_PT_KERN 1 Modified: projects/altix/sys/arm/conf/CAMBRIA ============================================================================== --- projects/altix/sys/arm/conf/CAMBRIA Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/arm/conf/CAMBRIA Tue Jun 28 21:21:10 2011 (r223656) @@ -130,7 +130,7 @@ options ATH_DIAGAPI #options ATH_TX99_DIAG device ath_rate_sample # SampleRate tx rate control for ath -options AH_DEBUG +#options AH_DEBUG #options AH_ASSERT options AH_PRIVATE_DIAG #device ath_ar5210 Modified: projects/altix/sys/arm/sa11x0/assabet_machdep.c ============================================================================== --- projects/altix/sys/arm/sa11x0/assabet_machdep.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/arm/sa11x0/assabet_machdep.c Tue Jun 28 21:21:10 2011 (r223656) @@ -77,7 +77,6 @@ __FBSDID("$FreeBSD$"); #include <vm/vm.h> #include <vm/pmap.h> -#include <vm/vm.h> #include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_pager.h> Modified: projects/altix/sys/arm/sa11x0/sa11x0.c ============================================================================== --- projects/altix/sys/arm/sa11x0/sa11x0.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/arm/sa11x0/sa11x0.c Tue Jun 28 21:21:10 2011 (r223656) @@ -58,7 +58,6 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/reboot.h> #include <sys/malloc.h> -#include <sys/bus.h> #include <sys/interrupt.h> #include <sys/module.h> #include <sys/rman.h> @@ -74,7 +73,6 @@ __FBSDID("$FreeBSD$"); #include <arm/sa11x0/sa11x0_dmacreg.h> #include <arm/sa11x0/sa11x0_ppcreg.h> #include <arm/sa11x0/sa11x0_gpioreg.h> -#include <machine/bus.h> extern void sa11x0_activateirqs(void); Modified: projects/altix/sys/boot/Makefile ============================================================================== --- projects/altix/sys/boot/Makefile Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/Makefile Tue Jun 28 21:21:10 2011 (r223656) @@ -8,10 +8,6 @@ SUBDIR+= ficl .endif -.if ${MK_FDT} != "no" -SUBDIR+= fdt -.endif - # Pick the machine-dependent subdir based on the target architecture. ADIR= ${MACHINE:S/amd64/i386/:S/powerpc64/powerpc/} .if exists(${.CURDIR}/${ADIR}/.) Modified: projects/altix/sys/boot/Makefile.arm ============================================================================== --- projects/altix/sys/boot/Makefile.arm Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/Makefile.arm Tue Jun 28 21:21:10 2011 (r223656) @@ -1,3 +1,7 @@ # $FreeBSD$ +.if ${MK_FDT} != "no" +SUBDIR+= fdt +.endif + SUBDIR+= uboot Modified: projects/altix/sys/boot/Makefile.powerpc ============================================================================== --- projects/altix/sys/boot/Makefile.powerpc Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/Makefile.powerpc Tue Jun 28 21:21:10 2011 (r223656) @@ -1,4 +1,8 @@ # $FreeBSD$ +.if ${MK_FDT} != "no" +SUBDIR+= fdt +.endif + SUBDIR+= ofw SUBDIR+= uboot Modified: projects/altix/sys/boot/common/load_elf_obj.c ============================================================================== --- projects/altix/sys/boot/common/load_elf_obj.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/common/load_elf_obj.c Tue Jun 28 21:21:10 2011 (r223656) @@ -196,7 +196,7 @@ static int __elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, u_int64_t off) { Elf_Ehdr *hdr; - Elf_Shdr *shdr; + Elf_Shdr *shdr, *cshdr, *lshdr; vm_offset_t firstaddr, lastaddr; int i, nsym, res, ret, shdrbytes, symstrindex; @@ -294,12 +294,35 @@ __elfN(obj_loadimage)(struct preloaded_f /* Clear the whole area, including bss regions. */ kern_bzero(firstaddr, lastaddr - firstaddr); - /* Now read it all in. */ - for (i = 0; i < hdr->e_shnum; i++) { - if (shdr[i].sh_addr == 0 || shdr[i].sh_type == SHT_NOBITS) - continue; - if (kern_pread(ef->fd, (vm_offset_t)shdr[i].sh_addr, - shdr[i].sh_size, (off_t)shdr[i].sh_offset) != 0) { + /* Figure section with the lowest file offset we haven't loaded yet. */ + for (cshdr = NULL; /* none */; /* none */) + { + /* + * Find next section to load. The complexity of this loop is + * O(n^2), but with the number of sections being typically + * small, we do not care. + */ + lshdr = cshdr; + + for (i = 0; i < hdr->e_shnum; i++) { + if (shdr[i].sh_addr == 0 || + shdr[i].sh_type == SHT_NOBITS) + continue; + /* Skip sections that were loaded already. */ + if (lshdr != NULL && + lshdr->sh_offset >= shdr[i].sh_offset) + continue; + /* Find section with smallest offset. */ + if (cshdr == lshdr || + cshdr->sh_offset > shdr[i].sh_offset) + cshdr = &shdr[i]; + } + + if (cshdr == lshdr) + break; + + if (kern_pread(ef->fd, (vm_offset_t)cshdr->sh_addr, + cshdr->sh_size, (off_t)cshdr->sh_offset) != 0) { printf("\nelf" __XSTRING(__ELF_WORD_SIZE) "_obj_loadimage: read failed\n"); goto out; Modified: projects/altix/sys/boot/forth/loader.rc ============================================================================== --- projects/altix/sys/boot/forth/loader.rc Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/forth/loader.rc Tue Jun 28 21:21:10 2011 (r223656) @@ -10,8 +10,5 @@ start \ Tests for password -- executes autoboot first if a password was defined check-password -\ Load in the boot menu -include /boot/beastie.4th +\ Unless set otherwise, autoboot is automatic at this point -\ Start the boot menu -beastie-start Modified: projects/altix/sys/boot/i386/libi386/biosacpi.c ============================================================================== --- projects/altix/sys/boot/i386/libi386/biosacpi.c Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/i386/libi386/biosacpi.c Tue Jun 28 21:21:10 2011 (r223656) @@ -61,7 +61,7 @@ biosacpi_detect(void) return; /* export values from the RSDP */ - sprintf(buf, "%p", VTOP(rsdp)); + sprintf(buf, "%u", VTOP(rsdp)); setenv("hint.acpi.0.rsdp", buf, 1); revision = rsdp->Revision; if (revision == 0) Modified: projects/altix/sys/boot/i386/zfsboot/zfsldr.S ============================================================================== --- projects/altix/sys/boot/i386/zfsboot/zfsldr.S Tue Jun 28 21:01:32 2011 (r223655) +++ projects/altix/sys/boot/i386/zfsboot/zfsldr.S Tue Jun 28 21:21:10 2011 (r223656) @@ -16,7 +16,6 @@ */ /* Memory Locations */ - .set MEM_REL,0x700 # Relocation address .set MEM_ARG,0x900 # Arguments .set MEM_ORG,0x7c00 # Origin .set MEM_BUF,0x8000 # Load area @@ -38,43 +37,6 @@ .globl start .code16 -start: jmp main # Start recognizably - -/* - * This is the start of a standard BIOS Parameter Block (BPB). Most bootable - * FAT disks have this at the start of their MBR. While normal BIOS's will - * work fine without this section, IBM's El Torito emulation "fixes" up the - * BPB by writing into the memory copy of the MBR. Rather than have data - * written into our code, we'll define a BPB to work around it. - * The data marked with (T) indicates a field required for a ThinkPad to - * recognize the disk and (W) indicates fields written from IBM BIOS code. - * The use of the BPB is based on what OpenBSD and NetBSD implemented in - * their boot code but the required fields were determined by trial and error. - * - * Note: If additional space is needed in boot1, one solution would be to - * move the "prompt" message data (below) to replace the OEM ID. - */ - .org 0x03, 0x00 -oemid: .space 0x08, 0x00 # OEM ID - - .org 0x0b, 0x00 -bpb: .word 512 # sector size (T) - .byte 0 # sectors/clustor - .word 0 # reserved sectors - .byte 0 # number of FATs - .word 0 # root entries - .word 0 # small sectors - .byte 0 # media type (W) - .word 0 # sectors/fat - .word 18 # sectors per track (T) - .word 2 # number of heads (T) - .long 0 # hidden sectors (W) - .long 0 # large sectors - - .org 0x24, 0x00 -ebpb: .byte 0 # BIOS physical drive number (W) - - .org 0x25,0x90 /* * Load the rest of zfsboot2 and BTX up, copy the parts to the right locations, * and start it all up. @@ -84,33 +46,24 @@ ebpb: .byte 0 # BIOS physical drive nu * Setup the segment registers to flat addressing (segment 0) and setup the * stack to end just below the start of our code. */ -main: cld # String ops inc +start: cld # String ops inc xor %cx,%cx # Zero mov %cx,%es # Address mov %cx,%ds # data mov %cx,%ss # Set up mov $start,%sp # stack /* - * Relocate ourself to MEM_REL. Since %cx == 0, the inc %ch sets - * %cx == 0x100. - */ - mov %sp,%si # Source - mov $MEM_REL,%di # Destination - incb %ch # Word count - rep # Copy - movsw # code -/* - * If we are on a hard drive, then load the MBR and look for the first - * FreeBSD slice. We use the fake partition entry below that points to - * the MBR when we call nread. The first pass looks for the first active - * FreeBSD slice. The second pass looks for the first non-active FreeBSD - * slice if the first one fails. - */ - mov $part4,%si # Partition - cmpb $0x80,%dl # Hard drive? - jb main.4 # No - movb $0x1,%dh # Block count - callw nread # Read MBR + * Load the MBR and look for the first FreeBSD slice. We use the fake + * partition entry below that points to the MBR when we call read. + * The first pass looks for the first active FreeBSD slice. The + * second pass looks for the first non-active FreeBSD slice if the + * first one fails. + */ + call check_edd # Make sure EDD works + mov $part4,%si # Dummy partition + xor %eax,%eax # Read MBR + movl $MEM_BUF,%ebx # from first + call read # sector mov $0x1,%cx # Two passes main.1: mov $MEM_BUF+PRT_OFF,%si # Partition table movb $0x1,%dh # Partition @@ -131,60 +84,55 @@ main.3: add $0x10,%si # Next entry */ mov $msg_part,%si # Message jmp error # Error -/* - * Floppies use partition 0 of drive 0. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106282121.p5SLLBFC066044>