PERFORCE change 152815 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Nov 11 11:36:55 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=152815
Change 152815 by hselasky at hselasky_laptop001 on 2008/11/11 19:36:05
IFC @ 152813
Affected files ...
.. //depot/projects/usb/src/sys/amd64/include/pmc_mdep.h#5 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#10 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux32_proto.h#8 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux32_syscall.h#8 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysent.c#8 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/syscalls.master#8 integrate
.. //depot/projects/usb/src/sys/arm/arm/dump_machdep.c#5 integrate
.. //depot/projects/usb/src/sys/arm/arm/minidump_machdep.c#1 branch
.. //depot/projects/usb/src/sys/arm/arm/pmap.c#12 integrate
.. //depot/projects/usb/src/sys/arm/include/md_var.h#3 integrate
.. //depot/projects/usb/src/sys/arm/include/minidump.h#1 branch
.. //depot/projects/usb/src/sys/arm/include/pmap.h#8 integrate
.. //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c#3 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/types.h#2 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/uio.h#2 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#5 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_load.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/dev/dtrace/dtrace_unload.c#2 integrate
.. //depot/projects/usb/src/sys/cddl/dev/systrace/systrace.c#2 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#11 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_proto.h#11 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscall.h#11 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#11 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_sysent.c#11 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/syscalls.master#11 integrate
.. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#11 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_misc.c#15 integrate
.. //depot/projects/usb/src/sys/conf/NOTES#21 integrate
.. //depot/projects/usb/src/sys/conf/files.amd64#11 integrate
.. //depot/projects/usb/src/sys/conf/files.arm#8 integrate
.. //depot/projects/usb/src/sys/conf/files.i386#14 integrate
.. //depot/projects/usb/src/sys/conf/files.pc98#12 integrate
.. //depot/projects/usb/src/sys/dev/age/if_age.c#6 integrate
.. //depot/projects/usb/src/sys/dev/an/if_an.c#6 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#10 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_osdep.h#8 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.c#2 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#3 integrate
.. //depot/projects/usb/src/sys/dev/en/midway.c#6 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_amd.c#5 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_amd.h#2 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_intel.c#1 branch
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_logging.c#6 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#9 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_pentium.c#2 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_pentium.h#2 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_piv.c#6 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_piv.h#2 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_ppro.c#5 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_ppro.h#2 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_tsc.c#1 branch
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_tsc.h#1 branch
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_x86.c#6 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#11 integrate
.. //depot/projects/usb/src/sys/dev/ispfw/ispfw.c#4 integrate
.. //depot/projects/usb/src/sys/dev/snp/snp.c#8 integrate
.. //depot/projects/usb/src/sys/dev/syscons/sysmouse.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci_atmelarm.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_pci.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg_atmelarm.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2_atmelarm.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2_pci.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2_pci.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_bus.h#5 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_controller.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci_atmelarm.c#4 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci_pccard.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_busdma.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#23 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#30 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_handle_request.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#20 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#21 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_sw_transfer.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#31 integrate
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.h#9 integrate
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devid.h#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devtable.h#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uark2.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/ubsa2.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/ubser2.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uchcom2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/ucycom2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/ufoma2.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/ugensa2.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uipaq2.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/umct2.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/umodem2.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/umoscom2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uplcom2.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/usb2_serial.c#17 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uvisor2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/serial/uvscom2.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb2/storage/ata-usb2.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zyd2.c#21 integrate
.. //depot/projects/usb/src/sys/fs/procfs/procfs.c#5 integrate
.. //depot/projects/usb/src/sys/fs/procfs/procfs_map.c#5 integrate
.. //depot/projects/usb/src/sys/fs/unionfs/union_vfsops.c#8 integrate
.. //depot/projects/usb/src/sys/geom/part/g_part_gpt.c#9 integrate
.. //depot/projects/usb/src/sys/i386/include/pmc_mdep.h#5 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux_machdep.c#9 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux_proto.h#8 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux_syscall.h#8 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux_sysent.c#8 integrate
.. //depot/projects/usb/src/sys/i386/linux/syscalls.master#8 integrate
.. //depot/projects/usb/src/sys/kern/init_sysent.c#10 integrate
.. //depot/projects/usb/src/sys/kern/kern_descrip.c#14 integrate
.. //depot/projects/usb/src/sys/kern/kern_exec.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_mbuf.c#8 integrate
.. //depot/projects/usb/src/sys/kern/kern_proc.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_sig.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_thr.c#9 integrate
.. //depot/projects/usb/src/sys/kern/kern_thread.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_xxx.c#8 integrate
.. //depot/projects/usb/src/sys/kern/subr_firmware.c#7 integrate
.. //depot/projects/usb/src/sys/kern/subr_sleepqueue.c#11 integrate
.. //depot/projects/usb/src/sys/kern/sys_pipe.c#9 integrate
.. //depot/projects/usb/src/sys/kern/sys_process.c#9 integrate
.. //depot/projects/usb/src/sys/kern/syscalls.c#10 integrate
.. //depot/projects/usb/src/sys/kern/syscalls.master#10 integrate
.. //depot/projects/usb/src/sys/kern/systrace_args.c#9 integrate
.. //depot/projects/usb/src/sys/kern/tty.c#12 integrate
.. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#12 integrate
.. //depot/projects/usb/src/sys/modules/Makefile#22 integrate
.. //depot/projects/usb/src/sys/modules/hwpmc/Makefile#4 integrate
.. //depot/projects/usb/src/sys/modules/krpc/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/nfsserver/Makefile#3 integrate
.. //depot/projects/usb/src/sys/modules/snp/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/Makefile#4 integrate
.. //depot/projects/usb/src/sys/modules/usb2/bluetooth/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/bluetooth_fw/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/bluetooth_ng/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller/Makefile#8 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_at91dci/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_ehci/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_musb/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_ohci/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_uhci/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_uss820dci/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/core/Makefile#8 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet/Makefile#6 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_aue/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_axe/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_cdce/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_cue/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_dav/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_kue/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ethernet_rue/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/image/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/input/Makefile#6 integrate
.. //depot/projects/usb/src/sys/modules/usb2/input_hid/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/input_kbd/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/input_ms/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/misc/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/misc_dbp/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/misc_fm/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/ndis/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/quirk/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/scanner/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_ark/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_bsa/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_bser/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_chcom/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_cycom/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_foma/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_ftdi/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_gensa/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_ipaq/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_lpt/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_mct/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_modem/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_moscom/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_plcom/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_visor/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/serial_vscom/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/sound/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/storage/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/storage_ata/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/storage_fs/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/storage_mass/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/storage_rio/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/template/Makefile#5 integrate
.. //depot/projects/usb/src/sys/modules/usb2/wlan/Makefile#6 integrate
.. //depot/projects/usb/src/sys/modules/usb2/wlan_ral/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/wlan_rum/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/usb2/wlan_zyd/Makefile#2 integrate
.. //depot/projects/usb/src/sys/modules/zfs/Makefile#5 integrate
.. //depot/projects/usb/src/sys/net/if.c#12 integrate
.. //depot/projects/usb/src/sys/net/if_arcsubr.c#3 integrate
.. //depot/projects/usb/src/sys/net/if_fddisubr.c#6 integrate
.. //depot/projects/usb/src/sys/net/if_fwsubr.c#9 integrate
.. //depot/projects/usb/src/sys/net/if_gif.c#9 integrate
.. //depot/projects/usb/src/sys/net/if_iso88025subr.c#8 integrate
.. //depot/projects/usb/src/sys/net/if_spppsubr.c#7 integrate
.. //depot/projects/usb/src/sys/net/if_tun.c#8 integrate
.. //depot/projects/usb/src/sys/net/radix_mpath.c#3 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_tty.c#4 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_tty.h#3 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw2.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_input.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_subr.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_var.h#11 integrate
.. //depot/projects/usb/src/sys/nfsserver/nfs_fha.c#2 integrate
.. //depot/projects/usb/src/sys/nfsserver/nfs_srvkrpc.c#2 integrate
.. //depot/projects/usb/src/sys/nfsserver/nfs_srvsubs.c#10 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_arg.c#10 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_bsm_klib.c#11 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_worker.c#11 integrate
.. //depot/projects/usb/src/sys/sys/cfictl.h#2 integrate
.. //depot/projects/usb/src/sys/sys/pmc.h#4 integrate
.. //depot/projects/usb/src/sys/sys/priv.h#9 integrate
.. //depot/projects/usb/src/sys/sys/proc.h#13 integrate
.. //depot/projects/usb/src/sys/sys/syscall.h#10 integrate
.. //depot/projects/usb/src/sys/sys/syscall.mk#10 integrate
.. //depot/projects/usb/src/sys/sys/syscallsubr.h#7 integrate
.. //depot/projects/usb/src/sys/sys/sysent.h#9 integrate
.. //depot/projects/usb/src/sys/sys/sysproto.h#10 integrate
.. //depot/projects/usb/src/sys/sys/ttydefaults.h#4 integrate
.. //depot/projects/usb/src/sys/ufs/ufs/ufs_dirhash.c#5 integrate
.. //depot/projects/usb/src/sys/vm/vm_page.c#12 integrate
.. //depot/projects/usb/src/sys/xdr/xdr_mbuf.c#3 integrate
Differences ...
==== //depot/projects/usb/src/sys/amd64/include/pmc_mdep.h#5 (text+ko) ====
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.6 2008/09/15 06:47:52 jkoshy Exp $
+ * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.7 2008/11/09 17:37:54 jkoshy Exp $
*/
/* Machine dependent interfaces */
@@ -35,9 +35,35 @@
#ifndef _MACHINE_PMC_MDEP_H
#define _MACHINE_PMC_MDEP_H 1
+#ifdef _KERNEL
+struct pmc_mdep;
+#endif
+
#include <dev/hwpmc/hwpmc_amd.h>
#include <dev/hwpmc/hwpmc_piv.h>
+#include <dev/hwpmc/hwpmc_tsc.h>
+/*
+ * Intel processors implementing V2 and later of the Intel performance
+ * measurement architecture have PMCs of the following classes: TSC,
+ * IAF and IAP.
+ */
+#define PMC_MDEP_CLASS_INDEX_TSC 0
+#define PMC_MDEP_CLASS_INDEX_K8 1
+#define PMC_MDEP_CLASS_INDEX_P4 1
+#define PMC_MDEP_CLASS_INDEX_IAF 1
+#define PMC_MDEP_CLASS_INDEX_IAP 2
+
+/*
+ * On the amd64 platform we support the following PMCs.
+ *
+ * TSC The timestamp counter
+ * K8 AMD Athlon64 and Opteron PMCs in 64 bit mode.
+ * PIV Intel P4/HTT and P4/EMT64
+ * IAP Intel Core/Core2/Atom CPUs in 64 bits mode.
+ * IAF Intel fixed-function PMCs in Core2 and later CPUs.
+ */
+
union pmc_md_op_pmcallocate {
struct pmc_md_amd_op_pmcallocate pm_amd;
struct pmc_md_p4_op_pmcallocate pm_p4;
@@ -55,8 +81,6 @@
struct pmc_md_p4_pmc pm_p4;
};
-struct pmc;
-
#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->tf_rip)
#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_rbp)
#define PMC_TRAPFRAME_TO_USER_SP(TF) ((TF)->tf_rsp)
@@ -88,5 +112,10 @@
void start_exceptions(void), end_exceptions(void);
void pmc_x86_lapic_enable_pmc_interrupt(void);
-#endif
+struct pmc_mdep *pmc_amd_initialize(void);
+void pmc_amd_finalize(struct pmc_mdep *_md);
+struct pmc_mdep *pmc_intel_initialize(void);
+void pmc_intel_finalize(struct pmc_mdep *_md);
+
+#endif /* _KERNEL */
#endif /* _MACHINE_PMC_MDEP_H */
==== //depot/projects/usb/src/sys/amd64/linux32/linux32_machdep.c#10 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.49 2008/09/08 09:59:05 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.50 2008/11/11 14:55:59 ed Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -977,33 +977,20 @@
int
linux_pipe(struct thread *td, struct linux_pipe_args *args)
{
- int pip[2];
int error;
- register_t reg_rdx;
+ int fildes[2];
#ifdef DEBUG
if (ldebug(pipe))
printf(ARGS(pipe, "*"));
#endif
- reg_rdx = td->td_retval[1];
- error = pipe(td, 0);
- if (error) {
- td->td_retval[1] = reg_rdx;
+ error = kern_pipe(td, fildes);
+ if (error)
return (error);
- }
- pip[0] = td->td_retval[0];
- pip[1] = td->td_retval[1];
- error = copyout(pip, args->pipefds, 2 * sizeof(int));
- if (error) {
- td->td_retval[1] = reg_rdx;
- return (error);
- }
-
- td->td_retval[1] = reg_rdx;
- td->td_retval[0] = 0;
- return (0);
+ /* XXX: Close descriptors on error. */
+ return (copyout(fildes, args->pipefds, sizeof fildes));
}
int
==== //depot/projects/usb/src/sys/amd64/linux32/linux32_proto.h#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.37 2008/05/13 20:02:25 rdivacky Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008/05/13 20:01:26 rdivacky Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.38 2008/11/09 10:48:06 ed Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 184789 2008-11-09 10:45:13Z ed
*/
#ifndef _LINUX_SYSPROTO_H_
@@ -378,6 +378,10 @@
char dummy_l_[PADL_(int)]; int dummy; char dummy_r_[PADR_(int)];
char child_tidptr_l_[PADL_(void *)]; void * child_tidptr; char child_tidptr_r_[PADR_(void *)];
};
+struct linux_setdomainname_args {
+ char name_l_[PADL_(char *)]; char * name; char name_r_[PADR_(char *)];
+ char len_l_[PADL_(int)]; int len; char len_r_[PADR_(int)];
+};
struct linux_newuname_args {
char buf_l_[PADL_(struct l_new_utsname *)]; struct l_new_utsname * buf; char buf_r_[PADR_(struct l_new_utsname *)];
};
@@ -1077,6 +1081,7 @@
int linux_ipc(struct thread *, struct linux_ipc_args *);
int linux_sigreturn(struct thread *, struct linux_sigreturn_args *);
int linux_clone(struct thread *, struct linux_clone_args *);
+int linux_setdomainname(struct thread *, struct linux_setdomainname_args *);
int linux_newuname(struct thread *, struct linux_newuname_args *);
int linux_adjtimex(struct thread *, struct linux_adjtimex_args *);
int linux_mprotect(struct thread *, struct linux_mprotect_args *);
@@ -1339,6 +1344,7 @@
#define LINUX_SYS_AUE_linux_ipc AUE_NULL
#define LINUX_SYS_AUE_linux_sigreturn AUE_SIGRETURN
#define LINUX_SYS_AUE_linux_clone AUE_RFORK
+#define LINUX_SYS_AUE_linux_setdomainname AUE_SYSCTL
#define LINUX_SYS_AUE_linux_newuname AUE_NULL
#define LINUX_SYS_AUE_linux_adjtimex AUE_ADJTIME
#define LINUX_SYS_AUE_linux_mprotect AUE_MPROTECT
==== //depot/projects/usb/src/sys/amd64/linux32/linux32_syscall.h#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.37 2008/05/13 20:02:25 rdivacky Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008/05/13 20:01:26 rdivacky Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.38 2008/11/09 10:48:06 ed Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 184789 2008-11-09 10:45:13Z ed
*/
#define LINUX_SYS_exit 1
@@ -112,7 +112,7 @@
#define LINUX_SYS_fsync 118
#define LINUX_SYS_linux_sigreturn 119
#define LINUX_SYS_linux_clone 120
-#define LINUX_SYS_setdomainname 121
+#define LINUX_SYS_linux_setdomainname 121
#define LINUX_SYS_linux_newuname 122
#define LINUX_SYS_linux_adjtimex 124
#define LINUX_SYS_linux_mprotect 125
==== //depot/projects/usb/src/sys/amd64/linux32/linux32_sysent.c#8 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.37 2008/05/13 20:02:25 rdivacky Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008/05/13 20:01:26 rdivacky Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.38 2008/11/09 10:48:06 ed Exp $
+ * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 184789 2008-11-09 10:45:13Z ed
*/
#include "opt_compat.h"
@@ -140,7 +140,7 @@
{ AS(fsync_args), (sy_call_t *)fsync, AUE_FSYNC, NULL, 0, 0 }, /* 118 = fsync */
{ AS(linux_sigreturn_args), (sy_call_t *)linux_sigreturn, AUE_SIGRETURN, NULL, 0, 0 }, /* 119 = linux_sigreturn */
{ AS(linux_clone_args), (sy_call_t *)linux_clone, AUE_RFORK, NULL, 0, 0 }, /* 120 = linux_clone */
- { AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_SYSCTL, NULL, 0, 0 }, /* 121 = setdomainname */
+ { AS(linux_setdomainname_args), (sy_call_t *)linux_setdomainname, AUE_SYSCTL, NULL, 0, 0 }, /* 121 = linux_setdomainname */
{ AS(linux_newuname_args), (sy_call_t *)linux_newuname, AUE_NULL, NULL, 0, 0 }, /* 122 = linux_newuname */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 123 = modify_ldt */
{ 0, (sy_call_t *)linux_adjtimex, AUE_ADJTIME, NULL, 0, 0 }, /* 124 = linux_adjtimex */
==== //depot/projects/usb/src/sys/amd64/linux32/syscalls.master#8 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.34 2008/05/13 20:01:26 rdivacky Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.35 2008/11/09 10:45:13 ed Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -216,7 +216,7 @@
; linux uses some strange calling convention here so we have to use the dummy arg
120 AUE_RFORK STD { int linux_clone(l_int flags, void *stack, \
void *parent_tidptr, int dummy, void * child_tidptr); }
-121 AUE_SYSCTL NOPROTO { int setdomainname(char *name, \
+121 AUE_SYSCTL STD { int linux_setdomainname(char *name, \
int len); }
122 AUE_NULL STD { int linux_newuname( \
struct l_new_utsname *buf); }
==== //depot/projects/usb/src/sys/arm/arm/dump_machdep.c#5 (text+ko) ====
@@ -25,12 +25,13 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.5 2008/10/01 22:08:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.6 2008/11/06 16:20:27 raj Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/cons.h>
+#include <sys/sysctl.h>
#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/kerneldump.h>
@@ -44,6 +45,11 @@
CTASSERT(sizeof(struct kerneldumpheader) == 512);
+int do_minidump = 1;
+TUNABLE_INT("debug.minidump", &do_minidump);
+SYSCTL_INT(_debug, OID_AUTO, minidump, CTLFLAG_RW, &do_minidump, 0,
+ "Enable mini crash dumps");
+
/*
* Don't touch the first SIZEOF_METADATA bytes on the dump device. This
* is to protect us from metadata and to protect metadata from us.
@@ -155,11 +161,10 @@
vm_offset_t va;
uint32_t pgs;
size_t counter, sz, chunk;
- int c, error, twiddle;
+ int c, error;
error = 0; /* catch case in which chunk size is 0 */
- counter = 0; /* Update twiddle every 16MB */
- twiddle = 0;
+ counter = 0;
va = 0;
pgs = mdp->md_size / PAGE_SIZE;
pa = mdp->md_start;
@@ -264,7 +269,12 @@
off_t hdrgap;
size_t hdrsz;
int error;
-
+
+ if (do_minidump) {
+ minidumpsys(di);
+ return;
+ }
+
bzero(&ehdr, sizeof(ehdr));
ehdr.e_ident[EI_MAG0] = ELFMAG0;
ehdr.e_ident[EI_MAG1] = ELFMAG1;
==== //depot/projects/usb/src/sys/arm/arm/pmap.c#12 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.104 2008/10/13 18:59:59 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.106 2008/11/06 16:28:28 raj Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -270,6 +270,11 @@
struct msgbuf *msgbufp = 0;
+/*
+ * Crashdump maps.
+ */
+static caddr_t crashdumpmap;
+
extern void bcopy_page(vm_offset_t, vm_offset_t);
extern void bzero_page(vm_offset_t);
@@ -1209,7 +1214,7 @@
CTR4(KTR_PMAP, "pmap_l2cache_wbinv_range: pmap %p is_kernel %d "
"va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest);
if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep))
- cpu_l2cache_wb_range(va, rest);
+ cpu_l2cache_wb_range(va, rest);
len -= rest;
va += rest;
@@ -1241,7 +1246,7 @@
CTR4(KTR_PMAP, "pmap_l2cache_wb_range: pmap %p is_kernel %d "
"va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest);
if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep))
- cpu_l2cache_wb_range(va, rest);
+ cpu_l2cache_wb_range(va, rest);
len -= rest;
va += rest;
@@ -1276,6 +1281,7 @@
pmap_dcache_wb_range(pmap_t pm, vm_offset_t va, vm_size_t len, boolean_t do_inv,
boolean_t rd_only)
{
+
CTR4(KTR_PMAP, "pmap_dcache_wb_range: pmap %p is_kernel %d va 0x%08x "
"len 0x%x ", pm, pm == pmap_kernel(), va, len);
CTR2(KTR_PMAP, " do_inv %d rd_only %d", do_inv, rd_only);
@@ -1290,8 +1296,7 @@
cpu_dcache_wbinv_range(va, len);
pmap_l2cache_wbinv_range(pm, va, len);
}
- } else
- if (!rd_only) {
+ } else if (!rd_only) {
cpu_dcache_wb_range(va, len);
pmap_l2cache_wb_range(pm, va, len);
}
@@ -2455,6 +2460,8 @@
pmap_alloc_specials(&virtual_avail,
1, (vm_offset_t*)&_tmppt, NULL);
+ pmap_alloc_specials(&virtual_avail,
+ MAXDUMPPGS, (vm_offset_t *)&crashdumpmap, NULL);
SLIST_INIT(&l1_list);
TAILQ_INIT(&l1_lru_list);
mtx_init(&l1_lru_lock, "l1 list lock", NULL, MTX_DEF);
@@ -2793,6 +2800,20 @@
}
/*
+ * Make a temporary mapping for a physical address. This is only intended
+ * to be used for panic dumps.
+ */
+void *
+pmap_kenter_temp(vm_paddr_t pa, int i)
+{
+ vm_offset_t va;
+
+ va = (vm_offset_t)crashdumpmap + (i * PAGE_SIZE);
+ pmap_kenter(va, pa);
+ return ((void *)crashdumpmap);
+}
+
+/*
* add a wired page to the kva
* note that in order for the mapping to take effect -- you
* should do a invltlb after doing the pmap_kenter...
@@ -3958,7 +3979,7 @@
* Hook in the page, zero it, invalidate the TLB as needed.
*
* Note the temporary zero-page mapping must be a non-cached page in
- * ordert to work without corruption when write-allocate is enabled.
+ * order to work without corruption when write-allocate is enabled.
*/
*cdst_pte = L2_S_PROTO | phys | L2_S_PROT(PTE_KERNEL, VM_PROT_WRITE);
cpu_tlb_flushD_SE(cdstp);
==== //depot/projects/usb/src/sys/arm/include/md_var.h#3 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* from: FreeBSD: src/sys/i386/include/md_var.h,v 1.40 2001/07/12
- * $FreeBSD: src/sys/arm/include/md_var.h,v 1.4 2007/01/17 00:53:05 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/md_var.h,v 1.5 2008/11/06 16:20:27 raj Exp $
*/
#ifndef _MACHINE_MD_VAR_H_
@@ -35,6 +35,8 @@
extern char sigcode[];
extern int szsigcode;
+extern uint32_t *vm_page_dump;
+extern int vm_page_dump_size;
extern int (*_arm_memcpy)(void *, void *, int, int);
extern int (*_arm_bzero)(void *, int, int);
@@ -46,7 +48,11 @@
#define SRC_IS_USER 0x2
#define IS_PHYSICAL 0x4
+struct dumperinfo;
extern int busdma_swi_pending;
void busdma_swi(void);
+void dump_add_page(vm_paddr_t);
+void dump_drop_page(vm_paddr_t);
+void minidumpsys(struct dumperinfo *);
#endif /* !_MACHINE_MD_VAR_H_ */
==== //depot/projects/usb/src/sys/arm/include/pmap.h#8 (text+ko) ====
@@ -44,7 +44,7 @@
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
* from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30
*
- * $FreeBSD: src/sys/arm/include/pmap.h,v 1.29 2008/03/06 21:59:47 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/pmap.h,v 1.30 2008/11/06 16:20:27 raj Exp $
*/
#ifndef _MACHINE_PMAP_H_
@@ -206,6 +206,7 @@
void pmap_bootstrap(vm_offset_t, vm_offset_t, struct pv_addr *);
void pmap_kenter(vm_offset_t va, vm_paddr_t pa);
void pmap_kenter_nocache(vm_offset_t va, vm_paddr_t pa);
+void *pmap_kenter_temp(vm_paddr_t pa, int i);
void pmap_kenter_user(vm_offset_t va, vm_paddr_t pa);
void pmap_kremove(vm_offset_t);
void *pmap_mapdev(vm_offset_t, vm_size_t);
==== //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#2 (text+ko) ====
@@ -39,7 +39,7 @@
#include "opt_ddb.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.1 2008/10/13 20:07:13 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.2 2008/11/06 16:25:12 raj Exp $");
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
@@ -93,9 +93,6 @@
#define debugf(fmt, args...)
#endif
-#define KERNEL_PT_SYS 0 /* Page table for mapping proc0 zero page */
-#define KERNEL_PT_KERN 1
-
/*
* This is the number of L2 page tables required for covering max
* (hypothetical) memsize of 4GB and all kernel mappings (vectors, msgbuf,
@@ -366,7 +363,7 @@
struct bi_mem_region *mr;
void *kmdp;
u_int l1pagetable;
- int i = 0;
+ int i = 0, j = 0;
kmdp = NULL;
lastaddr = 0;
@@ -465,13 +462,14 @@
if (!(i % (PAGE_SIZE / L2_TABLE_SIZE_REAL))) {
valloc_pages(kernel_pt_table[i],
L2_TABLE_SIZE / PAGE_SIZE);
+ j = i;
} else {
- kernel_pt_table[i].pv_va = freemempos -
- (i % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) *
- L2_TABLE_SIZE_REAL;
+ kernel_pt_table[i].pv_va = kernel_pt_table[j].pv_va +
+ L2_TABLE_SIZE_REAL * (i - j);
kernel_pt_table[i].pv_pa =
kernel_pt_table[i].pv_va - KERNVIRTADDR +
KERNPHYSADDR;
+
}
}
/*
@@ -506,7 +504,7 @@
l2_start = lastaddr & ~(L1_S_OFFSET);
for (i = 0 ; i < l2size - 1; i++)
pmap_link_l2pt(l1pagetable, l2_start + i * L1_S_SIZE,
- &kernel_pt_table[KERNEL_PT_KERN + i]);
+ &kernel_pt_table[i]);
pmap_curmaxkvaddr = l2_start + (l2size - 1) * L1_S_SIZE;
@@ -532,7 +530,7 @@
/* Link and map the vector page */
pmap_link_l2pt(l1pagetable, ARM_VECTORS_HIGH,
- &kernel_pt_table[KERNEL_PT_SYS]);
+ &kernel_pt_table[l2size - 1]);
pmap_map_entry(l1pagetable, ARM_VECTORS_HIGH, systempage.pv_pa,
VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
@@ -603,8 +601,8 @@
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
- dump_avail[0] = KERNPHYSADDR;
- dump_avail[1] = KERNPHYSADDR + memsize;
+ dump_avail[0] = 0;
+ dump_avail[1] = memsize;
dump_avail[2] = 0;
dump_avail[3] = 0;
==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c,v 1.5 2008/05/24 19:30:38 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c,v 1.7 2008/11/05 20:32:13 rodrigc Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -93,6 +93,10 @@
zfs_kmem_free(void *buf, size_t size __unused)
{
#ifdef KMEM_DEBUG
+ if (buf == NULL) {
+ printf("%s: attempt to free NULL\n",__func__);
+ return;
+ }
struct kmem_item *i;
buf = (u_char *)buf - sizeof(struct kmem_item);
@@ -236,7 +240,8 @@
}
#ifdef KMEM_DEBUG
-static void
+void kmem_show(void *);
+void
kmem_show(void *dummy __unused)
{
struct kmem_item *i;
@@ -248,12 +253,10 @@
printf("KMEM_DEBUG: Leaked elements:\n\n");
LIST_FOREACH(i, &kmem_items, next) {
printf("address=%p\n", i);
- stack_print(&i->stack);
- printf("\n");
}
}
mtx_unlock(&kmem_items_mtx);
}
-SYSUNINIT(sol_kmem, SI_SUB_DRIVERS, SI_ORDER_FIRST, kmem_show, NULL);
+SYSUNINIT(sol_kmem, SI_SUB_CPU, SI_ORDER_FIRST, kmem_show, NULL);
#endif /* KMEM_DEBUG */
==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/types.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/cddl/compat/opensolaris/sys/types.h,v 1.4 2008/03/28 22:16:06 jb Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/types.h,v 1.5 2008/11/05 19:39:11 rodrigc Exp $
*/
#ifndef _OPENSOLARIS_SYS_TYPES_H_
@@ -64,12 +64,13 @@
typedef int64_t rlim64_t;
#else
-
+#ifdef NEED_SOLARIS_BOOLEAN
#if defined(__XOPEN_OR_POSIX)
typedef enum { _B_FALSE, _B_TRUE } boolean_t;
#else
typedef enum { B_FALSE, B_TRUE } boolean_t;
#endif /* defined(__XOPEN_OR_POSIX) */
+#endif
typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/uio.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/cddl/compat/opensolaris/sys/uio.h,v 1.2 2008/03/28 22:16:06 jb Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/uio.h,v 1.3 2008/11/05 19:39:11 rodrigc Exp $
*/
#ifndef _OPENSOLARIS_SYS_UIO_H_
@@ -51,6 +51,7 @@
#define uio_loffset uio_offset
+#ifdef BUILDING_ZFS
static __inline int
zfs_uiomove(void *cp, size_t n, enum uio_rw dir, uio_t *uio)
{
@@ -59,5 +60,6 @@
return (uiomove(cp, (int)n, uio));
}
#define uiomove(cp, n, dir, uio) zfs_uiomove((cp), (n), (dir), (uio))
+#endif
#endif /* !_OPENSOLARIS_SYS_UIO_H_ */
==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#5 (text+ko) ====
@@ -18,7 +18,7 @@
*
* CDDL HEADER END
*
- * $FreeBSD: src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c,v 1.8 2008/09/27 17:52:48 jb Exp $
+ * $FreeBSD: src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c,v 1.9 2008/11/05 19:39:11 rodrigc Exp $
*/
/*
@@ -3007,6 +3007,9 @@
case DIF_VAR_EXECARGS: {
struct pargs *p_args = curthread->td_proc->p_args;
+ if (p_args == NULL)
+ return(0);
+
return (dtrace_dif_varstrz(
(uintptr_t) p_args->ar_args, p_args->ar_length, state, mstate));
}
@@ -10598,7 +10601,6 @@
/*
* If there is already a buffer allocated for this CPU, it
* is only possible that this is a DR event. In this case,
- * the buffer size must match our specified size.
*/
if (buf->dtb_tomax != NULL) {
ASSERT(buf->dtb_size == size);
@@ -12815,11 +12817,7 @@
state = ddi_get_soft_state(dtrace_softstate, minor);
#else
if (dev != NULL) {
- /*
- * Disable this until we have the ability to set user
- * credentials for DTrace.
- * cr = dev->si_cred;
- */
+ cr = dev->si_cred;
m = dev2unit(dev);
}
@@ -15241,6 +15239,15 @@
}
#endif
+#if !defined(sun)
+#if __FreeBSD_version >= 800039
+static void
+dtrace_dtr(void *data __unused)
+{
+}
+#endif
+#endif
+
/*ARGSUSED*/
static int
#if defined(sun)
@@ -15266,6 +15273,7 @@
#else
cred_t *cred_p = NULL;
+#if __FreeBSD_version < 800039
/*
* The first minor device is the one that is cloned so there is
* nothing more to do here.
@@ -15281,6 +15289,7 @@
*/
if (dev->si_drv1 != NULL)
return (EBUSY);
+#endif
cred_p = dev->si_cred;
#endif
@@ -15292,9 +15301,11 @@
dtrace_cred2priv(cred_p, &priv, &uid, &zoneid);
if (priv == DTRACE_PRIV_NONE) {
#if !defined(sun)
+#if __FreeBSD_version < 800039
/* Destroy the cloned device. */
destroy_dev(dev);
#endif
+#endif
return (EACCES);
}
@@ -15326,7 +15337,11 @@
state = dtrace_state_create(devp, cred_p);
#else
state = dtrace_state_create(dev);
+#if __FreeBSD_version < 800039
dev->si_drv1 = state;
+#else
+ devfs_set_cdevpriv(state, dtrace_dtr);
+#endif
#endif
mutex_exit(&cpu_lock);
@@ -15340,9 +15355,11 @@
#endif
mutex_exit(&dtrace_lock);
#if !defined(sun)
+#if __FreeBSD_version < 800039
/* Destroy the cloned device. */
destroy_dev(dev);
#endif
+#endif
return (EAGAIN);
}
@@ -15368,11 +15385,16 @@
state = ddi_get_soft_state(dtrace_softstate, minor);
#else
+#if __FreeBSD_version < 800039
dtrace_state_t *state = dev->si_drv1;
/* Check if this is not a cloned device. */
if (dev2unit(dev) == 0)
return (0);
+#else
+ dtrace_state_t *state;
+ devfs_get_cdevpriv((void **) &state);
+#endif
#endif
@@ -15392,7 +15414,11 @@
#if !defined(sun)
kmem_free(state, 0);
+#if __FreeBSD_version < 800039
dev->si_drv1 = NULL;
+#else
+ devfs_clear_cdevpriv();
+#endif
#endif
}
@@ -15407,8 +15433,10 @@
mutex_exit(&dtrace_lock);
mutex_exit(&cpu_lock);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list