最近读XFree86驱动,发现里面很多地方都用到了ioctl()函数,找了很久却没有找到它的函数原型,只找到一个定义:
#define ioctl() xf86ioctl();
然后找xf86ioctl()函数的实现,发现它是这样的:
int xf86ioctl(int fd, unsigned long request, pointer argp) { int status = ioctl(fd, request, argp);
xf86errno = xf86GetErrno(); return status; } 岂不是又回去了?怎么可能呢?还是这里的ioctl()函数有另外的实现?
在Linux下,ioctl()函数是由系统实现的还是由各个驱动自己实现的呢?在XFree86中是如何实现的呢?
困惑中,各位高手帮忙看看!先谢了!
|