drm_os_linux.h
来自「linux-2.4.29操作系统的源码」· C头文件 代码 · 共 55 行
H
55 行
#define __NO_VERSION__#include <linux/interrupt.h> /* For task queue support */#include <linux/delay.h>/* For data going from/to the kernel through the ioctl argument */#define DRM_COPY_FROM_USER_IOCTL(arg1, arg2, arg3) \ if ( copy_from_user(&arg1, arg2, arg3) ) \ return -EFAULT#define DRM_COPY_TO_USER_IOCTL(arg1, arg2, arg3) \ if ( copy_to_user(arg1, &arg2, arg3) ) \ return -EFAULT#define DRM_GETSAREA() \do { \ drm_map_list_t *entry; \ list_for_each_entry( entry, &dev->maplist->head, head ) { \ if ( entry->map && \ entry->map->type == _DRM_SHM && \ (entry->map->flags & _DRM_CONTAINS_LOCK) ) { \ dev_priv->sarea = entry->map; \ break; \ } \ } \} while (0)#define DRM_WAIT_ON( ret, queue, timeout, condition ) \do { \ DECLARE_WAITQUEUE(entry, current); \ unsigned long end = jiffies + (timeout); \ add_wait_queue(&(queue), &entry); \ \ for (;;) { \ set_current_state(TASK_INTERRUPTIBLE); \ if (condition) \ break; \ if((signed)(end - jiffies) <= 0) { \ ret = -EBUSY; \ break; \ } \ schedule_timeout((HZ/100 > 1) ? HZ/100 : 1); \ if (signal_pending(current)) { \ ret = -EINTR; \ break; \ } \ } \ set_current_state(TASK_RUNNING); \ remove_wait_queue(&(queue), &entry); \} while (0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?