summaryrefslogtreecommitdiff
path: root/include/pso/macros.h
blob: 1a75d53d4cad94498da3df93b7f67490beeaea7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef MACROS_H
#define MACROS_H

#define OBJECT_NAME(name) static const char *name##_name = #name;

#define FOREACH_NODE(type, first, varname) for (type *varname = (type *)(first); varname != NULL; varname = (type *)(varname->next))
#define FOREACH_NODE_NODECL(type, first, varname) for (varname = (type *)(first); varname != NULL; varname = (type *)(varname->next))

#define FOREACH_NODE_MULTI_ITER(type, first, varname, ...) for (type *varname = (type *)(first); varname != NULL; varname = (type *)(varname->next), __VA_ARGS__)
#define FOREACH_NODE_NODECL_MULTI_ITER(type, first, varname, ...) for (varname = (type *)(first); varname != NULL; varname = (type *)(varname->next), __VA_ARGS__)

#endif