Revision e7e92325 net/tap.c

b/net/tap.c
42 42
#include "net/tap-linux.h"
43 43
#endif
44 44

  
45
#ifdef __NetBSD__
46
#include <net/if_tap.h>
47
#endif
48

  
49
#ifdef CONFIG_BSD
50
#if defined(__FreeBSD__) || defined(__DragonFly__)
51
#include <libutil.h>
52
#else
53
#include <util.h>
54
#endif
55
#elif defined (__GLIBC__) && defined (__FreeBSD_kernel__)
56
#include <freebsd/stdlib.h>
57
#endif
58

  
59
#if defined(__OpenBSD__)
60
#include <util.h>
61
#endif
62

  
63 45
#ifdef __sun__
64 46
#include <sys/stat.h>
65 47
#include <sys/ethernet.h>
......
394 376
    return s;
395 377
}
396 378

  
397
#if defined (CONFIG_BSD) || defined (__FreeBSD_kernel__)
398
static int tap_open(char *ifname, int ifname_size,
399
                    int *vnet_hdr, int vnet_hdr_required)
400
{
401
    int fd;
402
    char *dev;
403
    struct stat s;
404

  
405
    TFR(fd = open("/dev/tap", O_RDWR));
406
    if (fd < 0) {
407
        fprintf(stderr, "warning: could not open /dev/tap: no virtual network emulation\n");
408
        return -1;
409
    }
410

  
411
    fstat(fd, &s);
412
    dev = devname(s.st_rdev, S_IFCHR);
413
    pstrcpy(ifname, ifname_size, dev);
414

  
415
    fcntl(fd, F_SETFL, O_NONBLOCK);
416
    return fd;
417
}
418
#elif defined(__sun__)
379
#ifdef __sun__
419 380
#define TUNNEWPPA       (('T'<<16) | 0x0001)
420 381
/*
421 382
 * Allocate TAP device, returns opened fd.
......
538 499
    return tap_fd;
539 500
}
540 501

  
541
static int tap_open(char *ifname, int ifname_size,
542
                    int *vnet_hdr, int vnet_hdr_required)
502
int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required)
543 503
{
544 504
    char  dev[10]="";
545 505
    int fd;
......
552 512
    return fd;
553 513
}
554 514
#elif defined (_AIX)
555
static int tap_open(char *ifname, int ifname_size,
556
                    int *vnet_hdr, int vnet_hdr_required)
515
int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required)
557 516
{
558 517
    fprintf (stderr, "no tap on AIX\n");
559 518
    return -1;
560 519
}
561 520
#else
562
static int tap_open(char *ifname, int ifname_size,
563
                    int *vnet_hdr, int vnet_hdr_required)
521
int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required)
564 522
{
565 523
    struct ifreq ifr;
566 524
    int fd, ret;

Also available in: Unified diff