--- /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
-+