--- a
+++ b/libperf_events/operf_kernel.h
@@ -0,0 +1,51 @@
+/*
+ * @file pe_profiling/operf_kernel.h
+ * This file is based on daemon/opd_kernel and is used for
+ * dealing with the kernel and kernel module samples.
+ *
+ * @remark Copyright 2011 OProfile authors
+ * @remark Read the file COPYING
+ *
+ * Created on: Dec 12, 2011
+ * @author Maynard Johnson
+ * (C) Copyright IBM Corp. 2011
+ */
+
+#ifndef OPERF_KERNEL_H_
+#define OPERF_KERNEL_H_
+
+#include "op_types.h"
+#include "op_list.h"
+
+
+/** create the kernel image */
+void operf_create_vmlinux(char const * name, char const * arg);
+
+/** Describes a kernel module or vmlinux itself */
+struct operf_kernel_image {
+	char * name;
+	vma_t start;
+	vma_t end;
+	struct list_head list;
+};
+
+/** Find a kernel_image based upon the given pc address. */
+struct operf_kernel_image *
+operf_find_kernel_image(vma_t pc);
+
+/** Return the name field of the stored vmlinux_image. */
+const char * operf_get_vmlinux_name(void);
+
+/** Create a kernel image for a kernel module and place it on the
+ * module_list.
+ */
+void operf_create_module(char const * name, vma_t start, vma_t end);
+
+/** Free resources in modules list.
+ *
+ */
+void operf_free_modules_list(void);
+
+
+
+#endif /* OPERF_KERNEL_H_ */