PERFORCE change 136749 for review
Rui Paulo
rpaulo at FreeBSD.org
Mon Mar 3 16:17:35 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=136749
Change 136749 by rpaulo at rpaulo_vmware on 2008/03/03 16:17:21
IFC
Affected files ...
.. //depot/projects/tcpecn/amd64/amd64/identcpu.c#4 integrate
.. //depot/projects/tcpecn/amd64/amd64/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/amd64/include/smp.h#2 integrate
.. //depot/projects/tcpecn/arm/include/_bus.h#2 integrate
.. //depot/projects/tcpecn/arm/xscale/ixp425/ixp425.c#2 integrate
.. //depot/projects/tcpecn/arm/xscale/ixp425/ixp425_iic.c#2 integrate
.. //depot/projects/tcpecn/boot/common/bootstrap.h#2 integrate
.. //depot/projects/tcpecn/boot/common/load_elf.c#2 integrate
.. //depot/projects/tcpecn/boot/i386/boot2/boot2.c#2 integrate
.. //depot/projects/tcpecn/boot/i386/btx/btx/Makefile#2 integrate
.. //depot/projects/tcpecn/boot/i386/btx/btx/btx.S#2 integrate
.. //depot/projects/tcpecn/boot/i386/gptboot/gptboot.c#2 integrate
.. //depot/projects/tcpecn/boot/i386/libi386/biosdisk.c#2 integrate
.. //depot/projects/tcpecn/boot/pc98/btx/btx/Makefile#2 integrate
.. //depot/projects/tcpecn/boot/pc98/btx/btx/btx.S#2 integrate
.. //depot/projects/tcpecn/boot/pc98/libpc98/Makefile#2 integrate
.. //depot/projects/tcpecn/boot/pc98/libpc98/biosdisk.c#2 integrate
.. //depot/projects/tcpecn/boot/powerpc/Makefile#3 integrate
.. //depot/projects/tcpecn/boot/powerpc/ofw/Makefile#4 integrate
.. //depot/projects/tcpecn/boot/powerpc/uboot/Makefile#2 integrate
.. //depot/projects/tcpecn/boot/powerpc/uboot/conf.c#2 integrate
.. //depot/projects/tcpecn/boot/powerpc/uboot/metadata.c#2 integrate
.. //depot/projects/tcpecn/boot/powerpc/uboot/start.S#2 integrate
.. //depot/projects/tcpecn/boot/uboot/common/main.c#2 integrate
.. //depot/projects/tcpecn/boot/uboot/lib/Makefile#2 integrate
.. //depot/projects/tcpecn/boot/uboot/lib/api_public.h#2 integrate
.. //depot/projects/tcpecn/boot/uboot/lib/glue.c#2 integrate
.. //depot/projects/tcpecn/boot/uboot/lib/glue.h#1 branch
.. //depot/projects/tcpecn/cam/cam_xpt.c#5 integrate
.. //depot/projects/tcpecn/cam/scsi/scsi_ses.c#2 integrate
.. //depot/projects/tcpecn/compat/linux/linux_futex.c#2 integrate
.. //depot/projects/tcpecn/compat/linux/linux_misc.c#3 integrate
.. //depot/projects/tcpecn/compat/linux/linux_misc.h#2 integrate
.. //depot/projects/tcpecn/conf/NOTES#6 integrate
.. //depot/projects/tcpecn/conf/files#6 integrate
.. //depot/projects/tcpecn/conf/files.powerpc#4 integrate
.. //depot/projects/tcpecn/conf/ldscript.powerpc#2 integrate
.. //depot/projects/tcpecn/conf/options#6 integrate
.. //depot/projects/tcpecn/conf/options.powerpc#3 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate
.. //depot/projects/tcpecn/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate
.. //depot/projects/tcpecn/dev/atkbdc/psm.c#2 integrate
.. //depot/projects/tcpecn/dev/bce/if_bce.c#2 integrate
.. //depot/projects/tcpecn/dev/bce/if_bcefw.h#2 integrate
.. //depot/projects/tcpecn/dev/bce/if_bcereg.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/bin2h.pl#1 branch
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_ael1002.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_common.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_ctl_defs.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_firmware_exports.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_mc5.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_mv88e1xxx.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_regs.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_t3_cpl.h#4 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_t3_hw.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_tcb.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_version.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_vsc8211.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/common/cxgb_xgmac.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_adapter.h#4 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_ioctl.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_l2t.c#4 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_l2t.h#3 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_main.c#4 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_multiq.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_offload.c#3 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_osdep.h#4 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_sge.c#5 integrate
.. //depot/projects/tcpecn/dev/cxgb/cxgb_t3fw.c#1 branch
.. //depot/projects/tcpecn/dev/cxgb/cxgb_t3fw.h#1 branch
.. //depot/projects/tcpecn/dev/cxgb/sys/cxgb_support.c#3 integrate
.. //depot/projects/tcpecn/dev/cxgb/sys/mbufq.h#3 integrate
.. //depot/projects/tcpecn/dev/cxgb/sys/mvec.h#5 integrate
.. //depot/projects/tcpecn/dev/cxgb/sys/uipc_mvec.c#5 integrate
.. //depot/projects/tcpecn/dev/cxgb/t3b_protocol_sram-1.1.0.bin.gz.uu#2 delete
.. //depot/projects/tcpecn/dev/cxgb/t3b_protocol_sram.h#1 branch
.. //depot/projects/tcpecn/dev/cxgb/t3b_tp_eeprom-1.1.0.bin.gz.uu#2 delete
.. //depot/projects/tcpecn/dev/cxgb/t3b_tp_eeprom.h#1 branch
.. //depot/projects/tcpecn/dev/cxgb/t3cdev.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/t3fw-4.7.0.bin.gz.uu#2 delete
.. //depot/projects/tcpecn/dev/cxgb/ulp/toecore/cxgb_toedev.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_cpl_io.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#3 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_ddp.c#1 branch
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_defs.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_listen.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_t3_ddp.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_tcp_subr.c#2 delete
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_tcp_usrreq.c#2 delete
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_toepcb.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_tom.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_tom.h#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c#2 integrate
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_vm.c#1 branch
.. //depot/projects/tcpecn/dev/cxgb/ulp/tom/cxgb_vm.h#1 branch
.. //depot/projects/tcpecn/dev/drm/drm_pciids.h#2 integrate
.. //depot/projects/tcpecn/dev/em/LICENSE#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_80003es2lan.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_80003es2lan.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82540.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82541.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82541.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82542.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82543.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82543.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82571.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82571.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_82575.c#2 delete
.. //depot/projects/tcpecn/dev/em/e1000_82575.h#2 delete
.. //depot/projects/tcpecn/dev/em/e1000_api.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_api.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_defines.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_hw.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_ich8lan.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_ich8lan.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_mac.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_mac.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_manage.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_manage.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_nvm.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_nvm.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_osdep.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_phy.c#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_phy.h#2 integrate
.. //depot/projects/tcpecn/dev/em/e1000_regs.h#2 integrate
.. //depot/projects/tcpecn/dev/em/if_em.c#3 integrate
.. //depot/projects/tcpecn/dev/em/if_em.h#3 integrate
.. //depot/projects/tcpecn/dev/igb/e1000_82575.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_82575.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_api.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_api.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_defines.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_hw.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_mac.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_mac.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_manage.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_manage.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_nvm.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_nvm.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_osdep.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_phy.c#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_phy.h#1 branch
.. //depot/projects/tcpecn/dev/igb/e1000_regs.h#1 branch
.. //depot/projects/tcpecn/dev/igb/if_igb.c#1 branch
.. //depot/projects/tcpecn/dev/igb/if_igb.h#1 branch
.. //depot/projects/tcpecn/dev/md/md.c#3 integrate
.. //depot/projects/tcpecn/dev/msk/if_msk.c#5 integrate
.. //depot/projects/tcpecn/dev/msk/if_mskreg.h#3 integrate
.. //depot/projects/tcpecn/dev/re/if_re.c#4 integrate
.. //depot/projects/tcpecn/dev/usb/ehci.c#4 integrate
.. //depot/projects/tcpecn/dev/usb/ubsa.c#2 integrate
.. //depot/projects/tcpecn/dev/usb/ucom.c#2 integrate
.. //depot/projects/tcpecn/dev/usb/umass.c#3 integrate
.. //depot/projects/tcpecn/dev/usb/usbdevs#5 integrate
.. //depot/projects/tcpecn/dev/usb/uscanner.c#2 integrate
.. //depot/projects/tcpecn/fs/coda/TODO#3 integrate
.. //depot/projects/tcpecn/fs/devfs/devfs_vnops.c#4 integrate
.. //depot/projects/tcpecn/fs/fdescfs/fdesc_vnops.c#3 integrate
.. //depot/projects/tcpecn/fs/msdosfs/msdosfs_vfsops.c#3 integrate
.. //depot/projects/tcpecn/fs/nullfs/null_vfsops.c#4 integrate
.. //depot/projects/tcpecn/fs/nullfs/null_vnops.c#4 integrate
.. //depot/projects/tcpecn/fs/nwfs/nwfs_node.c#4 integrate
.. //depot/projects/tcpecn/fs/nwfs/nwfs_subr.c#2 integrate
.. //depot/projects/tcpecn/fs/pseudofs/pseudofs_vncache.c#3 integrate
.. //depot/projects/tcpecn/fs/smbfs/smbfs.h#2 integrate
.. //depot/projects/tcpecn/fs/smbfs/smbfs_io.c#3 integrate
.. //depot/projects/tcpecn/fs/smbfs/smbfs_node.c#4 integrate
.. //depot/projects/tcpecn/fs/smbfs/smbfs_vfsops.c#3 integrate
.. //depot/projects/tcpecn/fs/tmpfs/tmpfs_subr.c#4 integrate
.. //depot/projects/tcpecn/fs/tmpfs/tmpfs_vnops.c#4 integrate
.. //depot/projects/tcpecn/fs/unionfs/union_vfsops.c#3 integrate
.. //depot/projects/tcpecn/fs/unionfs/union_vnops.c#4 integrate
.. //depot/projects/tcpecn/gdb/gdb_main.c#2 integrate
.. //depot/projects/tcpecn/geom/part/g_part_mbr.c#2 integrate
.. //depot/projects/tcpecn/geom/part/g_part_vtoc8.c#1 branch
.. //depot/projects/tcpecn/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c#3 integrate
.. //depot/projects/tcpecn/i386/cpufreq/est.c#2 integrate
.. //depot/projects/tcpecn/i386/i386/identcpu.c#2 integrate
.. //depot/projects/tcpecn/i386/i386/initcpu.c#2 integrate
.. //depot/projects/tcpecn/i386/i386/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/i386/include/smp.h#2 integrate
.. //depot/projects/tcpecn/ia64/ia64/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/kern/init_main.c#4 integrate
.. //depot/projects/tcpecn/kern/init_sysent.c#5 integrate
.. //depot/projects/tcpecn/kern/kern_cpuset.c#1 branch
.. //depot/projects/tcpecn/kern/kern_descrip.c#6 integrate
.. //depot/projects/tcpecn/kern/kern_ktrace.c#3 integrate
.. //depot/projects/tcpecn/kern/kern_lock.c#6 integrate
.. //depot/projects/tcpecn/kern/kern_thread.c#3 integrate
.. //depot/projects/tcpecn/kern/sched_4bsd.c#3 integrate
.. //depot/projects/tcpecn/kern/sched_ule.c#5 integrate
.. //depot/projects/tcpecn/kern/subr_smp.c#3 integrate
.. //depot/projects/tcpecn/kern/syscalls.c#5 integrate
.. //depot/projects/tcpecn/kern/syscalls.master#5 integrate
.. //depot/projects/tcpecn/kern/systrace_args.c#5 integrate
.. //depot/projects/tcpecn/kern/uipc_syscalls.c#5 integrate
.. //depot/projects/tcpecn/kern/vfs_bio.c#6 integrate
.. //depot/projects/tcpecn/kern/vfs_cache.c#3 integrate
.. //depot/projects/tcpecn/kern/vfs_default.c#4 integrate
.. //depot/projects/tcpecn/kern/vfs_lookup.c#3 integrate
.. //depot/projects/tcpecn/kern/vfs_subr.c#6 integrate
.. //depot/projects/tcpecn/kern/vfs_syscalls.c#5 integrate
.. //depot/projects/tcpecn/kern/vnode_if.src#3 integrate
.. //depot/projects/tcpecn/libkern/cmpdi2.c#1 branch
.. //depot/projects/tcpecn/libkern/quad.h#2 integrate
.. //depot/projects/tcpecn/modules/Makefile#4 integrate
.. //depot/projects/tcpecn/modules/cxgb/Makefile#3 integrate
.. //depot/projects/tcpecn/modules/cxgb/cxgb/Makefile#4 integrate
.. //depot/projects/tcpecn/modules/cxgb/cxgb_t3fw/Makefile#1 branch
.. //depot/projects/tcpecn/modules/cxgb/tom/Makefile#2 integrate
.. //depot/projects/tcpecn/modules/em/Makefile#2 integrate
.. //depot/projects/tcpecn/modules/geom/Makefile#3 integrate
.. //depot/projects/tcpecn/modules/geom/geom_apple/Makefile#2 delete
.. //depot/projects/tcpecn/modules/geom/geom_eli/Makefile#2 integrate
.. //depot/projects/tcpecn/modules/geom/geom_gpt/Makefile#2 delete
.. //depot/projects/tcpecn/modules/geom/geom_part/Makefile#1 branch
.. //depot/projects/tcpecn/modules/hwpmc/Makefile#2 integrate
.. //depot/projects/tcpecn/modules/igb/Makefile#1 branch
.. //depot/projects/tcpecn/modules/ipfw_nat/Makefile#1 branch
.. //depot/projects/tcpecn/modules/sound/driver/emu10kx/Makefile#2 integrate
.. //depot/projects/tcpecn/modules/zfs/Makefile#3 integrate
.. //depot/projects/tcpecn/net80211/ieee80211_scan_sta.c#3 integrate
.. //depot/projects/tcpecn/netgraph/ng_base.c#4 integrate
.. //depot/projects/tcpecn/netgraph/ng_nat.c#2 integrate
.. //depot/projects/tcpecn/netgraph/ng_nat.h#2 integrate
.. //depot/projects/tcpecn/netgraph/ng_pppoe.c#4 integrate
.. //depot/projects/tcpecn/netinet/ip_dummynet.c#3 integrate
.. //depot/projects/tcpecn/netinet/ip_fw.h#3 integrate
.. //depot/projects/tcpecn/netinet/ip_fw2.c#4 integrate
.. //depot/projects/tcpecn/netinet/ip_fw_nat.c#1 branch
.. //depot/projects/tcpecn/netinet/ip_fw_pfil.c#2 integrate
.. //depot/projects/tcpecn/netinet/sctp_output.c#3 integrate
.. //depot/projects/tcpecn/netinet/sctp_pcb.c#3 integrate
.. //depot/projects/tcpecn/netinet/tcp_input.c#5 integrate
.. //depot/projects/tcpecn/netinet/tcp_var.h#6 integrate
.. //depot/projects/tcpecn/netipsec/key.c#2 integrate
.. //depot/projects/tcpecn/netipsec/key_debug.c#2 integrate
.. //depot/projects/tcpecn/netncp/ncp_conn.c#3 integrate
.. //depot/projects/tcpecn/netncp/ncp_conn.h#2 integrate
.. //depot/projects/tcpecn/netsmb/smb_conn.c#3 integrate
.. //depot/projects/tcpecn/netsmb/smb_conn.h#2 integrate
.. //depot/projects/tcpecn/netsmb/smb_iod.c#2 integrate
.. //depot/projects/tcpecn/nfs4client/nfs4_idmap.c#3 integrate
.. //depot/projects/tcpecn/nfs4client/nfs4_vfsops.c#4 integrate
.. //depot/projects/tcpecn/nfsclient/nfs_node.c#3 integrate
.. //depot/projects/tcpecn/nfsclient/nfs_subs.c#4 integrate
.. //depot/projects/tcpecn/nfsclient/nfs_vfsops.c#4 integrate
.. //depot/projects/tcpecn/pc98/cbus/sio.c#3 integrate
.. //depot/projects/tcpecn/pc98/pc98/machdep.c#3 integrate
.. //depot/projects/tcpecn/pci/if_rl.c#3 integrate
.. //depot/projects/tcpecn/pci/if_rlreg.h#5 integrate
.. //depot/projects/tcpecn/powerpc/aim/locore.S#2 integrate
.. //depot/projects/tcpecn/powerpc/aim/machdep.c#3 integrate
.. //depot/projects/tcpecn/powerpc/aim/swtch.S#2 integrate
.. //depot/projects/tcpecn/powerpc/aim/trap.c#2 integrate
.. //depot/projects/tcpecn/powerpc/aim/trap_subr.S#2 integrate
.. //depot/projects/tcpecn/powerpc/aim/vm_machdep.c#2 integrate
.. //depot/projects/tcpecn/powerpc/conf/NOTES#4 integrate
.. //depot/projects/tcpecn/powerpc/fpu/fpu_add.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_arith.h#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_compare.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_div.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_emu.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_emu.h#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_explode.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_extern.h#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_implode.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_instr.h#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_mul.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_sqrt.c#1 branch
.. //depot/projects/tcpecn/powerpc/fpu/fpu_subr.c#1 branch
.. //depot/projects/tcpecn/powerpc/include/bootinfo.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/float.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/frame.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/hid.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/kdb.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/metadata.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/pcb.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/pcpu.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/pmap.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/psl.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/pte.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/sf_buf.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/spr.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/tlb.h#1 branch
.. //depot/projects/tcpecn/powerpc/include/trap.h#2 integrate
.. //depot/projects/tcpecn/powerpc/include/trap_aim.h#1 branch
.. //depot/projects/tcpecn/powerpc/include/trap_booke.h#1 branch
.. //depot/projects/tcpecn/powerpc/include/vmparam.h#3 integrate
.. //depot/projects/tcpecn/powerpc/powerpc/cpu.c#2 integrate
.. //depot/projects/tcpecn/powerpc/powerpc/db_trace.c#3 integrate
.. //depot/projects/tcpecn/powerpc/powerpc/genassym.c#2 integrate
.. //depot/projects/tcpecn/powerpc/powerpc/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/security/audit/audit.c#4 integrate
.. //depot/projects/tcpecn/security/audit/audit_arg.c#3 integrate
.. //depot/projects/tcpecn/security/audit/audit_bsm.c#3 integrate
.. //depot/projects/tcpecn/security/audit/audit_bsm_klib.c#3 integrate
.. //depot/projects/tcpecn/security/audit/audit_private.h#2 integrate
.. //depot/projects/tcpecn/security/audit/audit_syscalls.c#3 integrate
.. //depot/projects/tcpecn/security/audit/audit_trigger.c#2 integrate
.. //depot/projects/tcpecn/security/audit/audit_worker.c#3 integrate
.. //depot/projects/tcpecn/sparc64/sparc64/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/sun4v/sun4v/mp_machdep.c#2 integrate
.. //depot/projects/tcpecn/sys/_types.h#2 integrate
.. //depot/projects/tcpecn/sys/buf.h#4 integrate
.. //depot/projects/tcpecn/sys/bufobj.h#2 integrate
.. //depot/projects/tcpecn/sys/cpuset.h#1 branch
.. //depot/projects/tcpecn/sys/ktrace.h#2 integrate
.. //depot/projects/tcpecn/sys/lockmgr.h#5 integrate
.. //depot/projects/tcpecn/sys/mount.h#2 integrate
.. //depot/projects/tcpecn/sys/param.h#7 integrate
.. //depot/projects/tcpecn/sys/proc.h#5 integrate
.. //depot/projects/tcpecn/sys/sched.h#2 integrate
.. //depot/projects/tcpecn/sys/smp.h#2 integrate
.. //depot/projects/tcpecn/sys/syscall.h#5 integrate
.. //depot/projects/tcpecn/sys/syscall.mk#5 integrate
.. //depot/projects/tcpecn/sys/sysproto.h#5 integrate
.. //depot/projects/tcpecn/sys/types.h#3 integrate
.. //depot/projects/tcpecn/sys/vnode.h#3 integrate
.. //depot/projects/tcpecn/sys/vtoc.h#1 branch
.. //depot/projects/tcpecn/ufs/ffs/ffs_rawread.c#3 integrate
.. //depot/projects/tcpecn/ufs/ffs/ffs_softdep.c#3 integrate
.. //depot/projects/tcpecn/ufs/ffs/ffs_vfsops.c#4 integrate
.. //depot/projects/tcpecn/ufs/ffs/ffs_vnops.c#5 integrate
.. //depot/projects/tcpecn/ufs/ufs/ufs_extattr.c#4 integrate
.. //depot/projects/tcpecn/vm/vm_map.h#2 integrate
.. //depot/projects/tcpecn/vm/vm_object.c#4 integrate
Differences ...
==== //depot/projects/tcpecn/amd64/amd64/identcpu.c#4 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.157 2008/02/02 23:17:27 das Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.158 2008/03/02 07:58:40 jeff Exp $");
#include "opt_cpu.h"
@@ -97,6 +97,10 @@
{ "Sledgehammer", CPUCLASS_K8 }, /* CPU_SLEDGEHAMMER */
};
+int cpu_cores;
+int cpu_logical;
+
+
extern int pq_l2size;
extern int pq_l2nways;
@@ -360,11 +364,13 @@
if ((regs[0] & 0x1f) != 0)
cmp = ((regs[0] >> 26) & 0x3f) + 1;
}
+ cpu_cores = cmp;
+ cpu_logical = htt / cmp;
if (cmp > 1)
printf("\n Cores per package: %d", cmp);
if ((htt / cmp) > 1)
printf("\n Logical CPUs per core: %d",
- htt / cmp);
+ cpu_logical);
}
}
/* Avoid ugly blank lines: only print newline when we have to. */
==== //depot/projects/tcpecn/amd64/amd64/mp_machdep.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.287 2007/08/02 21:17:58 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.288 2008/03/02 07:58:40 jeff Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -83,12 +83,6 @@
extern struct pcpu __pcpu[];
-/*
- * CPU topology map datastructures for HTT.
- */
-static struct cpu_group mp_groups[MAXCPU];
-static struct cpu_top mp_top;
-
/* AP uses this during bootstrap. Do not staticize. */
char *bootSTK;
static int bootAP;
@@ -182,40 +176,38 @@
mem_range_softc.mr_op->initAP(&mem_range_softc);
}
-void
-mp_topology(void)
+struct cpu_group *
+cpu_topo(void)
{
- struct cpu_group *group;
- int apic_id;
- int groups;
- int cpu;
-
- /* Build the smp_topology map. */
- /* Nothing to do if there is no HTT support. */
- if (hyperthreading_cpus <= 1)
- return;
- group = &mp_groups[0];
- groups = 1;
- for (cpu = 0, apic_id = 0; apic_id <= MAX_APIC_ID; apic_id++) {
- if (!cpu_info[apic_id].cpu_present)
- continue;
- /*
- * If the current group has members and we're not a logical
- * cpu, create a new group.
- */
- if (group->cg_count != 0 &&
- (apic_id % hyperthreading_cpus) == 0) {
- group++;
- groups++;
- }
- group->cg_count++;
- group->cg_mask |= 1 << cpu;
- cpu++;
+ if (cpu_cores == 0)
+ cpu_cores = 1;
+ if (cpu_logical == 0)
+ cpu_logical = 1;
+ if (mp_ncpus % (cpu_cores * cpu_logical) != 0) {
+ printf("WARNING: Non-uniform processors.\n");
+ printf("WARNING: Using suboptimal topology.\n");
+ return (smp_topo_none());
}
-
- mp_top.ct_count = groups;
- mp_top.ct_group = mp_groups;
- smp_topology = &mp_top;
+ /*
+ * No multi-core or hyper-threaded.
+ */
+ if (cpu_logical * cpu_cores == 1)
+ return (smp_topo_none());
+ /*
+ * Only HTT no multi-core.
+ */
+ if (cpu_logical > 1 && cpu_cores == 1)
+ return (smp_topo_1level(CG_SHARE_L1, cpu_logical, CG_FLAG_HTT));
+ /*
+ * Only multi-core no HTT.
+ */
+ if (cpu_cores > 1 && cpu_logical == 1)
+ return (smp_topo_1level(CG_SHARE_NONE, cpu_cores, 0));
+ /*
+ * Both HTT and multi-core.
+ */
+ return (smp_topo_2level(CG_SHARE_NONE, cpu_cores,
+ CG_SHARE_L1, cpu_logical, CG_FLAG_HTT));
}
/*
@@ -409,9 +401,6 @@
}
set_interrupt_apic_ids();
-
- /* Last, setup the cpu topology now that we have probed CPUs */
- mp_topology();
}
==== //depot/projects/tcpecn/amd64/include/smp.h#2 (text+ko) ====
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $FreeBSD: src/sys/amd64/include/smp.h,v 1.91 2007/09/20 20:38:43 attilio Exp $
+ * $FreeBSD: src/sys/amd64/include/smp.h,v 1.92 2008/03/02 07:58:40 jeff Exp $
*
*/
@@ -36,6 +36,10 @@
extern struct pcb stoppcbs[];
extern int cpu_apic_ids[];
+/* global data in identcpu.c */
+extern int cpu_cores;
+extern int cpu_logical;
+
/* IPI handlers */
inthand_t
IDTVEC(invltlb), /* TLB shootdowns - global */
@@ -57,7 +61,6 @@
void ipi_bitmap_handler(struct trapframe frame);
u_int mp_bootaddress(u_int);
int mp_grab_cpu_hlt(void);
-void mp_topology(void);
void smp_cache_flush(void);
void smp_invlpg(vm_offset_t addr);
void smp_masked_invlpg(u_int mask, vm_offset_t addr);
==== //depot/projects/tcpecn/arm/include/_bus.h#2 (text+ko) ====
@@ -1,5 +1,5 @@
/*-
-% * Copyright (c) 2005 M. Warner Losh.
+ * Copyright (c) 2005 M. Warner Losh.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/_bus.h,v 1.1 2005/04/18 21:45:33 imp Exp $
+ * $FreeBSD: src/sys/arm/include/_bus.h,v 1.2 2008/02/26 11:45:32 rwatson Exp $
*/
#ifndef ARM_INCLUDE__BUS_H
==== //depot/projects/tcpecn/arm/xscale/ixp425/ixp425.c#2 (text+ko) ====
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.8 2007/05/29 18:10:42 jhay Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.9 2008/02/26 11:44:41 rwatson Exp $");
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
@@ -234,7 +234,7 @@
sc->sc_mem_rman.rm_descr = "IXP425 Memory";
if (rman_init(&sc->sc_mem_rman) != 0 ||
rman_manage_region(&sc->sc_mem_rman, 0, ~0) != 0)
- panic("ixp425_attach: failed to set up IRQ rman");
+ panic("ixp425_attach: failed to set up memory rman");
BUS_ADD_CHILD(dev, 0, "pcib", 0);
BUS_ADD_CHILD(dev, 0, "ixpclk", 0);
==== //depot/projects/tcpecn/arm/xscale/ixp425/ixp425_iic.c#2 (text+ko) ====
@@ -9,13 +9,6 @@
* 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed for the NetBSD Project by
- * Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
*
* THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
@@ -31,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.1 2006/11/19 23:55:23 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.2 2008/03/03 06:39:36 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
==== //depot/projects/tcpecn/boot/common/bootstrap.h#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.44 2006/12/18 07:35:14 kmacy Exp $
+ * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.45 2008/02/23 18:33:49 marcel Exp $
*/
#include <sys/types.h>
@@ -233,13 +233,15 @@
int file_addmodule(struct preloaded_file *fp, char *modname, int version,
struct kernel_module **newmp);
-
/* MI module loaders */
#ifdef __elfN
/* Relocation types. */
#define ELF_RELOC_REL 1
#define ELF_RELOC_RELA 2
+/* Relocation offset for some architectures */
+extern u_int64_t __elfN(relocation_offset);
+
struct elf_file;
typedef Elf_Addr (symaddr_fn)(struct elf_file *ef, Elf_Size symidx);
==== //depot/projects/tcpecn/boot/common/load_elf.c#2 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/load_elf.c,v 1.37 2006/11/02 17:52:43 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/load_elf.c,v 1.38 2008/02/23 18:33:50 marcel Exp $");
#include <sys/param.h>
#include <sys/exec.h>
@@ -83,6 +83,8 @@
const char *__elfN(kerneltype) = "elf kernel";
const char *__elfN(moduletype) = "elf module";
+u_int64_t __elfN(relocation_offset) = 0;
+
/*
* Attempt to load the file (file) as an ELF module. It will be stored at
* (dest), and a pointer to a module structure describing the loaded object
@@ -100,7 +102,7 @@
fp = NULL;
bzero(&ef, sizeof(struct elf_file));
-
+
/*
* Open the image, read and validate the ELF header
*/
@@ -266,9 +268,33 @@
#else
off = - (off & 0xff000000u); /* i386 relocates after locore */
#endif
+#elif defined(__powerpc__)
+ /*
+ * On the purely virtual memory machines like e500, the kernel is
+ * linked against its final VA range, which is most often not
+ * available at the loader stage, but only after kernel initializes
+ * and completes its VM settings. In such cases we cannot use p_vaddr
+ * field directly to load ELF segments, but put them at some
+ * 'load-time' locations.
+ */
+ if (off & 0xf0000000u) {
+ off = -(off & 0xf0000000u);
+ /*
+ * XXX the physical load address should not be hardcoded. Note
+ * that the Book-E kernel assumes that it's loaded at a 16MB
+ * boundary for now...
+ */
+ off += 0x01000000;
+ ehdr->e_entry += off;
+#ifdef ELF_VERBOSE
+ printf("Converted entry 0x%08x\n", ehdr->e_entry);
+#endif
+ } else
+ off = 0;
#else
off = 0; /* other archs use direct mapped kernels */
#endif
+ __elfN(relocation_offset) = off;
}
ef->off = off;
==== //depot/projects/tcpecn/boot/i386/boot2/boot2.c#2 (text+ko) ====
@@ -14,7 +14,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.85 2007/10/26 21:02:31 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.86 2008/02/28 17:08:05 jhb Exp $");
#include <sys/param.h>
#include <sys/disklabel.h>
@@ -129,7 +129,7 @@
unsigned start;
int init;
} dsk;
-static char cmd[512];
+static char cmd[512], cmddup[512];
static char kname[1024];
static uint32_t opts;
static int comspeed = SIOSPD;
@@ -255,10 +255,11 @@
fsread(ino, cmd, sizeof(cmd));
if (*cmd) {
+ memcpy(cmddup, cmd, sizeof(cmd));
if (parse())
autoboot = 0;
if (!OPT_CHECK(RBX_QUIET))
- printf("%s: %s", PATH_CONFIG, cmd);
+ printf("%s: %s", PATH_CONFIG, cmddup);
/* Do not process this command twice */
*cmd = 0;
}
==== //depot/projects/tcpecn/boot/i386/btx/btx/Makefile#2 (text+ko) ====
@@ -1,14 +1,10 @@
-# $FreeBSD: src/sys/boot/i386/btx/btx/Makefile,v 1.19 2004/12/21 08:47:13 ru Exp $
+# $FreeBSD: src/sys/boot/i386/btx/btx/Makefile,v 1.20 2008/02/27 23:35:39 jhb Exp $
PROG= btx
INTERNALPROG=
NO_MAN=
SRCS= btx.S
-.if defined(PAGING)
-CFLAGS+=-DPAGING
-.endif
-
.if defined(BOOT_BTX_NOHANG)
BOOT_BTX_FLAGS=0x1
.else
==== //depot/projects/tcpecn/boot/i386/btx/btx/btx.S#2 (text+ko) ====
@@ -12,7 +12,7 @@
* warranties of merchantability and fitness for a particular
* purpose.
*
- * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.44 2006/12/06 17:45:35 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.45 2008/02/27 23:35:39 jhb Exp $
*/
/*
@@ -25,8 +25,7 @@
.set MEM_IDT,0x1e00 # IDT
.set MEM_TSS,0x1f98 # TSS
.set MEM_MAP,0x2000 # I/O bit map
- .set MEM_DIR,0x4000 # Page directory
- .set MEM_TBL,0x5000 # Page tables
+ .set MEM_TSS_END,0x3fff # Page directory
.set MEM_ORG,0x9000 # BTX code
.set MEM_USR,0xa000 # Start of user memory
/*
@@ -88,7 +87,7 @@
.set _ESP0H,MEM_ESP0>>0x8 # Byte 1 of ESP0
.set _ESP1H,MEM_ESP1>>0x8 # Byte 1 of ESP1
.set _TSSIO,MEM_MAP-MEM_TSS # TSS I/O base
- .set _TSSLM,MEM_DIR-MEM_TSS-1 # TSS limit
+ .set _TSSLM,MEM_TSS_END-MEM_TSS # TSS limit
.set _IDTLM,MEM_TSS-MEM_IDT-1 # IDT limit
/*
* Code segment.
@@ -158,58 +157,15 @@
movb $SEL_SDATA,TSS_SS0(%di) # Set SS0
movb $_ESP1H,TSS_ESP1+1(%di) # Set ESP1
movb $_TSSIO,TSS_MAP(%di) # Set I/O bit map base
-#ifdef PAGING
/*
- * Create page directory.
- */
- xor %edx,%edx # Page
- mov $PAG_SIZ>>0x8,%dh # size
- xor %eax,%eax # Zero
- mov $MEM_DIR,%di # Page directory
- mov $PAG_CNT>>0xa,%cl # Entries
- mov $MEM_TBL|0x7,%ax # First entry
-init.5: stosl # Write entry
- add %dx,%ax # To next
- loop init.5 # Till done
-/*
- * Create page tables.
- */
- mov $MEM_TBL,%di # Page table
- mov $PAG_CNT>>0x8,%ch # Entries
- xor %ax,%ax # Start address
-init.6: mov $0x7,%al # Set U:W:P flags
- cmp btx_hdr+0x8,%cx # Standard user page?
- jb init.7 # Yes
- cmp $PAG_CNT-MEM_BTX>>0xc,%cx # BTX memory?
- jae init.7 # No or first page
- and $~0x2,%al # Clear W flag
- cmp $PAG_CNT-MEM_USR>>0xc,%cx # User page zero?
- jne init.7 # No
- testb $0x80,btx_hdr+0x7 # Unmap it?
- jz init.7 # No
- and $~0x1,%al # Clear P flag
-init.7: stosl # Set entry
- add %edx,%eax # Next address
- loop init.6 # Till done
-#endif
-/*
* Bring up the system.
*/
mov $0x2820,%bx # Set protected mode
callw setpic # IRQ offsets
lidt idtdesc # Set IDT
-#ifdef PAGING
- xor %eax,%eax # Set base
- mov $MEM_DIR>>0x8,%ah # of page
- mov %eax,%cr3 # directory
-#endif
lgdt gdtdesc # Set GDT
mov %cr0,%eax # Switch to protected
-#ifdef PAGING
- or $0x80000001,%eax # mode and enable paging
-#else
inc %ax # mode
-#endif
mov %eax,%cr0 #
ljmp $SEL_SCODE,$init.8 # To 32-bit code
.code32
@@ -854,13 +810,6 @@
movl $MEM_USR,%eax # User base address
addl 0xc(%esp,1),%eax # Change to user
leal 0x4(%eax),%esp # stack
-#ifdef PAGING
- movl %cr0,%eax # Turn
- andl $~0x80000000,%eax # off
- movl %eax,%cr0 # paging
- xorl %eax,%eax # Flush
- movl %eax,%cr3 # TLB
-#endif
popl %eax # Call
call *%eax # program
intx30.1: orb $0x1,%ss:btx_hdr+0x7 # Flag reboot
==== //depot/projects/tcpecn/boot/i386/gptboot/gptboot.c#2 (text+ko) ====
@@ -14,7 +14,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.86 2007/10/26 21:02:31 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.87 2008/02/28 17:08:05 jhb Exp $");
#include <sys/param.h>
#include <sys/gpt.h>
@@ -127,7 +127,7 @@
daddr_t start;
int init;
} dsk;
-static char cmd[512];
+static char cmd[512], cmddup[512];
static char kname[1024];
static uint32_t opts;
static int comspeed = SIOSPD;
@@ -253,10 +253,11 @@
fsread(ino, cmd, sizeof(cmd));
if (*cmd) {
+ memcpy(cmddup, cmd, sizeof(cmd));
if (parse())
autoboot = 0;
if (!OPT_CHECK(RBX_QUIET))
- printf("%s: %s", PATH_CONFIG, cmd);
+ printf("%s: %s", PATH_CONFIG, cmddup);
/* Do not process this command twice */
*cmd = 0;
}
==== //depot/projects/tcpecn/boot/i386/libi386/biosdisk.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.54 2007/11/12 23:53:43 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.55 2008/02/28 17:49:23 jhb Exp $");
/*
* BIOS disk device handling.
@@ -316,6 +316,29 @@
}
}
+/* Given a size in 512 byte sectors, convert it to a human-readable number. */
+static char *
+display_size(uint64_t size)
+{
+ static char buf[80];
+ char unit;
+
+ size /= 2;
+ unit = 'K';
+ if (size >= 10485760000LL) {
+ size /= 1073741824;
+ unit = 'T';
+ } else if (size >= 10240000) {
+ size /= 1048576;
+ unit = 'G';
+ } else if (size >= 10000) {
+ size /= 1024;
+ unit = 'M';
+ }
+ sprintf(buf, "%.6ld%cB", (long)size, unit);
+ return (buf);
+}
+
static uuid_t efi = GPT_ENT_TYPE_EFI;
static uuid_t freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT;
static uuid_t freebsd_ufs = GPT_ENT_TYPE_FREEBSD_UFS;
@@ -329,33 +352,22 @@
{
char stats[80];
char line[96];
- uint64_t size;
- char unit;
- if (verbose) {
- size = (gp->gp_end + 1 - gp->gp_start) / 2048;
- unit = 'M';
- if (size >= 10240000) {
- size /= 1048576;
- unit = 'T';
- } else if (size >= 10000) {
- size /= 1024;
- unit = 'G';
- }
- sprintf(stats, " %.6ld%cB", (long)size, unit);
- } else
+ if (verbose)
+ sprintf(stats, " %s", display_size(gp->gp_end + 1 - gp->gp_start));
+ else
stats[0] = '\0';
if (uuid_equal(&gp->gp_type, &efi, NULL))
- sprintf(line, "%s: EFI%s\n", prefix, stats);
+ sprintf(line, "%s: EFI %s\n", prefix, stats);
else if (uuid_equal(&gp->gp_type, &ms_basic_data, NULL))
- sprintf(line, "%s: FAT/NTFS%s\n", prefix, stats);
+ sprintf(line, "%s: FAT/NTFS %s\n", prefix, stats);
else if (uuid_equal(&gp->gp_type, &freebsd_boot, NULL))
sprintf(line, "%s: FreeBSD boot%s\n", prefix, stats);
else if (uuid_equal(&gp->gp_type, &freebsd_ufs, NULL))
- sprintf(line, "%s: FreeBSD UFS%s\n", prefix, stats);
+ sprintf(line, "%s: FreeBSD UFS %s\n", prefix, stats);
else if (uuid_equal(&gp->gp_type, &freebsd_zfs, NULL))
- sprintf(line, "%s: FreeBSD ZFS%s\n", prefix, stats);
+ sprintf(line, "%s: FreeBSD ZFS %s\n", prefix, stats);
else if (uuid_equal(&gp->gp_type, &freebsd_swap, NULL))
sprintf(line, "%s: FreeBSD swap%s\n", prefix, stats);
else
@@ -377,70 +389,50 @@
bd_printslice(struct open_disk *od, struct dos_partition *dp, char *prefix,
int verbose)
{
+ char stats[80];
char line[80];
+ if (verbose)
+ sprintf(stats, " %s (%d - %d)", display_size(dp->dp_size),
+ dp->dp_start, dp->dp_start + dp->dp_size);
+ else
+ stats[0] = '\0';
+
switch (dp->dp_typ) {
case DOSPTYP_386BSD:
bd_printbsdslice(od, (daddr_t)dp->dp_start, prefix, verbose);
return;
case DOSPTYP_LINSWP:
- if (verbose)
- sprintf(line, "%s: Linux swap %.6dMB (%d - %d)\n",
- prefix, dp->dp_size / 2048,
- dp->dp_start, dp->dp_start + dp->dp_size);
- else
- sprintf(line, "%s: Linux swap\n", prefix);
+ sprintf(line, "%s: Linux swap%s\n", prefix, stats);
break;
case DOSPTYP_LINUX:
/*
* XXX
* read the superblock to confirm this is an ext2fs partition?
*/
- if (verbose)
- sprintf(line, "%s: ext2fs %.6dMB (%d - %d)\n", prefix,
- dp->dp_size / 2048, dp->dp_start,
- dp->dp_start + dp->dp_size);
- else
- sprintf(line, "%s: ext2fs\n", prefix);
+ sprintf(line, "%s: ext2fs%s\n", prefix, stats);
break;
case 0x00: /* unused partition */
case DOSPTYP_EXT:
return;
case 0x01:
- if (verbose)
- sprintf(line, "%s: FAT-12 %.6dMB (%d - %d)\n", prefix,
- dp->dp_size / 2048, dp->dp_start,
- dp->dp_start + dp->dp_size);
- else
- sprintf(line, "%s: FAT-12\n", prefix);
+ sprintf(line, "%s: FAT-12%s\n", prefix, stats);
break;
case 0x04:
case 0x06:
case 0x0e:
- if (verbose)
- sprintf(line, "%s: FAT-16 %.6dMB (%d - %d)\n", prefix,
- dp->dp_size / 2048, dp->dp_start,
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list