diff -urNw valgrind-3.2.1/include/vki-linux.h valgrind-3.2.1+NC/include/vki-linux.h
--- valgrind-3.2.1/include/vki-linux.h	2006-08-28 15:38:37.000000000 +0200
+++ valgrind-3.2.1+NC/include/vki-linux.h	2008-09-28 17:08:52.000000000 +0200
@@ -2172,6 +2172,25 @@
 #define VKI_VT_LOCKSWITCH   0x560B  /* disallow vt switching */
 #define VKI_VT_UNLOCKSWITCH 0x560C  /* allow vt switching */
 
+/***
+ * From Netchannels
+ ***/
+#define VKI_NETCHANNEL_ADDR_SIZE	16
+
+struct vki_netchannel_addr
+{
+	unsigned char	proto;
+	unsigned char	size;
+	unsigned short	port;
+	unsigned char	addr[VKI_NETCHANNEL_ADDR_SIZE];
+};
+
+struct vki_netchannel_control
+{
+	struct vki_netchannel_addr	saddr, daddr;
+	__vki_u32			packet_limit;
+};
+
 /*--------------------------------------------------------------------*/
 /*--- end                                                          ---*/
 /*--------------------------------------------------------------------*/
diff -urNw valgrind-3.2.1/coregrind/m_syswrap/priv_syswrap-linux.h valgrind-3.2.1+NC/coregrind/m_syswrap/priv_syswrap-linux.h
--- valgrind-3.2.1/coregrind/m_syswrap/priv_syswrap-linux.h	2006-08-28 15:38:57.000000000 +0200
+++ valgrind-3.2.1+NC/coregrind/m_syswrap/priv_syswrap-linux.h	2008-09-28 02:51:55.000000000 +0200
@@ -213,6 +213,8 @@
 DECL_TEMPLATE(linux, sys_rt_sigqueueinfo);
 DECL_TEMPLATE(linux, sys_rt_sigsuspend);
 
+DECL_TEMPLATE(linux, sys_netchannel_create);
+
 /* ---------------------------------------------------------------------
    Wrappers for sockets and ipc-ery.  These are split into standalone
    procedures because x86-linux hides them inside multiplexors
diff -urNw valgrind-3.2.1/coregrind/m_syswrap/syswrap-linux.c valgrind-3.2.1+NC/coregrind/m_syswrap/syswrap-linux.c
--- valgrind-3.2.1/coregrind/m_syswrap/syswrap-linux.c	2006-08-28 15:38:57.000000000 +0200
+++ valgrind-3.2.1+NC/coregrind/m_syswrap/syswrap-linux.c	2008-09-28 17:04:33.000000000 +0200
@@ -2527,9 +2527,27 @@
    PRE_MEM_RASCIIZ( "faccessat(pathname)", ARG2 );
 }
 
+PRE(sys_netchannel_create)
+{
+    PRINT("netchannel_create( %p, %u )", ARG1, ARG2);
+    if(ARG1 != (UWord)NULL)
+    {
+	PRE_MEM_WRITE("sys_netchannel_create", ARG1, sizeof(struct vki_netchannel_control));
+    }
+}
+
+POST(sys_netchannel_create)
+{
+    if(ARG1 != (UWord)NULL)
+    {
+	POST_MEM_WRITE(ARG1, sizeof(struct vki_netchannel_control));
+    }
+}
+
 #undef PRE
 #undef POST
 
 /*--------------------------------------------------------------------*/
 /*--- end                                                          ---*/
 /*--------------------------------------------------------------------*/
+
diff -urNw valgrind-3.2.1/coregrind/m_syswrap/syswrap-x86-linux.c valgrind-3.2.1+NC/coregrind/m_syswrap/syswrap-x86-linux.c
--- valgrind-3.2.1/coregrind/m_syswrap/syswrap-x86-linux.c	2006-08-28 15:38:57.000000000 +0200
+++ valgrind-3.2.1+NC/coregrind/m_syswrap/syswrap-x86-linux.c	2008-09-28 17:05:35.000000000 +0200
@@ -2174,6 +2174,8 @@
 //   LINX_(__NR_unshare,		 sys_unshare),          // 310
    LINX_(__NR_set_robust_list,	 sys_set_robust_list),  // 311
    LINXY(__NR_get_robust_list,	 sys_get_robust_list),  // 312
+
+   LINXY(__NR_netchannel_create, sys_netchannel_create), // 333
 };
 
 const UInt ML_(syscall_table_size) = 
diff -urNw valgrind-3.2.1/coregrind/vki_unistd-x86-linux.h valgrind-3.2.1+NC/coregrind/vki_unistd-x86-linux.h
--- valgrind-3.2.1/coregrind/vki_unistd-x86-linux.h	2006-08-28 15:39:04.000000000 +0200
+++ valgrind-3.2.1+NC/coregrind/vki_unistd-x86-linux.h	2008-09-28 02:51:55.000000000 +0200
@@ -346,5 +346,6 @@
 #define __NR_sync_file_range	314
 #define __NR_tee		315
 #define __NR_vmsplice		316
+#define __NR_netchannel_create	333
 
 #endif /* __VKI_UNISTD_X86_LINUX_H */
