@@ -3,6 +3,22 @@
struct ptrmap;
+#define DECLARE_PTRMAP(name, ktype, vtype) \
+ struct name ## _pair { ktype key; vtype val; }; \
+ struct name { struct name ## _pair block[1]; }; \
+ static inline \
+ void name##_add(struct name **map, ktype k, vtype v) { \
+ __ptrmap_add((struct ptrmap**)map, k, v); \
+ } \
+ static inline \
+ void name##_update(struct name **map, ktype k, vtype v) { \
+ __ptrmap_update((struct ptrmap**)map, k, v); \
+ } \
+ static inline \
+ vtype name##_lookup(struct name *map, ktype k) { \
+ vtype val = __ptrmap_lookup((struct ptrmap*)map, k); \
+ return val; \
+ } \
/* ptrmap.c */
void __ptrmap_add(struct ptrmap **mapp, void *key, void *val);
Add the external API for the ptrmap implementation. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> --- ptrmap.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)