svn commit: r224118 - in projects/altix: lib/libstand
sys/amd64/acpica sys/amd64/amd64 sys/amd64/include
sys/arm/arm sys/arm/mv sys/boot sys/boot/common
sys/boot/ficl/amd64 sys/boot/i386/libi386 sy...
Marcel Moolenaar
marcel at FreeBSD.org
Sat Jul 16 21:14:30 UTC 2011
Author: marcel
Date: Sat Jul 16 21:14:29 2011
New Revision: 224118
URL: http://svn.freebsd.org/changeset/base/224118
Log:
Sync with head at 224117
Added:
projects/altix/sys/boot/common/disk.c
- copied unchanged from r224117, head/sys/boot/common/disk.c
projects/altix/sys/boot/common/disk.h
- copied unchanged from r224117, head/sys/boot/common/disk.h
projects/altix/sys/boot/ficl/amd64/
- copied from r224117, head/sys/boot/ficl/amd64/
projects/altix/sys/boot/powerpc/ps3/ps3bus.h
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3bus.h
projects/altix/sys/boot/powerpc/ps3/ps3devdesc.h
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3devdesc.h
projects/altix/sys/boot/powerpc/ps3/ps3disk.c
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3disk.c
projects/altix/sys/boot/powerpc/ps3/ps3repo.c
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3repo.c
projects/altix/sys/boot/powerpc/ps3/ps3repo.h
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3repo.h
projects/altix/sys/boot/powerpc/ps3/ps3stor.c
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3stor.c
projects/altix/sys/boot/powerpc/ps3/ps3stor.h
- copied unchanged from r224117, head/sys/boot/powerpc/ps3/ps3stor.h
projects/altix/sys/boot/userboot/
- copied from r224117, head/sys/boot/userboot/
projects/altix/sys/dev/rt/
- copied from r224117, head/sys/dev/rt/
projects/altix/sys/dev/usb/net/if_usie.c
- copied unchanged from r224117, head/sys/dev/usb/net/if_usie.c
projects/altix/sys/dev/usb/net/if_usievar.h
- copied unchanged from r224117, head/sys/dev/usb/net/if_usievar.h
projects/altix/sys/mips/conf/XLP
- copied unchanged from r224117, head/sys/mips/conf/XLP
projects/altix/sys/mips/conf/XLP64
- copied unchanged from r224117, head/sys/mips/conf/XLP64
projects/altix/sys/mips/conf/XLPN32
- copied unchanged from r224117, head/sys/mips/conf/XLPN32
projects/altix/sys/mips/nlm/
- copied from r224117, head/sys/mips/nlm/
projects/altix/sys/modules/usb/usie/
- copied from r224117, head/sys/modules/usb/usie/
Modified:
projects/altix/lib/libstand/stand.h
projects/altix/lib/libstand/zalloc.c
projects/altix/lib/libstand/zalloc_defs.h
projects/altix/lib/libstand/zalloc_malloc.c
projects/altix/lib/libstand/zalloc_mem.h
projects/altix/lib/libstand/zalloc_protos.h
projects/altix/sys/amd64/acpica/acpi_wakeup.c
projects/altix/sys/amd64/amd64/mp_machdep.c
projects/altix/sys/amd64/amd64/pmap.c
projects/altix/sys/amd64/amd64/sys_machdep.c
projects/altix/sys/amd64/amd64/vm_machdep.c
projects/altix/sys/amd64/include/cpufunc.h
projects/altix/sys/arm/arm/pmap.c
projects/altix/sys/arm/arm/sys_machdep.c
projects/altix/sys/arm/mv/common.c
projects/altix/sys/arm/mv/gpio.c
projects/altix/sys/arm/mv/mv_machdep.c
projects/altix/sys/boot/Makefile.amd64
projects/altix/sys/boot/common/Makefile.inc
projects/altix/sys/boot/common/load_elf.c
projects/altix/sys/boot/common/reloc_elf.c
projects/altix/sys/boot/common/ufsread.c
projects/altix/sys/boot/i386/libi386/bioscd.c
projects/altix/sys/boot/powerpc/ps3/Makefile
projects/altix/sys/boot/powerpc/ps3/conf.c
projects/altix/sys/boot/powerpc/ps3/devicename.c
projects/altix/sys/boot/powerpc/ps3/lv1call.S
projects/altix/sys/boot/powerpc/ps3/lv1call.h
projects/altix/sys/boot/powerpc/ps3/main.c
projects/altix/sys/boot/powerpc/ps3/version
projects/altix/sys/boot/sparc64/loader/main.c
projects/altix/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
projects/altix/sys/cddl/dev/dtrace/i386/dtrace_subr.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/freebsd32_systrace_args.c
projects/altix/sys/compat/freebsd32/syscalls.master
projects/altix/sys/compat/linux/linux_ipc.c
projects/altix/sys/conf/Makefile.mips
projects/altix/sys/conf/NOTES
projects/altix/sys/conf/files
projects/altix/sys/conf/files.mips
projects/altix/sys/conf/options
projects/altix/sys/conf/options.mips
projects/altix/sys/dev/acpica/acpi_pcib_acpi.c
projects/altix/sys/dev/ahci/ahci.c
projects/altix/sys/dev/aic7xxx/aicasm/aicasm.c
projects/altix/sys/dev/aic7xxx/aicasm/aicasm.h
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_gram.y
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_scan.l
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_symbol.c
projects/altix/sys/dev/aic7xxx/aicasm/aicasm_symbol.h
projects/altix/sys/dev/ath/ah_osdep.c
projects/altix/sys/dev/ath/if_ath.c
projects/altix/sys/dev/cas/if_cas.c
projects/altix/sys/dev/cas/if_casvar.h
projects/altix/sys/dev/e1000/if_em.c
projects/altix/sys/dev/e1000/if_igb.c
projects/altix/sys/dev/e1000/if_igb.h
projects/altix/sys/dev/gem/if_gem.c
projects/altix/sys/dev/gem/if_gem_pci.c
projects/altix/sys/dev/gem/if_gemreg.h
projects/altix/sys/dev/iicbus/if_ic.c
projects/altix/sys/dev/lmc/if_lmc.c
projects/altix/sys/dev/md/md.c
projects/altix/sys/dev/mfi/mfi.c
projects/altix/sys/dev/mfi/mfireg.h
projects/altix/sys/dev/mii/e1000phy.c
projects/altix/sys/dev/mii/miidevs
projects/altix/sys/dev/mpt/mpt.h
projects/altix/sys/dev/mpt/mpt_pci.c
projects/altix/sys/dev/mxge/eth_z8e.h
projects/altix/sys/dev/mxge/ethp_z8e.h
projects/altix/sys/dev/mxge/if_mxge.c
projects/altix/sys/dev/mxge/rss_eth_z8e.h
projects/altix/sys/dev/mxge/rss_ethp_z8e.h
projects/altix/sys/dev/pci/pci.c
projects/altix/sys/dev/pci/pci_pci.c
projects/altix/sys/dev/pci/pci_subr.c
projects/altix/sys/dev/pci/pcib_private.h
projects/altix/sys/dev/pci/pcivar.h
projects/altix/sys/dev/ppbus/if_plip.c
projects/altix/sys/dev/sound/usb/uaudio.c
projects/altix/sys/dev/uart/uart_bus_pci.c
projects/altix/sys/dev/usb/input/uhid.c
projects/altix/sys/dev/usb/input/ukbd.c
projects/altix/sys/dev/usb/net/if_axe.c
projects/altix/sys/dev/usb/net/if_axereg.h
projects/altix/sys/dev/usb/net/uhso.c
projects/altix/sys/dev/usb/quirk/usb_quirk.c
projects/altix/sys/dev/usb/quirk/usb_quirk.h
projects/altix/sys/dev/usb/usb_hid.c
projects/altix/sys/dev/usb/usb_request.c
projects/altix/sys/dev/usb/usbdevs
projects/altix/sys/dev/usb/usbhid.h
projects/altix/sys/dev/xen/control/control.c
projects/altix/sys/fs/devfs/devfs_vnops.c
projects/altix/sys/fs/nfs/nfs_commonacl.c
projects/altix/sys/fs/nfs/nfs_commonkrpc.c
projects/altix/sys/fs/nfs/nfs_commonport.c
projects/altix/sys/fs/nfs/nfs_commonsubs.c
projects/altix/sys/fs/nfs/nfs_var.h
projects/altix/sys/fs/nfs/nfsdport.h
projects/altix/sys/fs/nfs/nfsport.h
projects/altix/sys/fs/nfs/nfsproto.h
projects/altix/sys/fs/nfsclient/nfs_clport.c
projects/altix/sys/fs/nfsclient/nfs_clrpcops.c
projects/altix/sys/fs/nfsclient/nfs_clstate.c
projects/altix/sys/fs/nfsclient/nfs_clsubs.c
projects/altix/sys/fs/nfsclient/nfs_clvfsops.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_nfsdport.c
projects/altix/sys/fs/nfsserver/nfs_nfsdserv.c
projects/altix/sys/fs/nfsserver/nfs_nfsdsocket.c
projects/altix/sys/fs/nfsserver/nfs_nfsdstate.c
projects/altix/sys/fs/nfsserver/nfs_nfsdsubs.c
projects/altix/sys/fs/smbfs/smbfs_smb.c
projects/altix/sys/fs/tmpfs/tmpfs_subr.c
projects/altix/sys/geom/cache/g_cache.c
projects/altix/sys/geom/concat/g_concat.c
projects/altix/sys/geom/eli/g_eli.c
projects/altix/sys/geom/gate/g_gate.c
projects/altix/sys/geom/geom.h
projects/altix/sys/geom/geom_bsd.c
projects/altix/sys/geom/geom_ccd.c
projects/altix/sys/geom/geom_disk.c
projects/altix/sys/geom/geom_pc98.c
projects/altix/sys/geom/geom_sunlabel.c
projects/altix/sys/geom/geom_vfs.c
projects/altix/sys/geom/label/g_label_gpt.c
projects/altix/sys/geom/mirror/g_mirror.c
projects/altix/sys/geom/mountver/g_mountver.c
projects/altix/sys/geom/multipath/g_multipath.c
projects/altix/sys/geom/nop/g_nop.c
projects/altix/sys/geom/part/g_part_gpt.c
projects/altix/sys/geom/raid/g_raid.c
projects/altix/sys/geom/raid3/g_raid3.c
projects/altix/sys/geom/sched/g_sched.c
projects/altix/sys/geom/sched/gs_rr.c
projects/altix/sys/geom/shsec/g_shsec.c
projects/altix/sys/geom/stripe/g_stripe.c
projects/altix/sys/geom/vinum/geom_vinum.c
projects/altix/sys/geom/vinum/geom_vinum_drive.c
projects/altix/sys/geom/vinum/geom_vinum_list.c
projects/altix/sys/geom/vinum/geom_vinum_subr.c
projects/altix/sys/geom/virstor/g_virstor.c
projects/altix/sys/i386/Makefile
projects/altix/sys/i386/i386/mp_machdep.c
projects/altix/sys/i386/i386/pmap.c
projects/altix/sys/i386/i386/sys_machdep.c
projects/altix/sys/i386/i386/vm_machdep.c
projects/altix/sys/i386/include/cpufunc.h
projects/altix/sys/i386/xen/mp_machdep.c
projects/altix/sys/i386/xen/mptable.c
projects/altix/sys/i386/xen/pmap.c
projects/altix/sys/ia64/conf/GENERIC
projects/altix/sys/ia64/ia64/clock.c
projects/altix/sys/ia64/ia64/efi.c
projects/altix/sys/ia64/ia64/exception.S
projects/altix/sys/ia64/ia64/interrupt.c
projects/altix/sys/ia64/ia64/mp_machdep.c
projects/altix/sys/ia64/ia64/pmap.c
projects/altix/sys/ia64/include/efi.h
projects/altix/sys/ia64/include/pmap.h
projects/altix/sys/ia64/include/sf_buf.h
projects/altix/sys/kern/Make.tags.inc
projects/altix/sys/kern/imgact_elf.c
projects/altix/sys/kern/init_sysent.c
projects/altix/sys/kern/kern_descrip.c
projects/altix/sys/kern/kern_exec.c
projects/altix/sys/kern/kern_exit.c
projects/altix/sys/kern/kern_fail.c
projects/altix/sys/kern/kern_fork.c
projects/altix/sys/kern/kern_jail.c
projects/altix/sys/kern/kern_racct.c
projects/altix/sys/kern/kern_rctl.c
projects/altix/sys/kern/kern_rmlock.c
projects/altix/sys/kern/kern_tc.c
projects/altix/sys/kern/kern_thr.c
projects/altix/sys/kern/sched_4bsd.c
projects/altix/sys/kern/subr_kdb.c
projects/altix/sys/kern/subr_pcpu.c
projects/altix/sys/kern/subr_smp.c
projects/altix/sys/kern/subr_trap.c
projects/altix/sys/kern/subr_uio.c
projects/altix/sys/kern/sys_capability.c
projects/altix/sys/kern/syscalls.c
projects/altix/sys/kern/syscalls.master
projects/altix/sys/kern/systrace_args.c
projects/altix/sys/kern/sysv_msg.c
projects/altix/sys/kern/sysv_sem.c
projects/altix/sys/kern/sysv_shm.c
projects/altix/sys/kern/tty.c
projects/altix/sys/kern/uipc_shm.c
projects/altix/sys/kern/uipc_socket.c
projects/altix/sys/kern/uipc_syscalls.c
projects/altix/sys/kern/vfs_bio.c
projects/altix/sys/kern/vfs_mount.c
projects/altix/sys/kern/vfs_mountroot.c
projects/altix/sys/kern/vfs_subr.c
projects/altix/sys/kgssapi/gss_impl.c
projects/altix/sys/mips/conf/RT305X
projects/altix/sys/mips/conf/RT305X.hints
projects/altix/sys/mips/include/bus.h
projects/altix/sys/mips/include/cpufunc.h
projects/altix/sys/mips/include/intr_machdep.h
projects/altix/sys/mips/malta/gt_pci.c
projects/altix/sys/mips/mips/cache.c
projects/altix/sys/mips/mips/cache_mipsNN.c
projects/altix/sys/mips/mips/cpu.c
projects/altix/sys/mips/mips/elf_trampoline.c
projects/altix/sys/mips/mips/exception.S
projects/altix/sys/mips/mips/locore.S
projects/altix/sys/mips/mips/machdep.c
projects/altix/sys/mips/mips/mp_machdep.c
projects/altix/sys/mips/mips/pmap.c
projects/altix/sys/modules/usb/Makefile
projects/altix/sys/net/bpf_filter.c
projects/altix/sys/net/if.c
projects/altix/sys/net/if.h
projects/altix/sys/net/if_arcsubr.c
projects/altix/sys/net/if_atmsubr.c
projects/altix/sys/net/if_debug.c
projects/altix/sys/net/if_ethersubr.c
projects/altix/sys/net/if_fddisubr.c
projects/altix/sys/net/if_fwsubr.c
projects/altix/sys/net/if_gif.c
projects/altix/sys/net/if_iso88025subr.c
projects/altix/sys/net/if_lagg.c
projects/altix/sys/net/if_llatbl.h
projects/altix/sys/net/if_spppfr.c
projects/altix/sys/net/if_spppsubr.c
projects/altix/sys/net/if_stf.c
projects/altix/sys/net/if_tun.c
projects/altix/sys/net/if_var.h
projects/altix/sys/net80211/ieee80211_ageq.c
projects/altix/sys/net80211/ieee80211_power.c
projects/altix/sys/netgraph/netflow/netflow.c
projects/altix/sys/netgraph/netflow/netflow_v9.c
projects/altix/sys/netgraph/netflow/ng_netflow.c
projects/altix/sys/netgraph/netflow/ng_netflow.h
projects/altix/sys/netgraph/netgraph.h
projects/altix/sys/netgraph/ng_base.c
projects/altix/sys/netgraph/ng_ether.c
projects/altix/sys/netgraph/ng_iface.c
projects/altix/sys/netgraph/ng_socket.c
projects/altix/sys/netinet/if_ether.c
projects/altix/sys/netinet/in.c
projects/altix/sys/netinet/in_proto.c
projects/altix/sys/netinet/ip_fw.h
projects/altix/sys/netinet/ip_var.h
projects/altix/sys/netinet/ipfw/ip_fw2.c
projects/altix/sys/netinet/ipfw/ip_fw_log.c
projects/altix/sys/netinet/ipfw/ip_fw_sockopt.c
projects/altix/sys/netinet/libalias/libalias.3
projects/altix/sys/netinet/sctp_pcb.c
projects/altix/sys/netinet/sctp_uio.h
projects/altix/sys/netinet/sctp_usrreq.c
projects/altix/sys/netinet/tcp_lro.c
projects/altix/sys/netinet/tcp_output.c
projects/altix/sys/netinet/tcp_subr.c
projects/altix/sys/netinet6/in6.c
projects/altix/sys/netinet6/in6_proto.c
projects/altix/sys/nfs/bootp_subr.c
projects/altix/sys/pc98/conf/DEFAULTS
projects/altix/sys/powerpc/aim/mmu_oea.c
projects/altix/sys/powerpc/aim/mmu_oea64.c
projects/altix/sys/powerpc/booke/pmap.c
projects/altix/sys/powerpc/conf/GENERIC
projects/altix/sys/powerpc/conf/GENERIC64
projects/altix/sys/powerpc/powerpc/mp_machdep.c
projects/altix/sys/powerpc/ps3/if_glc.c
projects/altix/sys/sparc64/include/cache.h
projects/altix/sys/sparc64/include/cpu.h
projects/altix/sys/sparc64/include/pmap.h
projects/altix/sys/sparc64/include/tlb.h
projects/altix/sys/sparc64/pci/fire.c
projects/altix/sys/sparc64/pci/schizo.c
projects/altix/sys/sparc64/sparc64/cache.c
projects/altix/sys/sparc64/sparc64/cheetah.c
projects/altix/sys/sparc64/sparc64/counter.c
projects/altix/sys/sparc64/sparc64/exception.S
projects/altix/sys/sparc64/sparc64/interrupt.S
projects/altix/sys/sparc64/sparc64/machdep.c
projects/altix/sys/sparc64/sparc64/mp_exception.S
projects/altix/sys/sparc64/sparc64/mp_machdep.c
projects/altix/sys/sparc64/sparc64/pmap.c
projects/altix/sys/sparc64/sparc64/spitfire.c
projects/altix/sys/sparc64/sparc64/sys_machdep.c
projects/altix/sys/sparc64/sparc64/tick.c
projects/altix/sys/sparc64/sparc64/vm_machdep.c
projects/altix/sys/sparc64/sparc64/zeus.c
projects/altix/sys/sys/_types.h
projects/altix/sys/sys/bus.h
projects/altix/sys/sys/capability.h
projects/altix/sys/sys/cpuset.h
projects/altix/sys/sys/file.h
projects/altix/sys/sys/filedesc.h
projects/altix/sys/sys/pcpu.h
projects/altix/sys/sys/priv.h
projects/altix/sys/sys/proc.h
projects/altix/sys/sys/racct.h
projects/altix/sys/sys/sem.h
projects/altix/sys/sys/sockio.h
projects/altix/sys/sys/soundcard.h
projects/altix/sys/sys/syscall.h
projects/altix/sys/sys/syscall.mk
projects/altix/sys/sys/sysproto.h
projects/altix/sys/sys/systm.h
projects/altix/sys/sys/timetc.h
projects/altix/sys/sys/tty.h
projects/altix/sys/sys/ttydevsw.h
projects/altix/sys/sys/types.h
projects/altix/sys/sys/uio.h
projects/altix/sys/sys/unistd.h
projects/altix/sys/sys/vnode.h
projects/altix/sys/ufs/ffs/ffs_alloc.c
projects/altix/sys/ufs/ffs/ffs_balloc.c
projects/altix/sys/ufs/ffs/ffs_inode.c
projects/altix/sys/ufs/ffs/ffs_softdep.c
projects/altix/sys/ufs/ffs/ffs_vfsops.c
projects/altix/sys/ufs/ffs/fs.h
projects/altix/sys/ufs/ffs/softdep.h
projects/altix/sys/ufs/ufs/ufs_inode.c
projects/altix/sys/ufs/ufs/ufsmount.h
projects/altix/sys/vm/device_pager.c
projects/altix/sys/vm/swap_pager.c
projects/altix/sys/vm/vm_extern.h
projects/altix/sys/vm/vm_fault.c
projects/altix/sys/vm/vm_glue.c
projects/altix/sys/vm/vm_map.c
projects/altix/sys/vm/vm_mmap.c
projects/altix/sys/vm/vm_object.c
projects/altix/sys/vm/vm_object.h
projects/altix/sys/vm/vm_pageout.c
projects/altix/sys/vm/vm_unix.c
projects/altix/sys/vm/vnode_pager.c
projects/altix/sys/x86/include/mptable.h
projects/altix/sys/x86/x86/mptable.c
projects/altix/sys/x86/x86/mptable_pci.c
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/stand.h
==============================================================================
--- projects/altix/lib/libstand/stand.h Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/stand.h Sat Jul 16 21:14:29 2011 (r224118)
@@ -65,15 +65,13 @@
#include <sys/cdefs.h>
#include <sys/stat.h>
#include <sys/dirent.h>
+
+/* this header intentionally exports NULL from <string.h> */
#include <string.h>
#define CHK(fmt, args...) printf("%s(%d): " fmt "\n", __func__, __LINE__ , ##args)
#define PCHK(fmt, args...) {printf("%s(%d): " fmt "\n", __func__, __LINE__ , ##args); getchar();}
-#ifndef NULL
-#define NULL 0
-#endif
-
/* Avoid unwanted userlandish components */
#define _KERNEL
#include <sys/errno.h>
Modified: projects/altix/lib/libstand/zalloc.c
==============================================================================
--- projects/altix/lib/libstand/zalloc.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/zalloc.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -77,7 +77,7 @@ __FBSDID("$FreeBSD$");
*/
void *
-znalloc(MemPool *mp, iaddr_t bytes)
+znalloc(MemPool *mp, uintptr_t bytes)
{
/*
* align according to pool object size (can be 0). This is
@@ -136,7 +136,7 @@ znalloc(MemPool *mp, iaddr_t bytes)
*/
void
-zfree(MemPool *mp, void *ptr, iaddr_t bytes)
+zfree(MemPool *mp, void *ptr, uintptr_t bytes)
{
/*
* align according to pool object size (can be 0). This is
@@ -153,8 +153,8 @@ 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,%ju): wild pointer", ptr, bytes);
+ ((uintptr_t)ptr & MEMNODE_SIZE_MASK) != 0)
+ panic("zfree(%p,%ju): wild pointer", ptr, (uintmax_t)bytes);
/*
* free the segment
@@ -177,8 +177,10 @@ zfree(MemPool *mp, void *ptr, iaddr_t by
/*
* range check
*/
- if ((char *)ptr + bytes > (char *)mn)
- panic("zfree(%p,%ju): corrupt memlist1",ptr, bytes);
+ if ((char *)ptr + bytes > (char *)mn) {
+ panic("zfree(%p,%ju): corrupt memlist1", ptr,
+ (uintmax_t)bytes);
+ }
/*
* merge against next area or create independant area
@@ -208,8 +210,10 @@ zfree(MemPool *mp, void *ptr, iaddr_t by
return;
/* NOT REACHED */
}
- if ((char *)ptr < (char *)mn + mn->mr_Bytes)
- panic("zfree(%p,%ju): corrupt memlist2", ptr, bytes);
+ if ((char *)ptr < (char *)mn + mn->mr_Bytes) {
+ panic("zfree(%p,%ju): corrupt memlist2", ptr,
+ (uintmax_t)bytes);
+ }
}
/*
* We are beyond the last MemNode, append new MemNode. Merge against
@@ -241,7 +245,7 @@ zfree(MemPool *mp, void *ptr, iaddr_t by
*/
void
-zextendPool(MemPool *mp, void *base, iaddr_t bytes)
+zextendPool(MemPool *mp, void *base, uintptr_t bytes)
{
if (mp->mp_Size == 0) {
mp->mp_Base = base;
Modified: projects/altix/lib/libstand/zalloc_defs.h
==============================================================================
--- projects/altix/lib/libstand/zalloc_defs.h Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/zalloc_defs.h Sat Jul 16 21:14:29 2011 (r224118)
@@ -38,20 +38,12 @@
#define DMALLOCDEBUG /* add debugging code to gather stats */
#define ZALLOCDEBUG
-#include <string.h>
+#include <sys/stdint.h>
#include "stand.h"
-
-typedef uintptr_t iaddr_t; /* unsigned int same size as pointer */
-typedef intptr_t saddr_t; /* signed int same size as pointer */
#include "zalloc_mem.h"
-#define Prototype extern
#define Library extern
-#ifndef NULL
-#define NULL ((void *)0)
-#endif
-
/*
* block extension for sbrk()
*/
@@ -60,8 +52,7 @@ typedef intptr_t saddr_t; /* signed int
#define BLKEXTENDMASK (BLKEXTEND - 1)
/*
- * required malloc alignment. Use sizeof(long double) for architecture
- * independance.
+ * required malloc alignment. Just hardwire to 16.
*
* Note: if we implement a more sophisticated realloc, we should ensure that
* MALLOCALIGN is at least as large as MemNode.
@@ -72,10 +63,8 @@ typedef struct Guard {
size_t ga_Magic; /* must be at least 32 bits */
} Guard;
-#define MATYPE long double
-#define MALLOCALIGN ((sizeof(MATYPE) > sizeof(Guard)) ? sizeof(MATYPE) : sizeof(Guard))
+#define MALLOCALIGN 16
#define GAMAGIC 0x55FF44FD
#define GAFREE 0x5F54F4DF
#include "zalloc_protos.h"
-
Modified: projects/altix/lib/libstand/zalloc_malloc.c
==============================================================================
--- projects/altix/lib/libstand/zalloc_malloc.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/zalloc_malloc.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -126,7 +126,7 @@ Free(void *ptr, const char *file, int li
void *
Calloc(size_t n1, size_t n2, const char *file, int line)
{
- iaddr_t bytes = (iaddr_t)n1 * (iaddr_t)n2;
+ uintptr_t bytes = (uintptr_t)n1 * (uintptr_t)n2;
void *res;
if ((res = Malloc(bytes, file, line)) != NULL) {
Modified: projects/altix/lib/libstand/zalloc_mem.h
==============================================================================
--- projects/altix/lib/libstand/zalloc_mem.h Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/zalloc_mem.h Sat Jul 16 21:14:29 2011 (r224118)
@@ -37,15 +37,15 @@
typedef struct MemNode {
struct MemNode *mr_Next;
- iaddr_t mr_Bytes;
+ uintptr_t mr_Bytes;
} MemNode;
typedef struct MemPool {
void *mp_Base;
void *mp_End;
MemNode *mp_First;
- iaddr_t mp_Size;
- iaddr_t mp_Used;
+ uintptr_t mp_Size;
+ uintptr_t mp_Used;
} MemPool;
#define MEMNODE_SIZE_MASK ((sizeof(MemNode) <= 8) ? 7 : 15)
Modified: projects/altix/lib/libstand/zalloc_protos.h
==============================================================================
--- projects/altix/lib/libstand/zalloc_protos.h Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/lib/libstand/zalloc_protos.h Sat Jul 16 21:14:29 2011 (r224118)
@@ -29,7 +29,7 @@
* $FreeBSD$
*/
-Library void *znalloc(struct MemPool *mpool, iaddr_t bytes);
-Library void zfree(struct MemPool *mpool, void *ptr, iaddr_t bytes);
-Library void zextendPool(MemPool *mp, void *base, iaddr_t bytes);
+Library void *znalloc(struct MemPool *mpool, uintptr_t bytes);
+Library void zfree(struct MemPool *mpool, void *ptr, uintptr_t bytes);
+Library void zextendPool(MemPool *mp, void *base, uintptr_t bytes);
Library void zallocstats(struct MemPool *mp);
Modified: projects/altix/sys/amd64/acpica/acpi_wakeup.c
==============================================================================
--- projects/altix/sys/amd64/acpica/acpi_wakeup.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/acpica/acpi_wakeup.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -226,7 +226,8 @@ acpi_sleep_machdep(struct acpi_softc *sc
return (ret);
#ifdef SMP
- wakeup_cpus = PCPU_GET(other_cpus);
+ wakeup_cpus = all_cpus;
+ CPU_CLR(PCPU_GET(cpuid), &wakeup_cpus);
#endif
AcpiSetFirmwareWakingVector(WAKECODE_PADDR(sc));
Modified: projects/altix/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- projects/altix/sys/amd64/amd64/mp_machdep.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/amd64/mp_machdep.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -604,10 +604,10 @@ cpu_mp_announce(void)
void
init_secondary(void)
{
- cpuset_t tcpuset, tallcpus;
struct pcpu *pc;
struct nmi_pcpu *np;
u_int64_t msr, cr0;
+ u_int cpuid;
int cpu, gsel_tss, x;
struct region_descriptor ap_gdt;
@@ -711,8 +711,9 @@ init_secondary(void)
fpuinit();
/* A quick check from sanity claus */
+ cpuid = PCPU_GET(cpuid);
if (PCPU_GET(apic_id) != lapic_id()) {
- printf("SMP: cpuid = %d\n", PCPU_GET(cpuid));
+ printf("SMP: cpuid = %d\n", cpuid);
printf("SMP: actual apic_id = %d\n", lapic_id());
printf("SMP: correct apic_id = %d\n", PCPU_GET(apic_id));
panic("cpuid mismatch! boom!!");
@@ -734,19 +735,13 @@ init_secondary(void)
smp_cpus++;
- CTR1(KTR_SMP, "SMP: AP CPU #%d Launched", PCPU_GET(cpuid));
- printf("SMP: AP CPU #%d Launched!\n", PCPU_GET(cpuid));
- tcpuset = PCPU_GET(cpumask);
+ CTR1(KTR_SMP, "SMP: AP CPU #%d Launched", cpuid);
+ printf("SMP: AP CPU #%d Launched!\n", cpuid);
/* Determine if we are a logical CPU. */
/* XXX Calculation depends on cpu_logical being a power of 2, e.g. 2 */
if (cpu_logical > 1 && PCPU_GET(apic_id) % cpu_logical != 0)
- CPU_OR(&logical_cpus_mask, &tcpuset);
-
- /* Build our map of 'other' CPUs. */
- tallcpus = all_cpus;
- CPU_NAND(&tallcpus, &tcpuset);
- PCPU_SET(other_cpus, tallcpus);
+ CPU_SET(cpuid, &logical_cpus_mask);
if (bootverbose)
lapic_dump("AP");
@@ -893,7 +888,6 @@ assign_cpu_ids(void)
static int
start_all_aps(void)
{
- cpuset_t tallcpus, tcpuset;
vm_offset_t va = boot_address + KERNBASE;
u_int64_t *pt4, *pt3, *pt2;
u_int32_t mpbioswarmvec;
@@ -961,12 +955,6 @@ start_all_aps(void)
CPU_SET(cpu, &all_cpus); /* record AP in CPU map */
}
- /* build our map of 'other' CPUs */
- tallcpus = all_cpus;
- tcpuset = PCPU_GET(cpumask);
- CPU_NAND(&tallcpus, &tcpuset);
- PCPU_SET(other_cpus, tallcpus);
-
/* restore the warmstart vector */
*(u_int32_t *) WARMBOOT_OFF = mpbioswarmvec;
@@ -1150,9 +1138,7 @@ smp_targeted_tlb_shootdown(cpuset_t mask
if (othercpus < 1)
return;
} else {
- sched_pin();
- CPU_NAND(&mask, PCPU_PTR(cpumask));
- sched_unpin();
+ CPU_CLR(PCPU_GET(cpuid), &mask);
if (CPU_EMPTY(&mask))
return;
}
@@ -1349,11 +1335,13 @@ ipi_cpu(int cpu, u_int ipi)
void
ipi_all_but_self(u_int ipi)
{
+ cpuset_t other_cpus;
+
+ other_cpus = all_cpus;
+ CPU_CLR(PCPU_GET(cpuid), &other_cpus);
- sched_pin();
if (IPI_IS_BITMAPED(ipi)) {
- ipi_selected(PCPU_GET(other_cpus), ipi);
- sched_unpin();
+ ipi_selected(other_cpus, ipi);
return;
}
@@ -1363,8 +1351,7 @@ ipi_all_but_self(u_int ipi)
* Set the mask of receiving CPUs for this purpose.
*/
if (ipi == IPI_STOP_HARD)
- CPU_OR_ATOMIC(&ipi_nmi_pending, PCPU_PTR(other_cpus));
- sched_unpin();
+ CPU_OR_ATOMIC(&ipi_nmi_pending, &other_cpus);
CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi);
lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS);
@@ -1373,7 +1360,7 @@ ipi_all_but_self(u_int ipi)
int
ipi_nmi_handler()
{
- cpuset_t cpumask;
+ u_int cpuid;
/*
* As long as there is not a simple way to know about a NMI's
@@ -1381,13 +1368,11 @@ ipi_nmi_handler()
* the global pending bitword an IPI_STOP_HARD has been issued
* and should be handled.
*/
- sched_pin();
- cpumask = PCPU_GET(cpumask);
- sched_unpin();
- if (!CPU_OVERLAP(&ipi_nmi_pending, &cpumask))
+ cpuid = PCPU_GET(cpuid);
+ if (!CPU_ISSET(cpuid, &ipi_nmi_pending))
return (1);
- CPU_NAND_ATOMIC(&ipi_nmi_pending, &cpumask);
+ CPU_CLR_ATOMIC(cpuid, &ipi_nmi_pending);
cpustop_handler();
return (0);
}
@@ -1399,25 +1384,21 @@ ipi_nmi_handler()
void
cpustop_handler(void)
{
- cpuset_t cpumask;
u_int cpu;
- sched_pin();
cpu = PCPU_GET(cpuid);
- cpumask = PCPU_GET(cpumask);
- sched_unpin();
savectx(&stoppcbs[cpu]);
/* Indicate that we are stopped */
- CPU_OR_ATOMIC(&stopped_cpus, &cpumask);
+ CPU_SET_ATOMIC(cpu, &stopped_cpus);
/* Wait for restart */
- while (!CPU_OVERLAP(&started_cpus, &cpumask))
+ while (!CPU_ISSET(cpu, &started_cpus))
ia32_pause();
- CPU_NAND_ATOMIC(&started_cpus, &cpumask);
- CPU_NAND_ATOMIC(&stopped_cpus, &cpumask);
+ CPU_CLR_ATOMIC(cpu, &started_cpus);
+ CPU_CLR_ATOMIC(cpu, &stopped_cpus);
if (cpu == 0 && cpustop_restartfunc != NULL) {
cpustop_restartfunc();
@@ -1432,19 +1413,17 @@ cpustop_handler(void)
void
cpususpend_handler(void)
{
- cpuset_t cpumask;
register_t cr3, rf;
u_int cpu;
cpu = PCPU_GET(cpuid);
- cpumask = PCPU_GET(cpumask);
rf = intr_disable();
cr3 = rcr3();
if (savectx(susppcbs[cpu])) {
wbinvd();
- CPU_OR_ATOMIC(&stopped_cpus, &cpumask);
+ CPU_SET_ATOMIC(cpu, &stopped_cpus);
} else {
pmap_init_pat();
PCPU_SET(switchtime, 0);
@@ -1452,11 +1431,11 @@ cpususpend_handler(void)
}
/* Wait for resume */
- while (!CPU_OVERLAP(&started_cpus, &cpumask))
+ while (!CPU_ISSET(cpu, &started_cpus))
ia32_pause();
- CPU_NAND_ATOMIC(&started_cpus, &cpumask);
- CPU_NAND_ATOMIC(&stopped_cpus, &cpumask);
+ CPU_CLR_ATOMIC(cpu, &started_cpus);
+ CPU_CLR_ATOMIC(cpu, &stopped_cpus);
/* Restore CR3 and enable interrupts */
load_cr3(cr3);
Modified: projects/altix/sys/amd64/amd64/pmap.c
==============================================================================
--- projects/altix/sys/amd64/amd64/pmap.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/amd64/pmap.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -925,16 +925,18 @@ pmap_update_pde_invalidate(vm_offset_t v
void
pmap_invalidate_page(pmap_t pmap, vm_offset_t va)
{
- cpuset_t cpumask, other_cpus;
+ cpuset_t other_cpus;
+ u_int cpuid;
sched_pin();
if (pmap == kernel_pmap || !CPU_CMP(&pmap->pm_active, &all_cpus)) {
invlpg(va);
smp_invlpg(va);
} else {
- cpumask = PCPU_GET(cpumask);
- other_cpus = PCPU_GET(other_cpus);
- if (CPU_OVERLAP(&pmap->pm_active, &cpumask))
+ cpuid = PCPU_GET(cpuid);
+ other_cpus = all_cpus;
+ CPU_CLR(cpuid, &other_cpus);
+ if (CPU_ISSET(cpuid, &pmap->pm_active))
invlpg(va);
CPU_AND(&other_cpus, &pmap->pm_active);
if (!CPU_EMPTY(&other_cpus))
@@ -946,8 +948,9 @@ pmap_invalidate_page(pmap_t pmap, vm_off
void
pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
{
- cpuset_t cpumask, other_cpus;
+ cpuset_t other_cpus;
vm_offset_t addr;
+ u_int cpuid;
sched_pin();
if (pmap == kernel_pmap || !CPU_CMP(&pmap->pm_active, &all_cpus)) {
@@ -955,9 +958,10 @@ pmap_invalidate_range(pmap_t pmap, vm_of
invlpg(addr);
smp_invlpg_range(sva, eva);
} else {
- cpumask = PCPU_GET(cpumask);
- other_cpus = PCPU_GET(other_cpus);
- if (CPU_OVERLAP(&pmap->pm_active, &cpumask))
+ cpuid = PCPU_GET(cpuid);
+ other_cpus = all_cpus;
+ CPU_CLR(cpuid, &other_cpus);
+ if (CPU_ISSET(cpuid, &pmap->pm_active))
for (addr = sva; addr < eva; addr += PAGE_SIZE)
invlpg(addr);
CPU_AND(&other_cpus, &pmap->pm_active);
@@ -970,16 +974,18 @@ pmap_invalidate_range(pmap_t pmap, vm_of
void
pmap_invalidate_all(pmap_t pmap)
{
- cpuset_t cpumask, other_cpus;
+ cpuset_t other_cpus;
+ u_int cpuid;
sched_pin();
if (pmap == kernel_pmap || !CPU_CMP(&pmap->pm_active, &all_cpus)) {
invltlb();
smp_invltlb();
} else {
- cpumask = PCPU_GET(cpumask);
- other_cpus = PCPU_GET(other_cpus);
- if (CPU_OVERLAP(&pmap->pm_active, &cpumask))
+ cpuid = PCPU_GET(cpuid);
+ other_cpus = all_cpus;
+ CPU_CLR(cpuid, &other_cpus);
+ if (CPU_ISSET(cpuid, &pmap->pm_active))
invltlb();
CPU_AND(&other_cpus, &pmap->pm_active);
if (!CPU_EMPTY(&other_cpus))
@@ -999,11 +1005,11 @@ pmap_invalidate_cache(void)
}
struct pde_action {
- cpuset_t store; /* processor that updates the PDE */
cpuset_t invalidate; /* processors that invalidate their TLB */
vm_offset_t va;
pd_entry_t *pde;
pd_entry_t newpde;
+ u_int store; /* processor that updates the PDE */
};
static void
@@ -1011,12 +1017,8 @@ pmap_update_pde_action(void *arg)
{
struct pde_action *act = arg;
- sched_pin();
- if (!CPU_CMP(&act->store, PCPU_PTR(cpumask))) {
- sched_unpin();
+ if (act->store == PCPU_GET(cpuid))
pde_store(act->pde, act->newpde);
- } else
- sched_unpin();
}
static void
@@ -1024,12 +1026,8 @@ pmap_update_pde_teardown(void *arg)
{
struct pde_action *act = arg;
- sched_pin();
- if (CPU_OVERLAP(&act->invalidate, PCPU_PTR(cpumask))) {
- sched_unpin();
+ if (CPU_ISSET(PCPU_GET(cpuid), &act->invalidate))
pmap_update_pde_invalidate(act->va, act->newpde);
- } else
- sched_unpin();
}
/*
@@ -1044,28 +1042,30 @@ static void
pmap_update_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, pd_entry_t newpde)
{
struct pde_action act;
- cpuset_t active, cpumask, other_cpus;
+ cpuset_t active, other_cpus;
+ u_int cpuid;
sched_pin();
- cpumask = PCPU_GET(cpumask);
- other_cpus = PCPU_GET(other_cpus);
+ cpuid = PCPU_GET(cpuid);
+ other_cpus = all_cpus;
+ CPU_CLR(cpuid, &other_cpus);
if (pmap == kernel_pmap)
active = all_cpus;
else
active = pmap->pm_active;
if (CPU_OVERLAP(&active, &other_cpus)) {
- act.store = cpumask;
+ act.store = cpuid;
act.invalidate = active;
act.va = va;
act.pde = pde;
act.newpde = newpde;
- CPU_OR(&cpumask, &active);
- smp_rendezvous_cpus(cpumask,
+ CPU_SET(cpuid, &active);
+ smp_rendezvous_cpus(active,
smp_no_rendevous_barrier, pmap_update_pde_action,
pmap_update_pde_teardown, &act);
} else {
pde_store(pde, newpde);
- if (CPU_OVERLAP(&active, &cpumask))
+ if (CPU_ISSET(cpuid, &active))
pmap_update_pde_invalidate(va, newpde);
}
sched_unpin();
@@ -2104,7 +2104,7 @@ pmap_collect(pmap_t locked_pmap, struct
vm_page_t m, free;
TAILQ_FOREACH(m, &vpq->pl, pageq) {
- if (m->hold_count || m->busy)
+ if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
continue;
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
va = pv->pv_va;
@@ -2847,8 +2847,8 @@ pmap_remove_all(vm_page_t m)
vm_offset_t va;
vm_page_t free;
- KASSERT((m->flags & PG_FICTITIOUS) == 0,
- ("pmap_remove_all: page %p is fictitious", m));
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0,
+ ("pmap_remove_all: page %p is not managed", m));
free = NULL;
vm_page_lock_queues();
pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
@@ -5095,17 +5095,19 @@ void
pmap_activate(struct thread *td)
{
pmap_t pmap, oldpmap;
+ u_int cpuid;
u_int64_t cr3;
critical_enter();
pmap = vmspace_pmap(td->td_proc->p_vmspace);
oldpmap = PCPU_GET(curpmap);
+ cpuid = PCPU_GET(cpuid);
#ifdef SMP
- CPU_NAND_ATOMIC(&oldpmap->pm_active, PCPU_PTR(cpumask));
- CPU_OR_ATOMIC(&pmap->pm_active, PCPU_PTR(cpumask));
+ CPU_CLR_ATOMIC(cpuid, &oldpmap->pm_active);
+ CPU_SET_ATOMIC(cpuid, &pmap->pm_active);
#else
- CPU_NAND(&oldpmap->pm_active, PCPU_PTR(cpumask));
- CPU_OR(&pmap->pm_active, PCPU_PTR(cpumask));
+ CPU_CLR(cpuid, &oldpmap->pm_active);
+ CPU_SET(cpuid, &pmap->pm_active);
#endif
cr3 = DMAP_TO_PHYS((vm_offset_t)pmap->pm_pml4);
td->td_pcb->pcb_cr3 = cr3;
Modified: projects/altix/sys/amd64/amd64/sys_machdep.c
==============================================================================
--- projects/altix/sys/amd64/amd64/sys_machdep.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/amd64/sys_machdep.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "opt_capabilities.h"
+#include "opt_capsicum.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -180,28 +180,30 @@ sysarch(td, uap)
uint64_t a64base;
struct i386_ioperm_args iargs;
-#ifdef CAPABILITIES
+#ifdef CAPABILITY_MODE
/*
- * Whitelist of operations which are safe enough for capability mode.
+ * When adding new operations, add a new case statement here to
+ * explicitly indicate whether or not the operation is safe to
+ * perform in capability mode.
*/
if (IN_CAPABILITY_MODE(td)) {
switch (uap->op) {
- case I386_GET_LDT:
- case I386_SET_LDT:
- case I386_GET_IOPERM:
- case I386_GET_FSBASE:
- case I386_SET_FSBASE:
- case I386_GET_GSBASE:
- case I386_SET_GSBASE:
- case AMD64_GET_FSBASE:
- case AMD64_SET_FSBASE:
- case AMD64_GET_GSBASE:
- case AMD64_SET_GSBASE:
- break;
+ case I386_GET_LDT:
+ case I386_SET_LDT:
+ case I386_GET_IOPERM:
+ case I386_GET_FSBASE:
+ case I386_SET_FSBASE:
+ case I386_GET_GSBASE:
+ case I386_SET_GSBASE:
+ case AMD64_GET_FSBASE:
+ case AMD64_SET_FSBASE:
+ case AMD64_GET_GSBASE:
+ case AMD64_SET_GSBASE:
+ break;
- case I386_SET_IOPERM:
- default:
- return (ECAPMODE);
+ case I386_SET_IOPERM:
+ default:
+ return (ECAPMODE);
}
}
#endif
Modified: projects/altix/sys/amd64/amd64/vm_machdep.c
==============================================================================
--- projects/altix/sys/amd64/amd64/vm_machdep.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/amd64/vm_machdep.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h>
#include <sys/pioctl.h>
#include <sys/proc.h>
-#include <sys/sched.h>
#include <sys/sf_buf.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
@@ -535,8 +534,8 @@ cpu_reset()
u_int cnt;
if (smp_active) {
- sched_pin();
- map = PCPU_GET(other_cpus);
+ map = all_cpus;
+ CPU_CLR(PCPU_GET(cpuid), &map);
CPU_NAND(&map, &stopped_cpus);
if (!CPU_EMPTY(&map)) {
printf("cpu_reset: Stopping other CPUs\n");
@@ -545,7 +544,6 @@ cpu_reset()
if (PCPU_GET(cpuid) != 0) {
cpu_reset_proxyid = PCPU_GET(cpuid);
- sched_unpin();
cpustop_restartfunc = cpu_reset_proxy;
cpu_reset_proxy_active = 0;
printf("cpu_reset: Restarting BSP\n");
@@ -564,8 +562,7 @@ cpu_reset()
while (1);
/* NOTREACHED */
- } else
- sched_unpin();
+ }
DELAY(1000000);
}
Modified: projects/altix/sys/amd64/include/cpufunc.h
==============================================================================
--- projects/altix/sys/amd64/include/cpufunc.h Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/amd64/include/cpufunc.h Sat Jul 16 21:14:29 2011 (r224118)
@@ -467,16 +467,18 @@ load_es(u_short sel)
}
static __inline void
-cpu_monitor(const void *addr, int extensions, int hints)
+cpu_monitor(const void *addr, u_long extensions, u_int hints)
{
- __asm __volatile("monitor;"
- : :"a" (addr), "c" (extensions), "d"(hints));
+
+ __asm __volatile("monitor"
+ : : "a" (addr), "c" (extensions), "d" (hints));
}
static __inline void
-cpu_mwait(int extensions, int hints)
+cpu_mwait(u_long extensions, u_int hints)
{
- __asm __volatile("mwait;" : :"a" (hints), "c" (extensions));
+
+ __asm __volatile("mwait" : : "a" (hints), "c" (extensions));
}
#ifdef _KERNEL
Modified: projects/altix/sys/arm/arm/pmap.c
==============================================================================
--- projects/altix/sys/arm/arm/pmap.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/arm/arm/pmap.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -3120,8 +3120,8 @@ pmap_remove_all(vm_page_t m)
pmap_t curpm;
int flags = 0;
- KASSERT((m->flags & PG_FICTITIOUS) == 0,
- ("pmap_remove_all: page %p is fictitious", m));
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0,
+ ("pmap_remove_all: page %p is not managed", m));
if (TAILQ_EMPTY(&m->md.pv_list))
return;
vm_page_lock_queues();
@@ -3242,9 +3242,12 @@ pmap_protect(pmap_t pm, vm_offset_t sva,
PTE_SYNC(ptep);
if (pg != NULL) {
- f = pmap_modify_pv(pg, pm, sva,
- PVF_WRITE, 0);
- vm_page_dirty(pg);
+ if (!(pg->flags & PG_UNMANAGED)) {
+ f = pmap_modify_pv(pg, pm, sva,
+ PVF_WRITE, 0);
+ vm_page_dirty(pg);
+ } else
+ f = 0;
} else
f = PVF_REF | PVF_EXEC;
Modified: projects/altix/sys/arm/arm/sys_machdep.c
==============================================================================
--- projects/altix/sys/arm/arm/sys_machdep.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/arm/arm/sys_machdep.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -36,7 +36,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include "opt_capabilities.h"
+#include "opt_capsicum.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -107,20 +107,22 @@ sysarch(td, uap)
{
int error;
-#ifdef CAPABILITIES
+#ifdef CAPABILITY_MODE
/*
- * Whitelist of operations which are safe enough for capability mode.
+ * When adding new operations, add a new case statement here to
+ * explicitly indicate whether or not the operation is safe to
+ * perform in capability mode.
*/
if (IN_CAPABILITY_MODE(td)) {
switch (uap->op) {
- case ARM_SYNC_ICACHE:
- case ARM_DRAIN_WRITEBUF:
- case ARM_SET_TP:
- case ARM_GET_TP:
- break;
+ case ARM_SYNC_ICACHE:
+ case ARM_DRAIN_WRITEBUF:
+ case ARM_SET_TP:
+ case ARM_GET_TP:
+ break;
- default:
- return (ECAPMODE);
+ default:
+ return (ECAPMODE);
}
}
#endif
Modified: projects/altix/sys/arm/mv/common.c
==============================================================================
--- projects/altix/sys/arm/mv/common.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/arm/mv/common.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -122,7 +122,7 @@ static struct soc_node_spec soc_nodes[]
{ "mrvl,sata", &decode_win_sata_setup, NULL },
{ "mrvl,xor", &decode_win_xor_setup, &decode_win_xor_dump },
{ "mrvl,idma", &decode_win_idma_setup, &decode_win_idma_dump },
- { "mvrl,pcie", &decode_win_pcie_setup, NULL },
+ { "mrvl,pcie", &decode_win_pcie_setup, NULL },
{ NULL, NULL, NULL },
};
Modified: projects/altix/sys/arm/mv/gpio.c
==============================================================================
--- projects/altix/sys/arm/mv/gpio.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/arm/mv/gpio.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -197,10 +197,7 @@ mv_gpio_attach(device_t dev)
}
}
- /*
- * GPIO lines setup is already done at this stage (see mv_machdep.c).
- */
- return (0);
+ return (platform_gpio_init());
}
static int
@@ -565,20 +562,6 @@ mv_handle_gpios_prop(phandle_t ctrl, pce
if (fdt_regsize(ctrl, &gpio_ctrl, &size))
return (ENXIO);
- /*
- * Since to set up GPIO we use the same functions as GPIO driver, and
- * mv_gpio_softc is NULL at this early stage, we need to create a fake
- * softc and set mv_gpio_softc pointer to that newly created object.
- * After successful GPIO setup, the [shared] pointer will be set back
- * to NULL.
- */
- mv_gpio_softc = ≻
-
- sc.bst = fdtbus_bs_tag;
- gpio_ctrl += fdt_immr_va;
-
- if (bus_space_map(sc.bst, gpio_ctrl, size, 0, &sc.bsh) != 0)
- return (ENXIO);
if (OF_getprop(ctrl, "pin-count", &pincnt, sizeof(pcell_t)) < 0)
return (ENXIO);
@@ -612,8 +595,6 @@ mv_handle_gpios_prop(phandle_t ctrl, pce
gpios += gpio_cells + inc;
}
- /* Reset pointer. */
- mv_gpio_softc = NULL;
return (0);
}
Modified: projects/altix/sys/arm/mv/mv_machdep.c
==============================================================================
--- projects/altix/sys/arm/mv/mv_machdep.c Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/arm/mv/mv_machdep.c Sat Jul 16 21:14:29 2011 (r224118)
@@ -340,6 +340,7 @@ initarm(void *mdp, void *unused __unused
#endif
}
+ preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR;
} else {
/* Fall back to hardcoded metadata. */
lastaddr = fake_preload_metadata();
@@ -511,13 +512,8 @@ initarm(void *mdp, void *unused __unused
if (platform_mpp_init() != 0)
while (1);
- /*
- * Initialize GPIO as early as possible.
- */
- if (platform_gpio_init() != 0)
- while (1);
-
cninit();
+
physmem = memsize / PAGE_SIZE;
debugf("initarm: console initialized\n");
Modified: projects/altix/sys/boot/Makefile.amd64
==============================================================================
--- projects/altix/sys/boot/Makefile.amd64 Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/boot/Makefile.amd64 Sat Jul 16 21:14:29 2011 (r224118)
@@ -2,3 +2,4 @@
SUBDIR+= efi
SUBDIR+= zfs
+SUBDIR+= userboot
Modified: projects/altix/sys/boot/common/Makefile.inc
==============================================================================
--- projects/altix/sys/boot/common/Makefile.inc Sat Jul 16 20:53:27 2011 (r224117)
+++ projects/altix/sys/boot/common/Makefile.inc Sat Jul 16 21:14:29 2011 (r224118)
@@ -1,6 +1,6 @@
# $FreeBSD$
-SRCS+= boot.c commands.c console.c devopen.c interp.c
+SRCS+= boot.c commands.c console.c devopen.c disk.c interp.c
SRCS+= interp_backslash.c interp_parse.c ls.c misc.c
SRCS+= module.c panic.c
Copied: projects/altix/sys/boot/common/disk.c (from r224117, head/sys/boot/common/disk.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/altix/sys/boot/common/disk.c Sat Jul 16 21:14:29 2011 (r224118, copy of r224117, head/sys/boot/common/disk.c)
@@ -0,0 +1,799 @@
+/*-
+ * Copyright (c) 1998 Michael Smith <msmith 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, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*
+ * MBR/GPT partitioned disk device handling.
+ *
+ * Ideas and algorithms from:
+ *
+ * - NetBSD libi386/biosdisk.c
+ * - FreeBSD biosboot/disk.c
+ *
+ */
+
+#include <stand.h>
+
+#include <sys/diskmbr.h>
+#include <sys/disklabel.h>
+#include <sys/gpt.h>
+
+#include <stdarg.h>
+#include <uuid.h>
+
+#include <bootstrap.h>
+
+#include "disk.h"
+
+#ifdef DISK_DEBUG
+# define DEBUG(fmt, args...) printf("%s: " fmt "\n" , __func__ , ## args)
+#else
+# define DEBUG(fmt, args...)
+#endif
+
+/*
+ * Search for a slice with the following preferences:
+ *
+ * 1: Active FreeBSD slice
+ * 2: Non-active FreeBSD slice
+ * 3: Active Linux slice
+ * 4: non-active Linux slice
+ * 5: Active FAT/FAT32 slice
+ * 6: non-active FAT/FAT32 slice
+ */
+#define PREF_RAWDISK 0
+#define PREF_FBSD_ACT 1
+#define PREF_FBSD 2
+#define PREF_LINUX_ACT 3
+#define PREF_LINUX 4
+#define PREF_DOS_ACT 5
+#define PREF_DOS 6
+#define PREF_NONE 7
+
+#ifdef LOADER_GPT_SUPPORT
+
+struct gpt_part {
+ int gp_index;
+ uuid_t gp_type;
+ uint64_t gp_start;
+ uint64_t gp_end;
+};
+
+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;
+static uuid_t freebsd_swap = GPT_ENT_TYPE_FREEBSD_SWAP;
+static uuid_t freebsd_zfs = GPT_ENT_TYPE_FREEBSD_ZFS;
+static uuid_t ms_basic_data = GPT_ENT_TYPE_MS_BASIC_DATA;
+
+#endif
+
+#if defined(LOADER_GPT_SUPPORT) || defined(LOADER_MBR_SUPPORT)
+
+/* 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);
+}
+
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list