在笔者之前的libdrm全解析系列文章中,讲到了drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &map)以及其封装函数drmModeMapDumbBuffer。对应的文章链接为:
文章中讲到drmIoctl函数实际上最终调用了ioctl系统调用,相关代码在xf86drm.c中,代码如下:
/**
* Call ioctl, restarting if it is interrupted
*/
drm_public int
drmIoctl(int fd, unsigned long request, void *arg)
{
int ret;
do {
ret = ioctl(fd, request, arg);
} while (ret == -1 && (errno == EINTR || e