]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
initial tun/tap ioctls.
authorChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 1 Mar 2013 12:56:07 +0000 (12:56 +0000)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 1 Mar 2013 12:56:07 +0000 (12:56 +0000)
TUNSETIFF/TUNGETIFF/TUNSETOFFLOAD. See 315952.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13297

coregrind/m_syswrap/syswrap-linux.c
include/vki/vki-linux.h

index bc0400114a75d098cc5628a90f396f474d679eea..bef2e24d828637ceae45248ac32e83cd84c8621a 100644 (file)
@@ -5140,6 +5140,23 @@ PRE(sys_ioctl)
                    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 @@ POST(sys_ioctl)
                 (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));
index a1a05d1aa7e87a269240e2b976ee06068ef42b2e..e3de1b3f56ebe05ece480e4635544a5b43e9c45a 100644 (file)
@@ -3031,6 +3031,29 @@ struct vki_hwtstamp_config {
 
 #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
 //----------------------------------------------------------------------