svn commit: r188902 - in user/alc/pagelock/sys: . amd64/linux32
arm/conf boot boot/ficl/mips boot/i386/loader
boot/ia64/common boot/ia64/efi boot/ia64/ski boot/pc98/loader
boot/powerpc/ofw boot/spa...
Alan Cox
alc at FreeBSD.org
Sat Feb 21 13:12:56 PST 2009
Author: alc
Date: Sat Feb 21 21:12:54 2009
New Revision: 188902
URL: http://svn.freebsd.org/changeset/base/188902
Log:
Merge from HEAD.
Added:
user/alc/pagelock/sys/boot/ficl/mips/
- copied from r188901, head/sys/boot/ficl/mips/
user/alc/pagelock/sys/dev/ata/ata-raid-ddf.h
- copied unchanged from r188901, head/sys/dev/ata/ata-raid-ddf.h
user/alc/pagelock/sys/powerpc/include/altivec.h
- copied unchanged from r188901, head/sys/powerpc/include/altivec.h
user/alc/pagelock/sys/powerpc/powerpc/altivec.c
- copied unchanged from r188901, head/sys/powerpc/powerpc/altivec.c
Deleted:
user/alc/pagelock/sys/dev/usb2/include/Makefile
user/alc/pagelock/sys/dev/usb2/include/usb2_devid.h
user/alc/pagelock/sys/dev/usb2/include/usb2_devtable.h
Modified:
user/alc/pagelock/sys/ (props changed)
user/alc/pagelock/sys/amd64/linux32/linux32_machdep.c
user/alc/pagelock/sys/arm/conf/AVILA
user/alc/pagelock/sys/arm/conf/CAMBRIA
user/alc/pagelock/sys/boot/Makefile
user/alc/pagelock/sys/boot/Makefile.inc
user/alc/pagelock/sys/boot/i386/loader/Makefile
user/alc/pagelock/sys/boot/ia64/common/Makefile
user/alc/pagelock/sys/boot/ia64/efi/Makefile
user/alc/pagelock/sys/boot/ia64/ski/Makefile
user/alc/pagelock/sys/boot/pc98/loader/Makefile
user/alc/pagelock/sys/boot/powerpc/ofw/Makefile
user/alc/pagelock/sys/boot/sparc64/loader/Makefile
user/alc/pagelock/sys/compat/linux/linux_stats.c
user/alc/pagelock/sys/conf/files
user/alc/pagelock/sys/conf/files.powerpc
user/alc/pagelock/sys/dev/aac/aac.c
user/alc/pagelock/sys/dev/aac/aac_debug.c
user/alc/pagelock/sys/dev/aac/aac_pci.c
user/alc/pagelock/sys/dev/aac/aacreg.h
user/alc/pagelock/sys/dev/aac/aacvar.h
user/alc/pagelock/sys/dev/acpica/acpi_cpu.c
user/alc/pagelock/sys/dev/arcmsr/arcmsr.c
user/alc/pagelock/sys/dev/ata/ata-all.c
user/alc/pagelock/sys/dev/ata/ata-all.h
user/alc/pagelock/sys/dev/ata/ata-card.c
user/alc/pagelock/sys/dev/ata/ata-cbus.c
user/alc/pagelock/sys/dev/ata/ata-disk.c
user/alc/pagelock/sys/dev/ata/ata-dma.c
user/alc/pagelock/sys/dev/ata/ata-isa.c
user/alc/pagelock/sys/dev/ata/ata-pci.c
user/alc/pagelock/sys/dev/ata/ata-pci.h
user/alc/pagelock/sys/dev/ata/ata-queue.c
user/alc/pagelock/sys/dev/ata/ata-raid.c
user/alc/pagelock/sys/dev/ata/ata-raid.h
user/alc/pagelock/sys/dev/ata/ata-usb.c
user/alc/pagelock/sys/dev/ata/atapi-cd.c
user/alc/pagelock/sys/dev/ata/atapi-fd.c
user/alc/pagelock/sys/dev/ata/atapi-tape.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-acard.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-acerlabs.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-ahci.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-highpoint.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-intel.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-jmicron.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-marvell.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-netcell.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-nvidia.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-promise.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-serverworks.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-siliconimage.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-sis.c
user/alc/pagelock/sys/dev/ata/chipsets/ata-via.c
user/alc/pagelock/sys/dev/ath/ath_hal/ah.c
user/alc/pagelock/sys/dev/ath/ath_hal/ah.h
user/alc/pagelock/sys/dev/ath/ath_hal/ah_internal.h
user/alc/pagelock/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
user/alc/pagelock/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c
user/alc/pagelock/sys/dev/ath/if_ath.c
user/alc/pagelock/sys/dev/ath/if_athvar.h
user/alc/pagelock/sys/dev/cfi/cfi_bus_ixp4xx.c
user/alc/pagelock/sys/dev/ciss/ciss.c
user/alc/pagelock/sys/dev/cx/if_cx.c
user/alc/pagelock/sys/dev/firewire/firewire.c
user/alc/pagelock/sys/dev/firewire/firewire.h
user/alc/pagelock/sys/dev/firewire/sbp.c
user/alc/pagelock/sys/dev/mmc/mmcsd.c
user/alc/pagelock/sys/dev/mxge/eth_z8e.h
user/alc/pagelock/sys/dev/mxge/ethp_z8e.h
user/alc/pagelock/sys/dev/mxge/if_mxge.c
user/alc/pagelock/sys/dev/mxge/if_mxge_var.h
user/alc/pagelock/sys/dev/mxge/mxge_mcp.h
user/alc/pagelock/sys/dev/mxge/rss_eth_z8e.h
user/alc/pagelock/sys/dev/mxge/rss_ethp_z8e.h
user/alc/pagelock/sys/dev/sdhci/sdhci.c
user/alc/pagelock/sys/dev/tsec/if_tsec.c
user/alc/pagelock/sys/dev/tsec/if_tsec.h
user/alc/pagelock/sys/dev/tsec/if_tsec_ocp.c
user/alc/pagelock/sys/dev/tsec/if_tsecreg.h
user/alc/pagelock/sys/dev/usb2/bluetooth/ng_ubt2.c
user/alc/pagelock/sys/dev/usb2/bluetooth/ubtbcmfw2.c
user/alc/pagelock/sys/dev/usb2/core/usb2_device.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_aue2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_axe2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_cdce2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_cue2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_kue2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_rue2.c
user/alc/pagelock/sys/dev/usb2/ethernet/if_udav2.c
user/alc/pagelock/sys/dev/usb2/image/uscanner2.c
user/alc/pagelock/sys/dev/usb2/input/uhid2.c
user/alc/pagelock/sys/dev/usb2/input/ums2.c
user/alc/pagelock/sys/dev/usb2/misc/udbp2.c
user/alc/pagelock/sys/dev/usb2/misc/ufm2.c
user/alc/pagelock/sys/dev/usb2/quirk/usb2_quirk.c
user/alc/pagelock/sys/dev/usb2/serial/u3g2.c
user/alc/pagelock/sys/dev/usb2/serial/uark2.c
user/alc/pagelock/sys/dev/usb2/serial/ubsa2.c
user/alc/pagelock/sys/dev/usb2/serial/uchcom2.c
user/alc/pagelock/sys/dev/usb2/serial/ucycom2.c
user/alc/pagelock/sys/dev/usb2/serial/ufoma2.c
user/alc/pagelock/sys/dev/usb2/serial/uftdi2.c
user/alc/pagelock/sys/dev/usb2/serial/ugensa2.c
user/alc/pagelock/sys/dev/usb2/serial/uipaq2.c
user/alc/pagelock/sys/dev/usb2/serial/ulpt2.c
user/alc/pagelock/sys/dev/usb2/serial/umct2.c
user/alc/pagelock/sys/dev/usb2/serial/umodem2.c
user/alc/pagelock/sys/dev/usb2/serial/umoscom2.c
user/alc/pagelock/sys/dev/usb2/serial/uplcom2.c
user/alc/pagelock/sys/dev/usb2/serial/uslcom2.c
user/alc/pagelock/sys/dev/usb2/serial/uvisor2.c
user/alc/pagelock/sys/dev/usb2/serial/uvscom2.c
user/alc/pagelock/sys/dev/usb2/sound/uaudio2.c
user/alc/pagelock/sys/dev/usb2/storage/ata-usb2.c
user/alc/pagelock/sys/dev/usb2/storage/umass2.c
user/alc/pagelock/sys/dev/usb2/storage/urio2.c
user/alc/pagelock/sys/dev/usb2/storage/ustorage2_fs.c
user/alc/pagelock/sys/dev/usb2/wlan/if_rum2.c
user/alc/pagelock/sys/dev/usb2/wlan/if_ural2.c
user/alc/pagelock/sys/dev/usb2/wlan/if_zyd2.c
user/alc/pagelock/sys/fs/udf/udf_vnops.c
user/alc/pagelock/sys/geom/geom_dev.c
user/alc/pagelock/sys/geom/part/g_part.c
user/alc/pagelock/sys/geom/part/g_part.h
user/alc/pagelock/sys/geom/part/g_part_bsd.c
user/alc/pagelock/sys/geom/part/g_part_ebr.c
user/alc/pagelock/sys/geom/part/g_part_if.m
user/alc/pagelock/sys/i386/acpica/acpi_wakeup.c
user/alc/pagelock/sys/i386/linux/linux_machdep.c
user/alc/pagelock/sys/kern/kern_osd.c
user/alc/pagelock/sys/kern/kern_proc.c
user/alc/pagelock/sys/kern/tty_pts.c
user/alc/pagelock/sys/kern/vfs_cache.c
user/alc/pagelock/sys/kern/vfs_syscalls.c
user/alc/pagelock/sys/modules/usb2/bluetooth_fw/Makefile
user/alc/pagelock/sys/modules/usb2/bluetooth_ng/Makefile
user/alc/pagelock/sys/modules/usb2/core/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_aue/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_axe/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_cdce/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_cue/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_dav/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_kue/Makefile
user/alc/pagelock/sys/modules/usb2/ethernet_rue/Makefile
user/alc/pagelock/sys/modules/usb2/input_hid/Makefile
user/alc/pagelock/sys/modules/usb2/input_kbd/Makefile
user/alc/pagelock/sys/modules/usb2/input_ms/Makefile
user/alc/pagelock/sys/modules/usb2/misc_dbp/Makefile
user/alc/pagelock/sys/modules/usb2/misc_fm/Makefile
user/alc/pagelock/sys/modules/usb2/quirk/Makefile
user/alc/pagelock/sys/modules/usb2/scanner/Makefile
user/alc/pagelock/sys/modules/usb2/serial_3g/Makefile
user/alc/pagelock/sys/modules/usb2/serial_ark/Makefile
user/alc/pagelock/sys/modules/usb2/serial_bsa/Makefile
user/alc/pagelock/sys/modules/usb2/serial_bser/Makefile
user/alc/pagelock/sys/modules/usb2/serial_chcom/Makefile
user/alc/pagelock/sys/modules/usb2/serial_cycom/Makefile
user/alc/pagelock/sys/modules/usb2/serial_foma/Makefile
user/alc/pagelock/sys/modules/usb2/serial_ftdi/Makefile
user/alc/pagelock/sys/modules/usb2/serial_gensa/Makefile
user/alc/pagelock/sys/modules/usb2/serial_ipaq/Makefile
user/alc/pagelock/sys/modules/usb2/serial_lpt/Makefile
user/alc/pagelock/sys/modules/usb2/serial_mct/Makefile
user/alc/pagelock/sys/modules/usb2/serial_modem/Makefile
user/alc/pagelock/sys/modules/usb2/serial_moscom/Makefile
user/alc/pagelock/sys/modules/usb2/serial_plcom/Makefile
user/alc/pagelock/sys/modules/usb2/serial_slcom/Makefile
user/alc/pagelock/sys/modules/usb2/serial_visor/Makefile
user/alc/pagelock/sys/modules/usb2/serial_vscom/Makefile
user/alc/pagelock/sys/modules/usb2/sound/Makefile
user/alc/pagelock/sys/modules/usb2/storage_ata/Makefile
user/alc/pagelock/sys/modules/usb2/storage_fs/Makefile
user/alc/pagelock/sys/modules/usb2/storage_mass/Makefile
user/alc/pagelock/sys/modules/usb2/storage_rio/Makefile
user/alc/pagelock/sys/modules/usb2/template/Makefile
user/alc/pagelock/sys/modules/usb2/wlan_ral/Makefile
user/alc/pagelock/sys/modules/usb2/wlan_rum/Makefile
user/alc/pagelock/sys/modules/usb2/wlan_zyd/Makefile
user/alc/pagelock/sys/net80211/_ieee80211.h
user/alc/pagelock/sys/net80211/ieee80211.c
user/alc/pagelock/sys/net80211/ieee80211_ioctl.c
user/alc/pagelock/sys/net80211/ieee80211_node.c
user/alc/pagelock/sys/net80211/ieee80211_phy.c
user/alc/pagelock/sys/net80211/ieee80211_proto.c
user/alc/pagelock/sys/net80211/ieee80211_regdomain.c
user/alc/pagelock/sys/net80211/ieee80211_scan.c
user/alc/pagelock/sys/net80211/ieee80211_scan_sta.c
user/alc/pagelock/sys/net80211/ieee80211_tdma.c
user/alc/pagelock/sys/netinet/sctp_constants.h
user/alc/pagelock/sys/netinet/sctp_header.h
user/alc/pagelock/sys/netinet/sctp_input.c
user/alc/pagelock/sys/netinet/sctp_output.c
user/alc/pagelock/sys/netinet/sctp_output.h
user/alc/pagelock/sys/netinet/sctp_pcb.c
user/alc/pagelock/sys/netinet/sctp_structs.h
user/alc/pagelock/sys/netinet/sctp_uio.h
user/alc/pagelock/sys/netinet/sctp_usrreq.c
user/alc/pagelock/sys/netinet/sctputil.c
user/alc/pagelock/sys/nfsclient/nfs_vnops.c
user/alc/pagelock/sys/nfsclient/nfsnode.h
user/alc/pagelock/sys/powerpc/aim/machdep.c
user/alc/pagelock/sys/powerpc/aim/swtch.S
user/alc/pagelock/sys/powerpc/aim/trap.c
user/alc/pagelock/sys/powerpc/aim/trap_subr.S
user/alc/pagelock/sys/powerpc/conf/MPC85XX
user/alc/pagelock/sys/powerpc/include/pcb.h
user/alc/pagelock/sys/powerpc/include/pcpu.h
user/alc/pagelock/sys/powerpc/powerpc/genassym.c
user/alc/pagelock/sys/sys/disk.h
user/alc/pagelock/sys/sys/jail.h
user/alc/pagelock/sys/sys/osd.h
user/alc/pagelock/sys/sys/param.h
user/alc/pagelock/sys/sys/syscallsubr.h
user/alc/pagelock/sys/sys/vnode.h
user/alc/pagelock/sys/vm/vm_object.c
Modified: user/alc/pagelock/sys/amd64/linux32/linux32_machdep.c
==============================================================================
--- user/alc/pagelock/sys/amd64/linux32/linux32_machdep.c Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/amd64/linux32/linux32_machdep.c Sat Feb 21 21:12:54 2009 (r188902)
@@ -560,7 +560,7 @@ linux_vfork(struct thread *td, struct li
/* wait for the children to exit, ie. emulate vfork */
PROC_LOCK(p2);
while (p2->p_flag & P_PPWAIT)
- msleep(td->td_proc, &p2->p_mtx, PWAIT, "ppwait", 0);
+ cv_wait(&p2->p_pwait, &p2->p_mtx);
PROC_UNLOCK(p2);
return (0);
@@ -749,7 +749,7 @@ linux_clone(struct thread *td, struct li
/* wait for the children to exit, ie. emulate vfork */
PROC_LOCK(p2);
while (p2->p_flag & P_PPWAIT)
- msleep(td->td_proc, &p2->p_mtx, PWAIT, "ppwait", 0);
+ cv_wait(&p2->p_pwait, &p2->p_mtx);
PROC_UNLOCK(p2);
}
Modified: user/alc/pagelock/sys/arm/conf/AVILA
==============================================================================
--- user/alc/pagelock/sys/arm/conf/AVILA Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/arm/conf/AVILA Sat Feb 21 21:12:54 2009 (r188902)
@@ -88,7 +88,7 @@ device npe # Network Processing Engine
device npe_fw
device firmware
device qmgr # Q Manager (required by npe)
-device miibus # NB: required by npe
+device mii # NB: required by npe
device ether
device bpf
Modified: user/alc/pagelock/sys/arm/conf/CAMBRIA
==============================================================================
--- user/alc/pagelock/sys/arm/conf/CAMBRIA Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/arm/conf/CAMBRIA Sat Feb 21 21:12:54 2009 (r188902)
@@ -87,7 +87,7 @@ device npe # Network Processing Engine
device npe_fw
device firmware
device qmgr # Q Manager (required by npe)
-device miibus # NB: required by npe
+device mii # NB: required by npe
device ether
device bpf
Modified: user/alc/pagelock/sys/boot/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -2,10 +2,6 @@
.include <bsd.own.mk>
-.if ${MACHINE_ARCH} == "mips"
-MK_FORTH=no # not yet
-.endif
-
.if ${MK_FORTH} != "no"
# Build the add-in FORTH interpreter.
SUBDIR+= ficl
Modified: user/alc/pagelock/sys/boot/Makefile.inc
==============================================================================
--- user/alc/pagelock/sys/boot/Makefile.inc Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/Makefile.inc Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,3 +1,3 @@
# $FreeBSD$
-WITHOUT_SSP=
+SSP_CFLAGS=
Modified: user/alc/pagelock/sys/boot/i386/loader/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/i386/loader/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/i386/loader/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,8 +1,7 @@
# $FreeBSD$
-WITHOUT_SSP=
-
.include <bsd.own.mk>
+MK_SSP= no
PROG= loader.sym
INTERNALPROG=
Modified: user/alc/pagelock/sys/boot/ia64/common/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/ia64/common/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/ia64/common/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,8 +1,7 @@
# $FreeBSD$
-WITHOUT_SSP=
-
.include <bsd.own.mk>
+MK_SSP= no
LIB= ia64
INTERNALLIB=
Modified: user/alc/pagelock/sys/boot/ia64/efi/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/ia64/efi/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/ia64/efi/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,9 +1,9 @@
# $FreeBSD$
NO_MAN=
-WITHOUT_SSP=
.include <bsd.own.mk>
+MK_SSP= no
PROG= loader.sym
INTERNALPROG=
Modified: user/alc/pagelock/sys/boot/ia64/ski/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/ia64/ski/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/ia64/ski/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,9 +1,9 @@
# $FreeBSD$
NO_MAN=
-WITHOUT_SSP=
.include <bsd.own.mk>
+MK_SSP= no
PROG= skiload
STRIP= # We must not strip skiload at install time.
Modified: user/alc/pagelock/sys/boot/pc98/loader/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/pc98/loader/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/pc98/loader/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,8 +1,7 @@
# $FreeBSD$
-WITHOUT_SSP=
-
.include <bsd.own.mk>
+MK_SSP= no
PROG= loader.sym
INTERNALPROG=
Modified: user/alc/pagelock/sys/boot/powerpc/ofw/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/powerpc/ofw/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/powerpc/ofw/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,8 +1,7 @@
# $FreeBSD$
-WITHOUT_SSP=
-
.include <bsd.own.mk>
+MK_SSP= no
PROG= loader
NEWVERSWHAT= "Open Firmware loader" ${MACHINE_ARCH}
Modified: user/alc/pagelock/sys/boot/sparc64/loader/Makefile
==============================================================================
--- user/alc/pagelock/sys/boot/sparc64/loader/Makefile Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/boot/sparc64/loader/Makefile Sat Feb 21 21:12:54 2009 (r188902)
@@ -1,8 +1,7 @@
# $FreeBSD$
-WITHOUT_SSP=
-
.include <bsd.own.mk>
+MK_SSP= no
PROG= loader
NEWVERSWHAT= "bootstrap loader" sparc64
Modified: user/alc/pagelock/sys/compat/linux/linux_stats.c
==============================================================================
--- user/alc/pagelock/sys/compat/linux/linux_stats.c Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/compat/linux/linux_stats.c Sat Feb 21 21:12:54 2009 (r188902)
@@ -62,6 +62,44 @@ __FBSDID("$FreeBSD$");
#include <security/mac/mac_framework.h>
+static void
+translate_vnhook_major_minor(struct vnode *vp, struct stat *sb)
+{
+ int major, minor;
+
+ if (vp->v_type == VCHR && vp->v_rdev != NULL &&
+ linux_driver_get_major_minor(vp->v_rdev->si_name,
+ &major, &minor) == 0) {
+ sb->st_rdev = (major << 8 | minor);
+ }
+}
+
+static int
+linux_kern_statat(struct thread *td, int flag, int fd, char *path,
+ enum uio_seg pathseg, struct stat *sbp)
+{
+
+ return (kern_statat_vnhook(td, flag, fd, path, pathseg, sbp,
+ translate_vnhook_major_minor));
+}
+
+static int
+linux_kern_stat(struct thread *td, char *path, enum uio_seg pathseg,
+ struct stat *sbp)
+{
+
+ return (linux_kern_statat(td, 0, AT_FDCWD, path, pathseg, sbp));
+}
+
+static int
+linux_kern_lstat(struct thread *td, char *path, enum uio_seg pathseg,
+ struct stat *sbp)
+{
+
+ return (linux_kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, path,
+ pathseg, sbp));
+}
+
/*
* XXX: This was removed from newstat_copyout(), and almost identical
* XXX: code was in stat64_copyout(). findcdev() needs to be replaced
@@ -102,14 +140,15 @@ static void
translate_fd_major_minor(struct thread *td, int fd, struct stat *buf)
{
struct file *fp;
+ struct vnode *vp;
int major, minor;
if ((!S_ISCHR(buf->st_mode) && !S_ISBLK(buf->st_mode)) ||
fget(td, fd, &fp) != 0)
return;
- if (fp->f_vnode != NULL &&
- fp->f_vnode->v_un.vu_cdev != NULL &&
- linux_driver_get_major_minor(fp->f_vnode->v_un.vu_cdev->si_name,
+ vp = fp->f_vnode;
+ if (vp != NULL && vp->v_rdev != NULL &&
+ linux_driver_get_major_minor(vp->v_rdev->si_name,
&major, &minor) == 0) {
buf->st_rdev = (major << 8 | minor);
} else if (fp->f_type == DTYPE_PTS) {
@@ -124,32 +163,6 @@ translate_fd_major_minor(struct thread *
fdrop(fp, td);
}
-static void
-translate_path_major_minor_at(struct thread *td, char *path,
- struct stat *buf, int dfd)
-{
- struct proc *p = td->td_proc;
- struct filedesc *fdp = p->p_fd;
- int fd;
- int temp;
-
- if (!S_ISCHR(buf->st_mode) && !S_ISBLK(buf->st_mode))
- return;
- temp = td->td_retval[0];
- if (kern_openat(td, dfd, path, UIO_SYSSPACE, O_RDONLY, 0) != 0)
- return;
- fd = td->td_retval[0];
- td->td_retval[0] = temp;
- translate_fd_major_minor(td, fd, buf);
- fdclose(fdp, fdp->fd_ofiles[fd], fd, td);
-}
-
-static inline void
-translate_path_major_minor(struct thread *td, char *path, struct stat *buf)
-{
- translate_path_major_minor_at(td, path, buf, AT_FDCWD);
-}
-
static int
newstat_copyout(struct stat *buf, void *ubuf)
{
@@ -187,9 +200,7 @@ linux_newstat(struct thread *td, struct
printf(ARGS(newstat, "%s, *"), path);
#endif
- error = kern_stat(td, path, UIO_SYSSPACE, &buf);
- if (!error)
- translate_path_major_minor(td, path, &buf);
+ error = linux_kern_stat(td, path, UIO_SYSSPACE, &buf);
LFREEPATH(path);
if (error)
return (error);
@@ -210,9 +221,7 @@ linux_newlstat(struct thread *td, struct
printf(ARGS(newlstat, "%s, *"), path);
#endif
- error = kern_lstat(td, path, UIO_SYSSPACE, &sb);
- if (!error)
- translate_path_major_minor(td, path, &sb);
+ error = linux_kern_lstat(td, path, UIO_SYSSPACE, &sb);
LFREEPATH(path);
if (error)
return (error);
@@ -279,12 +288,11 @@ linux_stat(struct thread *td, struct lin
if (ldebug(stat))
printf(ARGS(stat, "%s, *"), path);
#endif
- error = kern_stat(td, path, UIO_SYSSPACE, &buf);
+ error = linux_kern_stat(td, path, UIO_SYSSPACE, &buf);
if (error) {
LFREEPATH(path);
return (error);
}
- translate_path_major_minor(td, path, &buf);
LFREEPATH(path);
return(stat_copyout(&buf, args->up));
}
@@ -302,12 +310,11 @@ linux_lstat(struct thread *td, struct li
if (ldebug(lstat))
printf(ARGS(lstat, "%s, *"), path);
#endif
- error = kern_lstat(td, path, UIO_SYSSPACE, &buf);
+ error = linux_kern_lstat(td, path, UIO_SYSSPACE, &buf);
if (error) {
LFREEPATH(path);
return (error);
}
- translate_path_major_minor(td, path, &buf);
LFREEPATH(path);
return(stat_copyout(&buf, args->up));
}
@@ -526,9 +533,7 @@ linux_stat64(struct thread *td, struct l
printf(ARGS(stat64, "%s, *"), filename);
#endif
- error = kern_stat(td, filename, UIO_SYSSPACE, &buf);
- if (!error)
- translate_path_major_minor(td, filename, &buf);
+ error = linux_kern_stat(td, filename, UIO_SYSSPACE, &buf);
LFREEPATH(filename);
if (error)
return (error);
@@ -549,9 +554,7 @@ linux_lstat64(struct thread *td, struct
printf(ARGS(lstat64, "%s, *"), args->filename);
#endif
- error = kern_lstat(td, filename, UIO_SYSSPACE, &sb);
- if (!error)
- translate_path_major_minor(td, filename, &sb);
+ error = linux_kern_lstat(td, filename, UIO_SYSSPACE, &sb);
LFREEPATH(filename);
if (error)
return (error);
@@ -597,8 +600,7 @@ linux_fstatat64(struct thread *td, struc
printf(ARGS(fstatat64, "%i, %s, %i"), args->dfd, path, args->flag);
#endif
- error = kern_statat(td, flag, dfd, path, UIO_SYSSPACE, &buf);
- translate_path_major_minor_at(td, args->pathname, &buf, dfd);
+ error = linux_kern_statat(td, flag, dfd, path, UIO_SYSSPACE, &buf);
if (!error)
error = stat64_copyout(&buf, args->statbuf);
LFREEPATH(path);
Modified: user/alc/pagelock/sys/conf/files
==============================================================================
--- user/alc/pagelock/sys/conf/files Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/conf/files Sat Feb 21 21:12:54 2009 (r188902)
@@ -80,12 +80,12 @@ teken_state.h optional sc \
compile-with "${AWK} -f $S/dev/syscons/teken/gensequences $S/dev/syscons/teken/sequences > teken_state.h" \
no-obj no-implicit-rule before-depend \
clean "teken_state.h"
-usbdevs.h optional usb \
+usbdevs.h optional usb | usb2_core \
dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \
compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -h" \
no-obj no-implicit-rule before-depend \
clean "usbdevs.h"
-usbdevs_data.h optional usb \
+usbdevs_data.h optional usb | usb2_core \
dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \
compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -d" \
no-obj no-implicit-rule before-depend \
Modified: user/alc/pagelock/sys/conf/files.powerpc
==============================================================================
--- user/alc/pagelock/sys/conf/files.powerpc Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/conf/files.powerpc Sat Feb 21 21:12:54 2009 (r188902)
@@ -126,6 +126,7 @@ powerpc/powermac/uninorth.c optional pow
powerpc/powermac/cuda.c optional powermac cuda
powerpc/powermac/pmu.c optional powermac pmu
powerpc/powermac/macgpio.c optional powermac pci
+powerpc/powerpc/altivec.c optional aim
powerpc/powerpc/atomic.S standard
powerpc/powerpc/autoconf.c standard
powerpc/powerpc/bcopy.c standard
Modified: user/alc/pagelock/sys/dev/aac/aac.c
==============================================================================
--- user/alc/pagelock/sys/dev/aac/aac.c Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/dev/aac/aac.c Sat Feb 21 21:12:54 2009 (r188902)
@@ -71,6 +71,7 @@ static void aac_startup(void *arg);
static void aac_add_container(struct aac_softc *sc,
struct aac_mntinforesp *mir, int f);
static void aac_get_bus_info(struct aac_softc *sc);
+static void aac_daemon(void *arg);
/* Command Processing */
static void aac_timeout(struct aac_softc *sc);
@@ -292,6 +293,9 @@ aac_attach(struct aac_softc *sc)
TAILQ_INIT(&sc->aac_container_tqh);
TAILQ_INIT(&sc->aac_ev_cmfree);
+ /* Initialize the clock daemon callout. */
+ callout_init_mtx(&sc->aac_daemontime, &sc->aac_io_lock, 0);
+
/*
* Initialize the adapter.
*/
@@ -349,9 +353,34 @@ aac_attach(struct aac_softc *sc)
aac_get_bus_info(sc);
}
+ mtx_lock(&sc->aac_io_lock);
+ callout_reset(&sc->aac_daemontime, 30 * 60 * hz, aac_daemon, sc);
+ mtx_unlock(&sc->aac_io_lock);
+
return(0);
}
+static void
+aac_daemon(void *arg)
+{
+ struct timeval tv;
+ struct aac_softc *sc;
+ struct aac_fib *fib;
+
+ sc = arg;
+ mtx_assert(&sc->aac_io_lock, MA_OWNED);
+
+ if (callout_pending(&sc->aac_daemontime) ||
+ callout_active(&sc->aac_daemontime) == 0)
+ return;
+ getmicrotime(&tv);
+ aac_alloc_sync_fib(sc, &fib);
+ *(uint32_t *)fib->data = tv.tv_sec;
+ aac_sync_fib(sc, SendHostTime, 0, fib, sizeof(uint32_t));
+ aac_release_sync_fib(sc);
+ callout_schedule(&sc->aac_daemontime, 30 * 60 * hz);
+}
+
void
aac_add_event(struct aac_softc *sc, struct aac_event *event)
{
@@ -632,9 +661,12 @@ aac_free(struct aac_softc *sc)
bus_dma_tag_destroy(sc->aac_parent_dmat);
/* release the register window mapping */
- if (sc->aac_regs_resource != NULL)
+ if (sc->aac_regs_res0 != NULL)
+ bus_release_resource(sc->aac_dev, SYS_RES_MEMORY,
+ sc->aac_regs_rid0, sc->aac_regs_res0);
+ if (sc->aac_hwif == AAC_HWIF_NARK && sc->aac_regs_res1 != NULL)
bus_release_resource(sc->aac_dev, SYS_RES_MEMORY,
- sc->aac_regs_rid, sc->aac_regs_resource);
+ sc->aac_regs_rid1, sc->aac_regs_res1);
}
/*
@@ -654,6 +686,8 @@ aac_detach(device_t dev)
if (sc->aac_state & AAC_STATE_OPEN)
return(EBUSY);
+ callout_drain(&sc->aac_daemontime);
+
/* Remove the child containers */
while ((co = TAILQ_FIRST(&sc->aac_container_tqh)) != NULL) {
error = device_delete_child(dev, co->co_disk);
@@ -834,7 +868,7 @@ aac_new_intr(void *arg)
}
index &= ~2;
for (i = 0; i < sizeof(struct aac_fib)/4; ++i)
- ((u_int32_t *)fib)[i] = AAC_GETREG4(sc, index + i*4);
+ ((u_int32_t *)fib)[i] = AAC_MEM1_GETREG4(sc, index + i*4);
aac_handle_aif(sc, fib);
free(fib, M_AACBUF);
@@ -1754,26 +1788,33 @@ aac_check_firmware(struct aac_softc *sc)
/* Remap mem. resource, if required */
if ((sc->flags & AAC_FLAGS_NEW_COMM) &&
- atu_size > rman_get_size(sc->aac_regs_resource)) {
+ atu_size > rman_get_size(sc->aac_regs_res1)) {
bus_release_resource(
sc->aac_dev, SYS_RES_MEMORY,
- sc->aac_regs_rid, sc->aac_regs_resource);
- sc->aac_regs_resource = bus_alloc_resource(
- sc->aac_dev, SYS_RES_MEMORY, &sc->aac_regs_rid,
+ sc->aac_regs_rid1, sc->aac_regs_res1);
+ sc->aac_regs_res1 = bus_alloc_resource(
+ sc->aac_dev, SYS_RES_MEMORY, &sc->aac_regs_rid1,
0ul, ~0ul, atu_size, RF_ACTIVE);
- if (sc->aac_regs_resource == NULL) {
- sc->aac_regs_resource = bus_alloc_resource_any(
+ if (sc->aac_regs_res1 == NULL) {
+ sc->aac_regs_res1 = bus_alloc_resource_any(
sc->aac_dev, SYS_RES_MEMORY,
- &sc->aac_regs_rid, RF_ACTIVE);
- if (sc->aac_regs_resource == NULL) {
+ &sc->aac_regs_rid1, RF_ACTIVE);
+ if (sc->aac_regs_res1 == NULL) {
device_printf(sc->aac_dev,
"couldn't allocate register window\n");
return (ENXIO);
}
sc->flags &= ~AAC_FLAGS_NEW_COMM;
}
- sc->aac_btag = rman_get_bustag(sc->aac_regs_resource);
- sc->aac_bhandle = rman_get_bushandle(sc->aac_regs_resource);
+ sc->aac_btag1 = rman_get_bustag(sc->aac_regs_res1);
+ sc->aac_bhandle1 = rman_get_bushandle(sc->aac_regs_res1);
+
+ if (sc->aac_hwif == AAC_HWIF_NARK) {
+ sc->aac_regs_res0 = sc->aac_regs_res1;
+ sc->aac_regs_rid0 = sc->aac_regs_rid1;
+ sc->aac_btag0 = sc->aac_btag1;
+ sc->aac_bhandle0 = sc->aac_bhandle1;
+ }
}
/* Read preferred settings */
@@ -1944,10 +1985,10 @@ aac_init(struct aac_softc *sc)
*/
switch (sc->aac_hwif) {
case AAC_HWIF_I960RX:
- AAC_SETREG4(sc, AAC_RX_ODBR, ~0);
+ AAC_MEM0_SETREG4(sc, AAC_RX_ODBR, ~0);
break;
case AAC_HWIF_RKT:
- AAC_SETREG4(sc, AAC_RKT_ODBR, ~0);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_ODBR, ~0);
break;
default:
break;
@@ -2367,7 +2408,7 @@ aac_sa_get_fwstatus(struct aac_softc *sc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_SA_FWSTATUS));
+ return(AAC_MEM0_GETREG4(sc, AAC_SA_FWSTATUS));
}
static int
@@ -2375,7 +2416,7 @@ aac_rx_get_fwstatus(struct aac_softc *sc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RX_FWSTATUS));
+ return(AAC_MEM0_GETREG4(sc, AAC_RX_OMR0));
}
static int
@@ -2385,7 +2426,7 @@ aac_fa_get_fwstatus(struct aac_softc *sc
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- val = AAC_GETREG4(sc, AAC_FA_FWSTATUS);
+ val = AAC_MEM0_GETREG4(sc, AAC_FA_FWSTATUS);
return (val);
}
@@ -2394,7 +2435,7 @@ aac_rkt_get_fwstatus(struct aac_softc *s
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RKT_FWSTATUS));
+ return(AAC_MEM0_GETREG4(sc, AAC_RKT_OMR0));
}
/*
@@ -2406,7 +2447,7 @@ aac_sa_qnotify(struct aac_softc *sc, int
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG2(sc, AAC_SA_DOORBELL1_SET, qbit);
+ AAC_MEM0_SETREG2(sc, AAC_SA_DOORBELL1_SET, qbit);
}
static void
@@ -2414,7 +2455,7 @@ aac_rx_qnotify(struct aac_softc *sc, int
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RX_IDBR, qbit);
+ AAC_MEM0_SETREG4(sc, AAC_RX_IDBR, qbit);
}
static void
@@ -2422,7 +2463,7 @@ aac_fa_qnotify(struct aac_softc *sc, int
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG2(sc, AAC_FA_DOORBELL1, qbit);
+ AAC_MEM0_SETREG2(sc, AAC_FA_DOORBELL1, qbit);
AAC_FA_HACK(sc);
}
@@ -2431,7 +2472,7 @@ aac_rkt_qnotify(struct aac_softc *sc, in
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RKT_IDBR, qbit);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_IDBR, qbit);
}
/*
@@ -2442,7 +2483,7 @@ aac_sa_get_istatus(struct aac_softc *sc)
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG2(sc, AAC_SA_DOORBELL0));
+ return(AAC_MEM0_GETREG2(sc, AAC_SA_DOORBELL0));
}
static int
@@ -2450,7 +2491,7 @@ aac_rx_get_istatus(struct aac_softc *sc)
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RX_ODBR));
+ return(AAC_MEM0_GETREG4(sc, AAC_RX_ODBR));
}
static int
@@ -2460,7 +2501,7 @@ aac_fa_get_istatus(struct aac_softc *sc)
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- val = AAC_GETREG2(sc, AAC_FA_DOORBELL0);
+ val = AAC_MEM0_GETREG2(sc, AAC_FA_DOORBELL0);
return (val);
}
@@ -2469,7 +2510,7 @@ aac_rkt_get_istatus(struct aac_softc *sc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RKT_ODBR));
+ return(AAC_MEM0_GETREG4(sc, AAC_RKT_ODBR));
}
/*
@@ -2480,7 +2521,7 @@ aac_sa_clear_istatus(struct aac_softc *s
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG2(sc, AAC_SA_DOORBELL0_CLEAR, mask);
+ AAC_MEM0_SETREG2(sc, AAC_SA_DOORBELL0_CLEAR, mask);
}
static void
@@ -2488,7 +2529,7 @@ aac_rx_clear_istatus(struct aac_softc *s
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RX_ODBR, mask);
+ AAC_MEM0_SETREG4(sc, AAC_RX_ODBR, mask);
}
static void
@@ -2496,7 +2537,7 @@ aac_fa_clear_istatus(struct aac_softc *s
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG2(sc, AAC_FA_DOORBELL0_CLEAR, mask);
+ AAC_MEM0_SETREG2(sc, AAC_FA_DOORBELL0_CLEAR, mask);
AAC_FA_HACK(sc);
}
@@ -2505,7 +2546,7 @@ aac_rkt_clear_istatus(struct aac_softc *
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RKT_ODBR, mask);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_ODBR, mask);
}
/*
@@ -2517,11 +2558,11 @@ aac_sa_set_mailbox(struct aac_softc *sc,
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_SA_MAILBOX, command);
- AAC_SETREG4(sc, AAC_SA_MAILBOX + 4, arg0);
- AAC_SETREG4(sc, AAC_SA_MAILBOX + 8, arg1);
- AAC_SETREG4(sc, AAC_SA_MAILBOX + 12, arg2);
- AAC_SETREG4(sc, AAC_SA_MAILBOX + 16, arg3);
+ AAC_MEM1_SETREG4(sc, AAC_SA_MAILBOX, command);
+ AAC_MEM1_SETREG4(sc, AAC_SA_MAILBOX + 4, arg0);
+ AAC_MEM1_SETREG4(sc, AAC_SA_MAILBOX + 8, arg1);
+ AAC_MEM1_SETREG4(sc, AAC_SA_MAILBOX + 12, arg2);
+ AAC_MEM1_SETREG4(sc, AAC_SA_MAILBOX + 16, arg3);
}
static void
@@ -2530,11 +2571,11 @@ aac_rx_set_mailbox(struct aac_softc *sc,
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RX_MAILBOX, command);
- AAC_SETREG4(sc, AAC_RX_MAILBOX + 4, arg0);
- AAC_SETREG4(sc, AAC_RX_MAILBOX + 8, arg1);
- AAC_SETREG4(sc, AAC_RX_MAILBOX + 12, arg2);
- AAC_SETREG4(sc, AAC_RX_MAILBOX + 16, arg3);
+ AAC_MEM1_SETREG4(sc, AAC_RX_MAILBOX, command);
+ AAC_MEM1_SETREG4(sc, AAC_RX_MAILBOX + 4, arg0);
+ AAC_MEM1_SETREG4(sc, AAC_RX_MAILBOX + 8, arg1);
+ AAC_MEM1_SETREG4(sc, AAC_RX_MAILBOX + 12, arg2);
+ AAC_MEM1_SETREG4(sc, AAC_RX_MAILBOX + 16, arg3);
}
static void
@@ -2543,15 +2584,15 @@ aac_fa_set_mailbox(struct aac_softc *sc,
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_FA_MAILBOX, command);
+ AAC_MEM1_SETREG4(sc, AAC_FA_MAILBOX, command);
AAC_FA_HACK(sc);
- AAC_SETREG4(sc, AAC_FA_MAILBOX + 4, arg0);
+ AAC_MEM1_SETREG4(sc, AAC_FA_MAILBOX + 4, arg0);
AAC_FA_HACK(sc);
- AAC_SETREG4(sc, AAC_FA_MAILBOX + 8, arg1);
+ AAC_MEM1_SETREG4(sc, AAC_FA_MAILBOX + 8, arg1);
AAC_FA_HACK(sc);
- AAC_SETREG4(sc, AAC_FA_MAILBOX + 12, arg2);
+ AAC_MEM1_SETREG4(sc, AAC_FA_MAILBOX + 12, arg2);
AAC_FA_HACK(sc);
- AAC_SETREG4(sc, AAC_FA_MAILBOX + 16, arg3);
+ AAC_MEM1_SETREG4(sc, AAC_FA_MAILBOX + 16, arg3);
AAC_FA_HACK(sc);
}
@@ -2561,11 +2602,11 @@ aac_rkt_set_mailbox(struct aac_softc *sc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RKT_MAILBOX, command);
- AAC_SETREG4(sc, AAC_RKT_MAILBOX + 4, arg0);
- AAC_SETREG4(sc, AAC_RKT_MAILBOX + 8, arg1);
- AAC_SETREG4(sc, AAC_RKT_MAILBOX + 12, arg2);
- AAC_SETREG4(sc, AAC_RKT_MAILBOX + 16, arg3);
+ AAC_MEM1_SETREG4(sc, AAC_RKT_MAILBOX, command);
+ AAC_MEM1_SETREG4(sc, AAC_RKT_MAILBOX + 4, arg0);
+ AAC_MEM1_SETREG4(sc, AAC_RKT_MAILBOX + 8, arg1);
+ AAC_MEM1_SETREG4(sc, AAC_RKT_MAILBOX + 12, arg2);
+ AAC_MEM1_SETREG4(sc, AAC_RKT_MAILBOX + 16, arg3);
}
/*
@@ -2576,7 +2617,7 @@ aac_sa_get_mailbox(struct aac_softc *sc,
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_SA_MAILBOX + (mb * 4)));
+ return(AAC_MEM1_GETREG4(sc, AAC_SA_MAILBOX + (mb * 4)));
}
static int
@@ -2584,7 +2625,7 @@ aac_rx_get_mailbox(struct aac_softc *sc,
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RX_MAILBOX + (mb * 4)));
+ return(AAC_MEM1_GETREG4(sc, AAC_RX_MAILBOX + (mb * 4)));
}
static int
@@ -2594,7 +2635,7 @@ aac_fa_get_mailbox(struct aac_softc *sc,
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- val = AAC_GETREG4(sc, AAC_FA_MAILBOX + (mb * 4));
+ val = AAC_MEM1_GETREG4(sc, AAC_FA_MAILBOX + (mb * 4));
return (val);
}
@@ -2603,7 +2644,7 @@ aac_rkt_get_mailbox(struct aac_softc *sc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RKT_MAILBOX + (mb * 4)));
+ return(AAC_MEM1_GETREG4(sc, AAC_RKT_MAILBOX + (mb * 4)));
}
/*
@@ -2615,9 +2656,9 @@ aac_sa_set_interrupts(struct aac_softc *
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "%sable interrupts", enable ? "en" : "dis");
if (enable) {
- AAC_SETREG2((sc), AAC_SA_MASK0_CLEAR, AAC_DB_INTERRUPTS);
+ AAC_MEM0_SETREG2((sc), AAC_SA_MASK0_CLEAR, AAC_DB_INTERRUPTS);
} else {
- AAC_SETREG2((sc), AAC_SA_MASK0_SET, ~0);
+ AAC_MEM0_SETREG2((sc), AAC_SA_MASK0_SET, ~0);
}
}
@@ -2628,11 +2669,11 @@ aac_rx_set_interrupts(struct aac_softc *
if (enable) {
if (sc->flags & AAC_FLAGS_NEW_COMM)
- AAC_SETREG4(sc, AAC_RX_OIMR, ~AAC_DB_INT_NEW_COMM);
+ AAC_MEM0_SETREG4(sc, AAC_RX_OIMR, ~AAC_DB_INT_NEW_COMM);
else
- AAC_SETREG4(sc, AAC_RX_OIMR, ~AAC_DB_INTERRUPTS);
+ AAC_MEM0_SETREG4(sc, AAC_RX_OIMR, ~AAC_DB_INTERRUPTS);
} else {
- AAC_SETREG4(sc, AAC_RX_OIMR, ~0);
+ AAC_MEM0_SETREG4(sc, AAC_RX_OIMR, ~0);
}
}
@@ -2642,10 +2683,10 @@ aac_fa_set_interrupts(struct aac_softc *
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "%sable interrupts", enable ? "en" : "dis");
if (enable) {
- AAC_SETREG2((sc), AAC_FA_MASK0_CLEAR, AAC_DB_INTERRUPTS);
+ AAC_MEM0_SETREG2((sc), AAC_FA_MASK0_CLEAR, AAC_DB_INTERRUPTS);
AAC_FA_HACK(sc);
} else {
- AAC_SETREG2((sc), AAC_FA_MASK0, ~0);
+ AAC_MEM0_SETREG2((sc), AAC_FA_MASK0, ~0);
AAC_FA_HACK(sc);
}
}
@@ -2657,11 +2698,11 @@ aac_rkt_set_interrupts(struct aac_softc
if (enable) {
if (sc->flags & AAC_FLAGS_NEW_COMM)
- AAC_SETREG4(sc, AAC_RKT_OIMR, ~AAC_DB_INT_NEW_COMM);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_OIMR, ~AAC_DB_INT_NEW_COMM);
else
- AAC_SETREG4(sc, AAC_RKT_OIMR, ~AAC_DB_INTERRUPTS);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_OIMR, ~AAC_DB_INTERRUPTS);
} else {
- AAC_SETREG4(sc, AAC_RKT_OIMR, ~0);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_OIMR, ~0);
}
}
@@ -2675,19 +2716,19 @@ aac_rx_send_command(struct aac_softc *sc
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "send command (new comm.)");
- index = AAC_GETREG4(sc, AAC_RX_IQUE);
+ index = AAC_MEM0_GETREG4(sc, AAC_RX_IQUE);
if (index == 0xffffffffL)
- index = AAC_GETREG4(sc, AAC_RX_IQUE);
+ index = AAC_MEM0_GETREG4(sc, AAC_RX_IQUE);
if (index == 0xffffffffL)
return index;
aac_enqueue_busy(cm);
device = index;
- AAC_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys & 0xffffffffUL));
+ AAC_MEM1_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys & 0xffffffffUL));
device += 4;
- AAC_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys >> 32));
+ AAC_MEM1_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys >> 32));
device += 4;
- AAC_SETREG4(sc, device, cm->cm_fib->Header.Size);
- AAC_SETREG4(sc, AAC_RX_IQUE, index);
+ AAC_MEM1_SETREG4(sc, device, cm->cm_fib->Header.Size);
+ AAC_MEM0_SETREG4(sc, AAC_RX_IQUE, index);
return 0;
}
@@ -2698,19 +2739,19 @@ aac_rkt_send_command(struct aac_softc *s
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "send command (new comm.)");
- index = AAC_GETREG4(sc, AAC_RKT_IQUE);
+ index = AAC_MEM0_GETREG4(sc, AAC_RKT_IQUE);
if (index == 0xffffffffL)
- index = AAC_GETREG4(sc, AAC_RKT_IQUE);
+ index = AAC_MEM0_GETREG4(sc, AAC_RKT_IQUE);
if (index == 0xffffffffL)
return index;
aac_enqueue_busy(cm);
device = index;
- AAC_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys & 0xffffffffUL));
+ AAC_MEM1_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys & 0xffffffffUL));
device += 4;
- AAC_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys >> 32));
+ AAC_MEM1_SETREG4(sc, device, (u_int32_t)(cm->cm_fibphys >> 32));
device += 4;
- AAC_SETREG4(sc, device, cm->cm_fib->Header.Size);
- AAC_SETREG4(sc, AAC_RKT_IQUE, index);
+ AAC_MEM1_SETREG4(sc, device, cm->cm_fib->Header.Size);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_IQUE, index);
return 0;
}
@@ -2722,7 +2763,7 @@ aac_rx_get_outb_queue(struct aac_softc *
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RX_OQUE));
+ return(AAC_MEM0_GETREG4(sc, AAC_RX_OQUE));
}
static int
@@ -2730,7 +2771,7 @@ aac_rkt_get_outb_queue(struct aac_softc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- return(AAC_GETREG4(sc, AAC_RKT_OQUE));
+ return(AAC_MEM0_GETREG4(sc, AAC_RKT_OQUE));
}
static void
@@ -2738,7 +2779,7 @@ aac_rx_set_outb_queue(struct aac_softc *
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RX_OQUE, index);
+ AAC_MEM0_SETREG4(sc, AAC_RX_OQUE, index);
}
static void
@@ -2746,7 +2787,7 @@ aac_rkt_set_outb_queue(struct aac_softc
{
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- AAC_SETREG4(sc, AAC_RKT_OQUE, index);
+ AAC_MEM0_SETREG4(sc, AAC_RKT_OQUE, index);
}
/*
Modified: user/alc/pagelock/sys/dev/aac/aac_debug.c
==============================================================================
--- user/alc/pagelock/sys/dev/aac/aac_debug.c Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/dev/aac/aac_debug.c Sat Feb 21 21:12:54 2009 (r188902)
@@ -134,17 +134,18 @@ aac_printstate0(void)
aac_print_queues(sc);
switch (sc->aac_hwif) {
case AAC_HWIF_I960RX:
+ case AAC_HWIF_NARK:
device_printf(sc->aac_dev, "IDBR 0x%08x IIMR 0x%08x "
- "IISR 0x%08x\n", AAC_GETREG4(sc, AAC_RX_IDBR),
- AAC_GETREG4(sc, AAC_RX_IIMR), AAC_GETREG4(sc, AAC_RX_IISR));
+ "IISR 0x%08x\n", AAC_MEM0_GETREG4(sc, AAC_RX_IDBR),
+ AAC_MEM0_GETREG4(sc, AAC_RX_IIMR), AAC_MEM0_GETREG4(sc, AAC_RX_IISR));
device_printf(sc->aac_dev, "ODBR 0x%08x OIMR 0x%08x "
- "OISR 0x%08x\n", AAC_GETREG4(sc, AAC_RX_ODBR),
- AAC_GETREG4(sc, AAC_RX_OIMR), AAC_GETREG4(sc, AAC_RX_OISR));
- AAC_SETREG4(sc, AAC_RX_OIMR, 0/*~(AAC_DB_COMMAND_READY |
+ "OISR 0x%08x\n", AAC_MEM0_GETREG4(sc, AAC_RX_ODBR),
+ AAC_MEM0_GETREG4(sc, AAC_RX_OIMR), AAC_MEM0_GETREG4(sc, AAC_RX_OISR));
+ AAC_MEM0_SETREG4(sc, AAC_RX_OIMR, 0/*~(AAC_DB_COMMAND_READY |
AAC_DB_RESPONSE_READY | AAC_DB_PRINTF)*/);
device_printf(sc->aac_dev, "ODBR 0x%08x OIMR 0x%08x "
- "OISR 0x%08x\n", AAC_GETREG4(sc, AAC_RX_ODBR),
- AAC_GETREG4(sc, AAC_RX_OIMR), AAC_GETREG4(sc, AAC_RX_OISR));
+ "OISR 0x%08x\n", AAC_MEM0_GETREG4(sc, AAC_RX_ODBR),
+ AAC_MEM0_GETREG4(sc, AAC_RX_OIMR), AAC_MEM0_GETREG4(sc, AAC_RX_OISR));
break;
case AAC_HWIF_STRONGARM:
/* XXX implement */
Modified: user/alc/pagelock/sys/dev/aac/aac_pci.c
==============================================================================
--- user/alc/pagelock/sys/dev/aac/aac_pci.c Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/dev/aac/aac_pci.c Sat Feb 21 21:12:54 2009 (r188902)
@@ -372,21 +372,32 @@ aac_pci_attach(device_t dev)
/*
* Allocate the PCI register window.
*/
- sc->aac_regs_rid = PCIR_BAR(0);
- if ((sc->aac_regs_resource = bus_alloc_resource_any(sc->aac_dev,
- SYS_RES_MEMORY,
- &sc->aac_regs_rid,
- RF_ACTIVE)) ==
- NULL) {
+ sc->aac_regs_rid0 = PCIR_BAR(0);
+ if ((sc->aac_regs_res0 = bus_alloc_resource_any(sc->aac_dev,
+ SYS_RES_MEMORY, &sc->aac_regs_rid0, RF_ACTIVE)) == NULL) {
device_printf(sc->aac_dev,
- "couldn't allocate register window\n");
+ "couldn't allocate register window 0\n");
goto out;
}
- sc->aac_btag = rman_get_bustag(sc->aac_regs_resource);
- sc->aac_bhandle = rman_get_bushandle(sc->aac_regs_resource);
+ sc->aac_btag0 = rman_get_bustag(sc->aac_regs_res0);
+ sc->aac_bhandle0 = rman_get_bushandle(sc->aac_regs_res0);
- /* assume failure is 'out of memory' */
- error = ENOMEM;
+ if (sc->aac_hwif == AAC_HWIF_NARK) {
+ sc->aac_regs_rid1 = PCIR_BAR(1);
+ if ((sc->aac_regs_res1 = bus_alloc_resource_any(sc->aac_dev,
+ SYS_RES_MEMORY, &sc->aac_regs_rid1, RF_ACTIVE)) == NULL) {
+ device_printf(sc->aac_dev,
+ "couldn't allocate register window 1\n");
+ goto out;
+ }
+ sc->aac_btag1 = rman_get_bustag(sc->aac_regs_res1);
+ sc->aac_bhandle1 = rman_get_bushandle(sc->aac_regs_res1);
+ } else {
+ sc->aac_regs_res1 = sc->aac_regs_res0;
+ sc->aac_regs_rid1 = sc->aac_regs_rid0;
+ sc->aac_btag1 = sc->aac_btag0;
+ sc->aac_bhandle1 = sc->aac_bhandle0;
+ }
/*
* Allocate the parent bus DMA tag appropriate for our PCI interface.
@@ -416,7 +427,8 @@ aac_pci_attach(device_t dev)
sc->aac_hwif = id->hwif;
switch(sc->aac_hwif) {
case AAC_HWIF_I960RX:
- fwprintf(sc, HBA_FLAGS_DBG_INIT_B, "set hardware up for i960Rx");
+ case AAC_HWIF_NARK:
+ fwprintf(sc, HBA_FLAGS_DBG_INIT_B, "set hardware up for i960Rx/NARK");
sc->aac_if = aac_rx_interface;
break;
case AAC_HWIF_STRONGARM:
Modified: user/alc/pagelock/sys/dev/aac/aacreg.h
==============================================================================
--- user/alc/pagelock/sys/dev/aac/aacreg.h Sat Feb 21 21:02:53 2009 (r188901)
+++ user/alc/pagelock/sys/dev/aac/aacreg.h Sat Feb 21 21:12:54 2009 (r188902)
@@ -1468,7 +1468,7 @@ enum {
#define AAC_FA_FWSTATUS 0x2c /* Mailbox 7 */
#define AAC_FA_INTSRC 0x900
-#define AAC_FA_HACK(sc) (void)AAC_GETREG4(sc, AAC_FA_INTSRC)
+#define AAC_FA_HACK(sc) (void)AAC_MEM0_GETREG4(sc, AAC_FA_INTSRC)
/*
* Register definitions for the Adaptec AAC-364 'Jalapeno I/II' adapters, based
@@ -1495,6 +1495,8 @@ enum {
* and other related adapters.
*/
+#define AAC_RX_OMR0 0x18 /* outbound message register 0 */
+#define AAC_RX_OMR1 0x1c /* outbound message register 1 */
#define AAC_RX_IDBR 0x20 /* inbound doorbell register */
#define AAC_RX_IISR 0x24 /* inbound interrupt status register */
#define AAC_RX_IIMR 0x28 /* inbound interrupt mask register */
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list