svn commit: r280737 - in head/sys: arm/include dev/hwpmc

Bjoern A. Zeeb bz at FreeBSD.org
Fri Mar 27 08:47:18 UTC 2015


Author: bz
Date: Fri Mar 27 08:47:16 2015
New Revision: 280737
URL: https://svnweb.freebsd.org/changeset/base/280737

Log:
  Rather than defining our own magic checks here use INKERNEL() for
  the PMC_IN_KERNEL() macro definition.
  
  Add missing macros to extract the return address (LR) from the trapframe.
  
  Discussed with:	andrew
  Obtained from:	Cambridge/L41
  Sponsored by:	DARPA, AFRL
  MFC after:	2 weeks

Modified:
  head/sys/arm/include/pmc_mdep.h
  head/sys/dev/hwpmc/hwpmc_arm.c

Modified: head/sys/arm/include/pmc_mdep.h
==============================================================================
--- head/sys/arm/include/pmc_mdep.h	Fri Mar 27 08:47:02 2015	(r280736)
+++ head/sys/arm/include/pmc_mdep.h	Fri Mar 27 08:47:16 2015	(r280737)
@@ -56,8 +56,7 @@ union pmc_md_pmc {
 
 #define	PMC_IN_KERNEL_STACK(S,START,END)		\
 	((S) >= (START) && (S) < (END))
-#define	PMC_IN_KERNEL(va) (((va) >= USRSTACK) &&	\
-	((va) < VM_MAX_KERNEL_ADDRESS))
+#define	PMC_IN_KERNEL(va)	INKERNEL((va))
 
 #define	PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS)
 
@@ -65,6 +64,8 @@ union pmc_md_pmc {
 #define	PMC_TRAPFRAME_TO_FP(TF)		((TF)->tf_r11)
 #define	PMC_TRAPFRAME_TO_SVC_SP(TF)	((TF)->tf_svc_sp)
 #define	PMC_TRAPFRAME_TO_USR_SP(TF)	((TF)->tf_usr_sp)
+#define	PMC_TRAPFRAME_TO_SVC_LR(TF)	((TF)->tf_svc_lr)
+#define	PMC_TRAPFRAME_TO_USR_LR(TF)	((TF)->tf_usr_lr)
 
 /* Build a fake kernel trapframe from current instruction pointer. */
 #define PMC_FAKE_TRAPFRAME(TF)						\

Modified: head/sys/dev/hwpmc/hwpmc_arm.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_arm.c	Fri Mar 27 08:47:02 2015	(r280736)
+++ head/sys/dev/hwpmc/hwpmc_arm.c	Fri Mar 27 08:47:16 2015	(r280737)
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/cpu.h>
 #include <machine/md_var.h>
 #include <machine/pmc_mdep.h>
+#include <machine/stack.h>
 
 #include <vm/vm.h>
 #include <vm/vm_param.h>


More information about the svn-src-head mailing list