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 ...

Marcel Moolenaar marcel at FreeBSD.org
Tue Jun 28 21:21:11 UTC 2011


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 at 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 at 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 ***


More information about the svn-src-projects mailing list