/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
#ifndef FIRM_ADT_CPSET_H
#define FIRM_ADT_CPSET_H
+#include "../begin.h"
+
/**
* The type of a cpset compare function.
*
/**
* Initializes a cpset
*
- * @param cpset Pointer to allocated space for the cpset
- * @param cmp_function The compare function to use
+ * @param cpset Pointer to allocated space for the cpset
+ * @param hash_function The hash function to use
+ * @param cmp_function The compare function to use
*/
-void cpset_init(cpset_t *cpset, cpset_hash_function hash_function,
+FIRM_API void cpset_init(cpset_t *cpset, cpset_hash_function hash_function,
cpset_cmp_function cmp_function);
/**
* Initializes a cpset
*
- * @param cpset Pointer to allocated space for the cpset
- * @param cmp_function The compare function to use
- * @param expected_elements Number of elements expected in the cpset (roughly)
+ * @param cpset Pointer to allocated space for the cpset
+ * @param hash_function The hash function to use
+ * @param cmp_function The compare function to use
+ * @param expected_elements Number of elements expected in the cpset (roughly)
*/
-void cpset_init_size(cpset_t *cpset, cpset_hash_function hash_function,
+FIRM_API void cpset_init_size(cpset_t *cpset, cpset_hash_function hash_function,
cpset_cmp_function cmp_function,
size_t expected_elements);
*
* @param cpset Pointer to the cpset
*/
-void cpset_destroy(cpset_t *cpset);
+FIRM_API void cpset_destroy(cpset_t *cpset);
/**
* Inserts an element into a cpset.
* @param obj Element to insert into the cpset
* @returns The element itself or a pointer to an existing element
*/
-void* cpset_insert(cpset_t *cpset, void *obj);
+FIRM_API void* cpset_insert(cpset_t *cpset, void *obj);
/**
* Removes an element from a cpset. Does nothing if the cpset doesn't contain the
* @param cpset Pointer to the cpset
* @param obj Pointer to remove from the cpset
*/
-void cpset_remove(cpset_t *cpset, const void *obj);
+FIRM_API void cpset_remove(cpset_t *cpset, const void *obj);
/**
* Tests whether a cpset contains a pointer
* @param obj The pointer to find
* @returns An equivalent object to @p obj or NULL
*/
-void *cpset_find(const cpset_t *cpset, const void *obj);
+FIRM_API void *cpset_find(const cpset_t *cpset, const void *obj);
/**
* Returns the number of pointers contained in the cpset
* @param cpset Pointer to the cpset
* @returns Number of pointers contained in the cpset
*/
-size_t cpset_size(const cpset_t *cpset);
+FIRM_API size_t cpset_size(const cpset_t *cpset);
/**
* Initializes a cpset iterator. Sets the iterator before the first element in
* @param iterator Pointer to already allocated iterator memory
* @param cpset Pointer to the cpset
*/
-void cpset_iterator_init(cpset_iterator_t *iterator, const cpset_t *cpset);
+FIRM_API void cpset_iterator_init(cpset_iterator_t *iterator, const cpset_t *cpset);
/**
* Advances the iterator and returns the current element or NULL if all elements
* @param iterator Pointer to the cpset iterator.
* @returns Next element in the cpset or NULL
*/
-void *cpset_iterator_next(cpset_iterator_t *iterator);
+FIRM_API void *cpset_iterator_next(cpset_iterator_t *iterator);
/**
* Removed the element the iterator currently points to
* @param cpset Pointer to the cpset
* @param iterator Pointer to the cpset iterator.
*/
-void cpset_remove_iterator(cpset_t *cpset, const cpset_iterator_t *iterator);
+FIRM_API void cpset_remove_iterator(cpset_t *cpset, const cpset_iterator_t *iterator);
+
+#include "../end.h"
-#endif /* FIRM_ADT_CPSET_H */
+#endif