[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] tun/tap patch for OSX
From: |
Lev Lvovsky |
Subject: |
[Qemu-devel] tun/tap patch for OSX |
Date: |
Sun, 28 Dec 2008 22:11:32 -0800 |
The following patch provided by Mattias Nissler, and tweaked by myself
to be applied to net.c (previously to vl.c) allows qemu to use the tun/
tap devices provided at Mattias' site (http://
tuntaposx.sourceforge.net).
Mattias is CC'd.
thanks,
-lev
----
bash-3.2$ svn diff net.c
Index: net.c
===================================================================
--- net.c (revision 6082)
+++ net.c (working copy)
@@ -686,8 +686,36 @@
snprintf(s->vc->info_str, sizeof(s->vc->info_str), "tap: fd=%d",
fd);
return s;
}
+#if defined(__APPLE__)
+static int tap_open(char *ifname, int ifname_size)
+{
+ int fd;
+ int i = 0;
+ char *dev;
+ char buf[20];
+ struct stat s;
-#if defined (_BSD) || defined (__FreeBSD_kernel__)
+ while (1) {
+ snprintf(buf, 20, "/dev/tap%d", i);
+ fd = open(buf, O_RDWR);
+ if (fd < 0) {
+ if (errno != EBUSY) {
+ fprintf(stderr, "warning: could not open %s: no
virtual network emulation\n", buf);
+ return -1;
+ }
+ i++;
+ } else
+ break;
+ }
+
+ fstat(fd, &s);
+ dev = devname(s.st_rdev, S_IFCHR);
+ pstrcpy(ifname, ifname_size, dev);
+
+ fcntl(fd, F_SETFL, O_NONBLOCK);
+ return fd;
+}
+#elif defined (_BSD) || defined (__FreeBSD_kernel__)
static int tap_open(char *ifname, int ifname_size)
{
int fd;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] tun/tap patch for OSX,
Lev Lvovsky <=