/**
* Call ioctl, restarting if it is interupted
*/
int
drmIoctl(int fd, unsigned long request, void *arg)
{
int ret;
do {
ret = ioctl(fd, request, arg);
} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
return ret;
}
drmIoctl函数定义在libdrm/xf86drm.c中
mesa工具多次调用drmIoctl函数。