[patch 1/1] Adds flavor field to __mark_marker

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch demonstrates an extension field to the
low-level marker functionality, and updates macros to accept
this additional data.


Index: linux-2.6.22-rc6-mm1/include/linux/marker.h
===================================================================
--- linux-2.6.22-rc6-mm1.orig/include/linux/marker.h	2007-08-01 15:39:36.000000000 -0500
+++ linux-2.6.22-rc6-mm1/include/linux/marker.h	2007-08-01 15:39:37.000000000 -0500
@@ -31,10 +31,14 @@
 	const char *args;	/* List of arguments litteraly transformed
 				 * into a string: "arg1, arg2, arg3".
 				 */
+	const int flavor;	/* site-defined marker flavor  */
 	immediate_char_t state;	/* Immediate value state. */
 	marker_probe_func *call;/* Probe handler function pointer */
 	void *pdata;		/* Private probe data */
-} __attribute__((aligned(8)));
+} __attribute__((aligned(32)));
+
+/* Default marker flavor */
+#define MARKER_DEFAULT 0
 
 #ifdef CONFIG_MARKERS
 
@@ -46,7 +50,7 @@
  * not add unwanted padding between the beginning of the section and the
  * structure. Force alignment to the same alignment as the section start.
  */
-#define __trace_mark(generic, name, format, args...)			\
+#define ___trace_mark(generic, flavor, name, format, args...)		\
 	do {								\
 		static const char __mstrtab_name_##name[]		\
 		__attribute__((section("__markers_strings")))		\
@@ -60,7 +64,7 @@
 		static struct __mark_marker __mark_##name		\
 		__attribute__((section("__markers"))) =			\
 		{ __mstrtab_name_##name, __mstrtab_format_##name,	\
-		__mstrtab_args_##name, { 0 },				\
+		__mstrtab_args_##name, flavor, { 0 },			\
 		__mark_empty_function, NULL };				\
 		asm volatile ( "" : : "i" (&__mark_##name));		\
 		__mark_check_format(format, ## args);			\
@@ -81,6 +85,9 @@
 		}							\
 	} while (0)
 
+#define __trace_mark(generic, name, format, args...) \
+		___trace_mark(generic, MARKER_DEFAULT, name, format, ## args)
+
 extern void module_marker_update(struct module *mod);
 #else /* !CONFIG_MARKERS */
 #define __trace_mark(generic, name, format, args...) \
Index: linux-2.6.22-rc6-mm1/include/asm-generic/vmlinux.lds.h
===================================================================
--- linux-2.6.22-rc6-mm1.orig/include/asm-generic/vmlinux.lds.h	2007-08-01 15:39:36.000000000 -0500
+++ linux-2.6.22-rc6-mm1/include/asm-generic/vmlinux.lds.h	2007-08-01 15:40:06.000000000 -0500
@@ -13,7 +13,7 @@
 #define DATA_DATA							\
 	*(.data)							\
 	*(.data.init.refok)						\
-	. = ALIGN(8);							\
+	. = ALIGN(32);							\
 	VMLINUX_SYMBOL(__start___markers) = .;				\
 	*(__markers)							\
 	VMLINUX_SYMBOL(__stop___markers) = .;

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux