--- /dev/null
+Index: ltt-control-0.6-28042006/liblttctl/liblttctl.c
+===================================================================
+--- ltt-control-0.6-28042006.orig/liblttctl/liblttctl.c 2006-03-11 17:30:32.000000000 +0000
++++ ltt-control-0.6-28042006/liblttctl/liblttctl.c 2006-05-12 11:21:13.000000000 +0100
+@@ -298,7 +298,7 @@
+
+
+ int lttctl_create_trace(const struct lttctl_handle *h,
+- char *name, enum trace_mode mode, unsigned subbuf_size, unsigned n_subbufs)
++ char *name, enum trace_mode mode, enum ltt_trace_type type, unsigned subbuf_size, unsigned n_subbufs)
+ {
+ int err;
+
+@@ -324,6 +324,7 @@
+ req.msg.args.new_trace.mode = mode;
+ req.msg.args.new_trace.subbuf_size = subbuf_size;
+ req.msg.args.new_trace.n_subbufs = n_subbufs;
++ req.msg.args.new_trace.type = type;
+
+ err = lttctl_netlink_sendto(h, (void *)&req, req.nlh.nlmsg_len);
+ if(err < 0) goto senderr;
+Index: ltt-control-0.6-28042006/liblttctl/lttctl.h
+===================================================================
+--- ltt-control-0.6-28042006.orig/liblttctl/lttctl.h 2006-03-11 17:30:32.000000000 +0000
++++ ltt-control-0.6-28042006/liblttctl/lttctl.h 2006-05-12 11:20:46.000000000 +0100
+@@ -45,6 +45,12 @@
+ LTT_TRACE_FLIGHT
+ };
+
++enum ltt_trace_type {
++ LTT_TYPE_RELAYFS,
++ LTT_TYPE_STI,
++ LTT_TYPE_STIRELAYFS
++};
++
+ typedef struct lttctl_peer_msg {
+ char trace_name[NAME_MAX];
+ enum trace_op op;
+@@ -53,6 +59,7 @@
+ enum trace_mode mode;
+ unsigned subbuf_size;
+ unsigned n_subbufs;
++ enum ltt_trace_type type;
+ } new_trace;
+ } args;
+ } lttctl_peer_msg_t;
+@@ -76,7 +83,7 @@
+
+
+ int lttctl_create_trace(const struct lttctl_handle *h,
+- char *name, enum trace_mode mode, unsigned subbuf_size, unsigned n_subbufs);
++ char *name, enum trace_mode mode, enum ltt_trace_type type, unsigned subbuf_size, unsigned n_subbufs);
+
+ int lttctl_destroy_trace(const struct lttctl_handle *handle, char *name);
+
+Index: ltt-control-0.6-28042006/lttctl/lttctl.c
+===================================================================
+--- ltt-control-0.6-28042006.orig/lttctl/lttctl.c 2006-03-11 17:30:27.000000000 +0000
++++ ltt-control-0.6-28042006/lttctl/lttctl.c 2006-05-12 11:19:53.000000000 +0100
+@@ -40,11 +40,13 @@
+ };
+
+ static char *trace_name = NULL;
++static char *trace_type = NULL;
+ static char *mode_name = NULL;
+ static unsigned subbuf_size = 0;
+ static unsigned n_subbufs = 0;
+ static unsigned append_trace = 0;
+ static enum trace_mode mode = LTT_TRACE_NORMAL;
++static enum ltt_trace_type type = LTT_TYPE_RELAYFS;
+ static enum trace_ctl_op op = CTL_OP_NONE;
+ static char *channel_root = NULL;
+ static char *trace_root = NULL;
+@@ -81,6 +83,7 @@
+ printf(" (optionnaly, you can set LTT_DAEMON\n");
+ printf(" and the LTT_FACILITIES env. vars.)\n");
+ printf("-t Trace root path. (ex. /root/traces/example_trace)\n");
++ printf("-T Type of trace (ex. relayfs, sti, stirelayfs)\n");
+ printf("-l LTT channels root path. (ex. /mnt/relayfs/ltt)\n");
+ printf("-z Size of the subbuffers (will be rounded to next page size)\n");
+ printf("-x Number of subbuffers\n");
+@@ -217,6 +220,27 @@
+ argn++;
+ }
+ break;
++ case 'T':
++ if(argn+1 < argc) {
++ trace_type = argv[argn+1];
++ argn++;
++ if(strcmp(trace_type, "relayfs") == 0)
++ type = LTT_TYPE_RELAYFS;
++ else if(strcmp(trace_type, "sti") == 0)
++ type = LTT_TYPE_STI;
++ else if(strcmp(trace_type, "stirelayfs") == 0)
++ type = LTT_TYPE_STIRELAYFS;
++ else {
++ printf("Invalid trace type '%s'.\n", argv[argn]);
++ printf("\n");
++ ret = EINVAL;
++ }
++ } else {
++ printf("Specify a trace type after -T.\n");
++ printf("\n");
++ ret = EINVAL;
++ }
++ break;
+ default:
+ printf("Invalid argument '%s'.\n", argv[argn]);
+ printf("\n");
+@@ -390,7 +414,7 @@
+ strcat(channel_path, trace_name);
+
+
+- ret = lttctl_create_trace(handle, trace_name, mode, subbuf_size, n_subbufs);
++ ret = lttctl_create_trace(handle, trace_name, mode, type, subbuf_size, n_subbufs);
+ if(ret != 0) goto create_error;
+
+ act.sa_handler = sigchld_handler;
+@@ -466,13 +490,13 @@
+
+ switch(op) {
+ case CTL_OP_CREATE_START:
+- ret = lttctl_create_trace(handle, trace_name, mode, subbuf_size,
++ ret = lttctl_create_trace(handle, trace_name, mode, type, subbuf_size,
+ n_subbufs);
+ if(!ret)
+ ret = lttctl_start(handle, trace_name);
+ break;
+ case CTL_OP_CREATE:
+- ret = lttctl_create_trace(handle, trace_name, mode, subbuf_size,
++ ret = lttctl_create_trace(handle, trace_name, mode, type, subbuf_size,
+ n_subbufs);
+ break;
+ case CTL_OP_DESTROY:
+++ /dev/null
-Index: ltt-modules-0.12/ltt-statedump.c
-===================================================================
---- ltt-modules-0.12.orig/ltt-statedump.c 2006-03-09 19:33:38.000000000 +0000
-+++ ltt-modules-0.12/ltt-statedump.c 2006-03-22 12:43:30.000000000 +0000
-@@ -19,8 +19,14 @@
- #include <linux/proc_fs.h>
- #include <linux/file.h>
- #include <linux/interrupt.h>
--#include <linux/irq.h>
- #include <linux/ltt/ltt-facility-statedump.h>
-+#ifndef CONFIG_ARM
-+#include <linux/irq.h>
-+#else
-+#include <asm/mach/irq.h>
-+#endif
-+
-+
-
- #define NB_PROC_CHUNK 20
-
-@@ -160,6 +166,7 @@
- return 0;
- }
-
-+#ifndef CONFIG_ARM
- static inline int ltt_enumerate_interrupts(void)
- {
- unsigned int i;
-@@ -182,7 +189,9 @@
-
- return 0;
- }
--
-+#else
-+#define ltt_enumerate_interrupts(x)
-+#endif
-
- static inline int ltt_enumerate_process_states(void)
- {
-Index: ltt-modules-0.12/Makefile
-===================================================================
---- ltt-modules-0.12.orig/Makefile 2006-03-11 18:16:17.000000000 +0000
-+++ ltt-modules-0.12/Makefile 2006-03-22 12:39:44.000000000 +0000
-@@ -1,9 +1,7 @@
--ifneq ($(KERNELRELEASE),)
- ifneq ($(CONFIG_LTT),)
- obj-m := ltt-control.o ltt-statedump.o
- endif
-
--else
- KERNELDIR ?= /lib/modules/$(shell uname -r)/build
- PWD := $(shell pwd)
- KERNELRELEASE = $(shell cat $(KERNELDIR)/$(KBUILD_OUTPUT)/include/linux/version.h | sed -n 's/.*UTS_RELEASE.*\"\(.*\)\".*/\1/p')
-@@ -21,4 +19,4 @@
-
- clean:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
--endif
-+