summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2010-03-17 13:07:50 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2010-04-01 13:56:43 -0500
commit95d528a2fe9f1eaec11dc3256dc9dec49b557990 (patch)
tree11c937b0f1f5e7810b82b8c00b626393be862f0c
parent087431d1d1bf4e785edfa89e8cd05fcdac558dc3 (diff)
downloadfocaccia-qemu-95d528a2fe9f1eaec11dc3256dc9dec49b557990.tar.gz
focaccia-qemu-95d528a2fe9f1eaec11dc3256dc9dec49b557990.zip
tap: add interface to get device fd
Will be used by vhost to attach/detach to backend.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--net/tap.c7
-rw-r--r--net/tap.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/net/tap.c b/net/tap.c
index 672b0ee0b4..c19740b584 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -270,6 +270,13 @@ static void tap_poll(VLANClientState *nc, bool enable)
     tap_write_poll(s, enable);
 }
 
+int tap_get_fd(VLANClientState *nc)
+{
+    TAPState *s = DO_UPCAST(TAPState, nc, nc);
+    assert(nc->info->type == NET_CLIENT_TYPE_TAP);
+    return s->fd;
+}
+
 /* fd support */
 
 static NetClientInfo net_tap_info = {
diff --git a/net/tap.h b/net/tap.h
index 538a562720..a244b28f82 100644
--- a/net/tap.h
+++ b/net/tap.h
@@ -48,4 +48,6 @@ int tap_probe_vnet_hdr(int fd);
 int tap_probe_has_ufo(int fd);
 void tap_fd_set_offload(int fd, int csum, int tso4, int tso6, int ecn, int ufo);
 
+int tap_get_fd(VLANClientState *vc);
+
 #endif /* QEMU_NET_TAP_H */