#include <linux/kernel.h>
Go to the source code of this file.
|
| #define | INIT_HLIST_HEAD(head) do { (head)->first = 0; } while (0) |
| |
| #define | INIT_HLIST_NODE(node) do { (node)->next = 0; (node)->pprev = 0; } while (0) |
| |
| #define | hlist_entry(ptr, type, member) container_of(ptr, type, member) |
| |
| #define | hlist_entry_safe(ptr, type, member) ((ptr) ? hlist_entry(ptr, type, member) : (type*)0) |
| |
| #define | hlist_for_each_entry(pos, head, member) |
| |
| #define | DECLARE_HASHTABLE(name, bits) struct hlist_head name[1 << (bits)] |
| |
| #define | DEFINE_HASHTABLE(name, bits) DECLARE_HASHTABLE(name, bits) |
| |
| #define | HASH_BITS(name) ((int)__builtin_ctz(sizeof(name) / sizeof(*(name)))) |
| |
| #define | hash_min(key, bits) ((unsigned int)(key) & ((1u << (bits)) - 1u)) |
| |
| #define | hash_add(hashtable, node, key) hlist_add_head(node, &hashtable[hash_min(key, HASH_BITS(hashtable))]) |
| |
| #define | hash_del(node) hlist_del(node) |
| |
| #define | hash_empty(hashtable) __hash_empty(hashtable, HASH_BITS(hashtable)) |
| |
| #define | hash_for_each_possible(name, obj, member, key) |
| |
| #define | hash_for_each_safe(name, bkt, tmp, obj, member) |
| |
| #define | hash_for_each_possible_safe(name, obj, tmp, key, member) |
| |
| #define | hlist_for_each_entry_safe(pos, n, head, member) |
| |
◆ DECLARE_HASHTABLE
◆ DEFINE_HASHTABLE
◆ hash_add
◆ HASH_BITS
| #define HASH_BITS |
( |
|
name | ) |
((int)__builtin_ctz(sizeof(name) / sizeof(*(name)))) |
◆ hash_del
| #define hash_del |
( |
|
node | ) |
hlist_del(node) |
◆ hash_empty
| #define hash_empty |
( |
|
hashtable | ) |
__hash_empty(hashtable, HASH_BITS(hashtable)) |
◆ hash_for_each_possible
| #define hash_for_each_possible |
( |
|
name, |
|
|
|
obj, |
|
|
|
member, |
|
|
|
key |
|
) |
| |
Value:
#define hlist_for_each_entry(pos, head, member)
Definition hashtable.h:77
#define HASH_BITS(name)
Definition hashtable.h:85
#define hash_min(key, bits)
Definition hashtable.h:88
struct drm_crtc struct drm_plane struct drm_plane const struct drm_crtc_funcs const char * name
Definition drm_crtc.h:1242
◆ hash_for_each_possible_safe
| #define hash_for_each_possible_safe |
( |
|
name, |
|
|
|
obj, |
|
|
|
tmp, |
|
|
|
key, |
|
|
|
member |
|
) |
| |
Value:
#define hlist_for_each_entry_safe(pos, n, head, member)
Definition hashtable.h:120
◆ hash_for_each_safe
| #define hash_for_each_safe |
( |
|
name, |
|
|
|
bkt, |
|
|
|
tmp, |
|
|
|
obj, |
|
|
|
member |
|
) |
| |
Value:
(bkt)++, \
(obj) = 0)
#define hlist_entry_safe(ptr, type, member)
Definition hashtable.h:74
◆ hash_min
| #define hash_min |
( |
|
key, |
|
|
|
bits |
|
) |
| ((unsigned int)(key) & ((1u << (bits)) - 1u)) |
◆ hlist_entry
| #define hlist_entry |
( |
|
ptr, |
|
|
|
type, |
|
|
|
member |
|
) |
| container_of(ptr, type, member) |
◆ hlist_entry_safe
| #define hlist_entry_safe |
( |
|
ptr, |
|
|
|
type, |
|
|
|
member |
|
) |
| ((ptr) ? hlist_entry(ptr, type, member) : (type*)0) |
◆ hlist_for_each_entry
| #define hlist_for_each_entry |
( |
|
pos, |
|
|
|
head, |
|
|
|
member |
|
) |
| |
Value:
pos; \
int const struct list_head const struct list_head struct list_head * head
Definition list_sort.h:13
◆ hlist_for_each_entry_safe
| #define hlist_for_each_entry_safe |
( |
|
pos, |
|
|
|
n, |
|
|
|
head, |
|
|
|
member |
|
) |
| |
Value:
pos && ({ n = pos->member.next; 1; }); \
◆ INIT_HLIST_HEAD
| #define INIT_HLIST_HEAD |
( |
|
head | ) |
do { (head)->first = 0; } while (0) |
◆ INIT_HLIST_NODE
| #define INIT_HLIST_NODE |
( |
|
node | ) |
do { (node)->next = 0; (node)->pprev = 0; } while (0) |