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 */
(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));
#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
//----------------------------------------------------------------------