@@ -19,7 +19,7 @@
#include <xen/string.h>
#include <xen/delay.h>
#include <xen/xenoprof.h>
-#include <public/xen.h>
+#include <public/xenoprof.h>
#include <asm/msr.h>
#include <asm/apic.h>
#include <asm/regs.h>
@@ -23,6 +23,32 @@
#undef virt_to_mfn
#define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
+#define XENOPROF_DOMAIN_IGNORED 0
+#define XENOPROF_DOMAIN_ACTIVE 1
+#define XENOPROF_DOMAIN_PASSIVE 2
+
+#define XENOPROF_IDLE 0
+#define XENOPROF_INITIALIZED 1
+#define XENOPROF_COUNTERS_RESERVED 2
+#define XENOPROF_READY 3
+#define XENOPROF_PROFILING 4
+
+#ifndef CONFIG_COMPAT
+#define XENOPROF_COMPAT(x) false
+typedef struct xenoprof_buf xenoprof_buf_t;
+#define xenoprof_buf(d, b, field) ACCESS_ONCE((b)->field)
+#else
+#include <compat/xenoprof.h>
+#define XENOPROF_COMPAT(x) ((x)->is_compat)
+typedef union {
+ struct xenoprof_buf native;
+ struct compat_oprof_buf compat;
+} xenoprof_buf_t;
+#define xenoprof_buf(d, b, field) ACCESS_ONCE(*(!(d)->xenoprof->is_compat \
+ ? &(b)->native.field \
+ : &(b)->compat.field))
+#endif
+
/* Limit amount of pages used for shared buffer (per domain) */
#define MAX_OPROF_SHARED_PAGES 32
@@ -29,6 +29,7 @@
#include <public/platform.h>
#include <public/version.h>
#include <public/hvm/params.h>
+#include <public/xenoprof.h>
#include <public/xsm/flask_op.h>
#include <avc.h>
@@ -26,6 +26,8 @@ struct vcpu;
#ifdef CONFIG_XENOPROF
+#include <public/xen.h>
+
int nmi_reserve_counters(void);
int nmi_setup_events(void);
int nmi_enable_virq(void);
@@ -11,7 +11,6 @@
#define __XEN_XENOPROF_H__
#include <xen/inttypes.h>
-#include <public/xenoprof.h>
#include <asm/xenoprof.h>
#define PMU_OWNER_NONE 0
@@ -20,37 +19,9 @@
#ifdef CONFIG_XENOPROF
-#define XENOPROF_DOMAIN_IGNORED 0
-#define XENOPROF_DOMAIN_ACTIVE 1
-#define XENOPROF_DOMAIN_PASSIVE 2
-
-#define XENOPROF_IDLE 0
-#define XENOPROF_INITIALIZED 1
-#define XENOPROF_COUNTERS_RESERVED 2
-#define XENOPROF_READY 3
-#define XENOPROF_PROFILING 4
-
-#ifndef CONFIG_COMPAT
-typedef struct xenoprof_buf xenoprof_buf_t;
-#else
-#include <compat/xenoprof.h>
-typedef union {
- struct xenoprof_buf native;
- struct compat_oprof_buf compat;
-} xenoprof_buf_t;
-#endif
-
-#ifndef CONFIG_COMPAT
-#define XENOPROF_COMPAT(x) 0
-#define xenoprof_buf(d, b, field) ACCESS_ONCE((b)->field)
-#else
-#define XENOPROF_COMPAT(x) ((x)->is_compat)
-#define xenoprof_buf(d, b, field) ACCESS_ONCE(*(!(d)->xenoprof->is_compat \
- ? &(b)->native.field \
- : &(b)->compat.field))
-#endif
-
struct domain;
+struct vcpu;
+struct cpu_user_regs;
int acquire_pmu_ownership(int pmu_ownership);
void release_pmu_ownership(int pmu_ownership);
Quite a few of the items are used by xenoprof.c only, so move them there to limit their visibility as well as the amount of re-building needed in case of changes. Also drop the inclusion of the public header there. Signed-off-by: Jan Beulich <jbeulich@suse.com>