|
From: <sv...@va...> - 2013-03-01 21:19:23
|
cborntra 2013-03-01 12:56:07 +0000 (Fri, 01 Mar 2013)
New Revision: 13297
Log:
initial tun/tap ioctls.
TUNSETIFF/TUNGETIFF/TUNSETOFFLOAD. See 315952.
Modified files:
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/include/vki/vki-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c (+30 -0)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2013-03-01 12:10:33 +00:00 (rev 13296)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2013-03-01 12:56:07 +00:00 (rev 13297)
@@ -5140,6 +5140,23 @@
sizeof(struct vki_rtentry));
break;
+ /* tun/tap related ioctls */
+ case VKI_TUNSETIFF:
+ PRE_MEM_RASCIIZ( "ioctl(TUNSETIFF)",
+ (Addr)((struct vki_ifreq *)ARG3)->vki_ifr_name );
+ PRE_MEM_READ( "ioctl(TUNSETIFF)",
+ (Addr)&((struct vki_ifreq *)ARG3)->vki_ifr_flags,
+ sizeof(((struct vki_ifreq *)ARG3)->vki_ifr_flags) );
+ PRE_MEM_WRITE( "ioctl(TUNSETIFF)", ARG3,
+ sizeof(struct vki_ifreq));
+ break;
+ case VKI_TUNSETOFFLOAD:
+ break;
+ case VKI_TUNGETIFF:
+ PRE_MEM_WRITE( "ioctl(TUNGETIFF)", ARG3,
+ sizeof(struct vki_ifreq));
+ break;
+
/* RARP cache control calls. */
case VKI_SIOCDRARP: /* delete RARP table entry */
case VKI_SIOCSRARP: /* set RARP table entry */
@@ -6395,6 +6412,19 @@
(Addr)&((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->val_out,
sizeof(((struct vki_mii_ioctl_data *)&((struct vki_ifreq *)ARG3)->vki_ifr_data)->val_out) );
break;
+
+ /* tun/tap related ioctls */
+ case VKI_TUNSETIFF:
+ POST_MEM_WRITE( (Addr)&((struct vki_ifreq *)ARG3)->vki_ifr_name,
+ sizeof(((struct vki_ifreq *)ARG3)->vki_ifr_name) );
+ break;
+ case VKI_TUNGETIFF:
+ POST_MEM_WRITE( (Addr)&((struct vki_ifreq *)ARG3)->vki_ifr_name,
+ sizeof(((struct vki_ifreq *)ARG3)->vki_ifr_name) );
+ POST_MEM_WRITE( (Addr)&((struct vki_ifreq *)ARG3)->vki_ifr_flags,
+ sizeof(((struct vki_ifreq *)ARG3)->vki_ifr_flags) );
+ break;
+
case VKI_SIOCGIFCONF: /* get iface list */
/* WAS:
PRE_MEM_WRITE("ioctl(SIOCGIFCONF)", ARG3, sizeof(struct ifconf));
Modified: trunk/include/vki/vki-linux.h (+23 -0)
===================================================================
--- trunk/include/vki/vki-linux.h 2013-03-01 12:10:33 +00:00 (rev 13296)
+++ trunk/include/vki/vki-linux.h 2013-03-01 12:56:07 +00:00 (rev 13297)
@@ -3032,6 +3032,29 @@
#define VKI_IB_USER_MAD_ENABLE_PKEY _VKI_IO(VKI_IB_IOCTL_MAGIC, 3)
//----------------------------------------------------------------------
+// From linux-3.8/include/uapi/linux/if_tun.h
+//----------------------------------------------------------------------
+
+#define VKI_TUNSETNOCSUM _VKI_IOW('T', 200, int)
+#define VKI_TUNSETDEBUG _VKI_IOW('T', 201, int)
+#define VKI_TUNSETIFF _VKI_IOW('T', 202, int)
+#define VKI_TUNSETPERSIST _VKI_IOW('T', 203, int)
+#define VKI_TUNSETOWNER _VKI_IOW('T', 204, int)
+#define VKI_TUNSETLINK _VKI_IOW('T', 205, int)
+#define VKI_TUNSETGROUP _VKI_IOW('T', 206, int)
+#define VKI_TUNGETFEATURES _VKI_IOR('T', 207, unsigned int)
+#define VKI_TUNSETOFFLOAD _VKI_IOW('T', 208, unsigned int)
+#define VKI_TUNSETTXFILTER _VKI_IOW('T', 209, unsigned int)
+#define VKI_TUNGETIFF _VKI_IOR('T', 210, unsigned int)
+#define VKI_TUNGETSNDBUF _VKI_IOR('T', 211, int)
+#define VKI_TUNSETSNDBUF _VKI_IOW('T', 212, int)
+//#define VKI_TUNATTACHFILTER _VKI_IOW('T', 213, struct sock_fprog)
+//#define VKI_TUNDETACHFILTER _VKI_IOW('T', 214, struct sock_fprog)
+#define VKI_TUNGETVNETHDRSZ _VKI_IOR('T', 215, int)
+#define VKI_TUNSETVNETHDRSZ _VKI_IOW('T', 216, int)
+#define VKI_TUNSETQUEUE _VKI_IOW('T', 217, int)
+
+//----------------------------------------------------------------------
// Xen privcmd IOCTL
//----------------------------------------------------------------------
|