Documentation
Includes
tuya_cloud_types.h
#include "tuya_cloud_types.h"
Macros
Marco _UNI_HLIST_H
#define _UNI_HLIST_H
Marco HLIST_HEAD_INIT
#define HLIST_HEAD_INIT { .first = NULL}
Marco HLIST_HEAD(name)
#define HLIST_HEAD(name) HLIST_HEAD name = {.first = NULL}
Marco INIT_HLIST_HEAD(ptr)
#define INIT_HLIST_HEAD(ptr) ((ptr->first)=NULL)
Marco HLIST_ENTRY(ptr, type, member)
#define HLIST_ENTRY(ptr, type, member) CNTR_OF(ptr,type,member)
Marco HLIST_FOR_EACH_ENTRY(tpos, type, pos, head, member)
#define HLIST_FOR_EACH_ENTRY(tpos, type, pos, head, member) \
for (pos = (head)->first; \
pos && (tpos = HLIST_ENTRY(pos, type, member), 1); \
pos = pos->next)
Marco HLIST_FOR_EACH_ENTRY_CURR(tpos, type, pos, curr, member)
#define HLIST_FOR_EACH_ENTRY_CURR(tpos, type, pos, curr, member) \
for (pos = (curr)->next; \
pos && (tpos = HLIST_ENTRY(pos, type, member), 1); \
pos = pos->next)
Marco HLIST_FOR_EACH_ENTRY_SAFE(tpos, type, pos, n, head, member)
#define HLIST_FOR_EACH_ENTRY_SAFE(tpos, type, pos, n, head, member) \
for (pos = (head)->first; \
pos && (n = pos->next, 1) && \
(tpos = HLIST_ENTRY(pos, type, member), 1); \
pos = n)
Marco HLIST_FOR_EACH(pos, head)
#define HLIST_FOR_EACH(pos, head) \
for (pos = (head)->first; pos ; \
pos = pos->next)
Marco HLIST_FOR_EACH_SAFE(pos, n, head)
#define HLIST_FOR_EACH_SAFE(pos, n, head) \
for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \
pos = n)
Functions
Vars
Consts
Types
Typedefs
Typedef HLIST_NODE;
typedef struct hlist_node {
struct hlist_node *next,**pprev;
}HLIST_NODE;
Typedef HLIST_HEAD;
typedef struct hlist_head{
struct hlist_node *first;
}HLIST_HEAD;