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