diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-03-25 02:32:21 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2013-03-25 02:32:21 +0000 |
commit | 772b7c37d98402773e200095eb483e2e12a84336 (patch) | |
tree | 48c61e271b02d83fa136444bbcd94d6f5e0bf93c /lib/libdrm/libdrm_lists.h | |
parent | eafc582f025f0bcdfe962d2f7efae0240bbc081a (diff) |
update to libdrm 2.4.42
tested by matthieu@ krw@ mpi@ shadchin@ and ajacoutot@
ok mpi@
Diffstat (limited to 'lib/libdrm/libdrm_lists.h')
-rw-r--r-- | lib/libdrm/libdrm_lists.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/libdrm/libdrm_lists.h b/lib/libdrm/libdrm_lists.h index 6410f5733..8926d8d1a 100644 --- a/lib/libdrm/libdrm_lists.h +++ b/lib/libdrm/libdrm_lists.h @@ -78,6 +78,13 @@ typedef struct _drmMMListHead #define DRMLISTEMPTY(__item) ((__item)->next == (__item)) +#define DRMLISTSINGLE(__list) \ + (!DRMLISTEMPTY(__list) && ((__list)->next == (__list)->prev)) + +#define DRMLISTFOREACH(__item, __list) \ + for ((__item) = (__list)->next; \ + (__item) != (__list); (__item) = (__item)->next) + #define DRMLISTFOREACHSAFE(__item, __temp, __list) \ for ((__item) = (__list)->next, (__temp) = (__item)->next; \ (__item) != (__list); \ @@ -87,3 +94,25 @@ typedef struct _drmMMListHead for ((__item) = (__list)->prev, (__temp) = (__item)->prev; \ (__item) != (__list); \ (__item) = (__temp), (__temp) = (__item)->prev) + +#define DRMLISTFOREACHENTRY(__item, __list, __head) \ + for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->next, __head); \ + &(__item)->__head != (__list); \ + (__item) = DRMLISTENTRY(typeof(*__item), \ + (__item)->__head.next, __head)) + +#define DRMLISTFOREACHENTRYSAFE(__item, __temp, __list, __head) \ + for ((__item) = DRMLISTENTRY(typeof(*__item), (__list)->next, __head), \ + (__temp) = DRMLISTENTRY(typeof(*__item), \ + (__item)->__head.next, __head); \ + &(__item)->__head != (__list); \ + (__item) = (__temp), \ + (__temp) = DRMLISTENTRY(typeof(*__item), \ + (__temp)->__head.next, __head)) + +#define DRMLISTJOIN(__list, __join) if (!DRMLISTEMPTY(__list)) { \ + (__list)->next->prev = (__join); \ + (__list)->prev->next = (__join)->next; \ + (__join)->next->prev = (__list)->prev; \ + (__join)->next = (__list)->next; \ +} |