/** Returns the value of "key". */
FIRM_API void * pmap_get(pmap *map, const void * key);
+/**
+ * Returns the value of "key".
+ * This is a wrapper for pmap_get(pmap *map); It allows to express the
+ * intended type of the set elements (instead of weakly typed void*).
+ */
#define pmap_get(type, map, key) ((type*)pmap_get(map, key))
/** Return number of elements in the map */
*/
FIRM_API void *pset_first(pset *pset);
+/**
+ * Returns the first element of a pset.
+ * This is a wrapper for pset_first(pmap *map); It allows to express the
+ * intended type of the set elements (instead of weakly typed void*).
+ *
+ * @param type destination type of the pointers in the set
+ * @param pset the pset to iterate
+ *
+ * @return a pointer to the element or NULL if the set is empty
+ */
#define pset_first(type, pset) ((type*)pset_first((pset)))
/**
*/
FIRM_API void *pset_next(pset *pset);
+/**
+ * Returns the next element of a pset.
+ * This is a wrapper for pset_next(pmap *map); It allows to express the
+ * intended type of the set elements (instead of weakly typed void*).
+ *
+ * @param type destination type of the pointers in the set
+ * @param pset the pset to iterate
+ *
+ * @return a pointer to the next element or NULL if the
+ * iteration is finished
+ */
#define pset_next(type, pset) ((type*)pset_next((pset)))
/**
*/
FIRM_API void *set_first(set *set);
+/**
+ * Returns the first element of a set.
+ * This is a wrapper for set_first(set *set); It allows to express the
+ * intended type of the set elements (instead of weakly typed void*).
+ *
+ * @param set the set to iterate
+ * @param type type of the set elements
+ *
+ * @return a pointer to the element or NULL if the set is empty
+ */
#define set_first(type, set) ((type*)set_first((set)))
/**
*/
FIRM_API void *set_next(set *set);
+/**
+ * Returns the next element of a set.
+ * This is a wrapper for set_next(set *set); It allows to express the
+ * intended type of the set elements (instead of weakly typed void*).
+ *
+ * @param set the set to iterate
+ * @param type type of the set elements
+ *
+ * @return a pointer to the next element or NULL if the
+ * iteration is finished
+ */
#define set_next(type, set) ((type*)set_next((set)))
/**