Subject: fstat() and cloned devices
To: None <tech-kern@NetBSD.org>
From: Klaus Heinz <k.heinz@oktsieben.kh-22.de>
List: tech-kern
Date: 10/07/2007 16:56:20
Hi,
qemu does the following in vl.c:
fd = open("/dev/tap", O_RDWR);
...
fstat(fd, &s);
...
dev = devname(s.st_rdev, S_IFCHR);
This fails on NetBSD 3 because fstat() returns -1 and most (all?)
members of struct stat are set to 0.
I have two questions:
- How can I get the name of the cloned interface (tap1, tap2, ...)?
- Can anyone please check whether there are any other undocumented
errno values for fstat? If fstat() returns -1 errno is set to 45
(EOPNOTSUPP) which is not listed on the man page for fstat().
I tried to find the file where fstat is implemented but failed
miserably. It looks like fstat in NetBSD 3 is really fstat13 with
system call number 279, that's as far as I got.
ciao
Klaus