/*
* nwfilter_params.c: parsing and data maintenance of filter parameters
*
- * Copyright (C) 2011-2012 Red Hat, Inc.
+ * Copyright (C) 2011-2013 Red Hat, Inc.
* Copyright (C) 2010 IBM Corporation
*
* This library is free software; you can redistribute it and/or
static int
-virNWFilterFormatParameterNameSorter(const virHashKeyValuePairPtr a,
- const virHashKeyValuePairPtr b)
+virNWFilterFormatParameterNameSorter(const virHashKeyValuePair *a,
+ const virHashKeyValuePair *b)
{
- return strcmp((const char *)a->key, (const char *)b->key);
+ return strcmp(a->key, b->key);
}
int
/*
* nwfilter_ebiptables_driver.c: driver for ebtables/iptables on tap devices
*
- * Copyright (C) 2011-2012 Red Hat, Inc.
+ * Copyright (C) 2011-2013 Red Hat, Inc.
* Copyright (C) 2010-2012 IBM Corp.
* Copyright (C) 2010-2012 Stefan Berger
*
}
static int
-ebiptablesFilterOrderSort(const virHashKeyValuePairPtr a,
- const virHashKeyValuePairPtr b)
+ebiptablesFilterOrderSort(const virHashKeyValuePair *a,
+ const virHashKeyValuePair *b)
{
/* elements' values has been limited to range [-1000, 1000] */
return *(virNWFilterChainPriority *)a->value -
*
* Reference: Your favorite introductory book on algorithms
*
- * Copyright (C) 2005-2012 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* Copyright (C) 2000 Bjorn Reese and Daniel Veillard.
*
* Permission to use, copy, modify, and distribute this software for any
static size_t
-virHashComputeKey(virHashTablePtr table, const void *name)
+virHashComputeKey(const virHashTable *table, const void *name)
{
uint32_t value = table->keyCode(name, table->seed);
return value % table->size;
* Returns a pointer to the userdata
*/
void *
-virHashLookup(virHashTablePtr table, const void *name)
+virHashLookup(const virHashTable *table, const void *name)
{
size_t key;
virHashEntryPtr entry;
* -1 in case of error
*/
ssize_t
-virHashSize(virHashTablePtr table)
+virHashSize(const virHashTable *table)
{
if (table == NULL)
return -1;
* -1 in case of error
*/
ssize_t
-virHashTableSize(virHashTablePtr table)
+virHashTableSize(const virHashTable *table)
{
if (table == NULL)
return -1;
* returns non-zero will be returned by this function.
* The elements are processed in a undefined order
*/
-void *virHashSearch(virHashTablePtr table,
+void *virHashSearch(const virHashTable *ctable,
virHashSearcher iter,
const void *data)
{
size_t i;
+ /* Cast away const for internal detection of misuse. */
+ virHashTablePtr table = (virHashTablePtr)ctable;
+
if (table == NULL || iter == NULL)
return NULL;
struct virHashEqualData
{
bool equal;
- const virHashTablePtr table2;
+ const virHashTable *table2;
virHashValueComparator compar;
};
return 0;
}
-bool virHashEqual(const virHashTablePtr table1,
- const virHashTablePtr table2,
+bool virHashEqual(const virHashTable *table1,
+ const virHashTable *table2,
virHashValueComparator compar)
{
struct virHashEqualData data = {
* Description: This module implements the hash table and allocation and
* deallocation of domains and connections
*
- * Copyright (C) 2005-2012 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* Copyright (C) 2000 Bjorn Reese and Daniel Veillard.
*
* Author: Bjorn Reese <bjorn.reese@systematic.dk>
virHashKeyCopy keyCopy,
virHashKeyFree keyFree);
void virHashFree(virHashTablePtr table);
-ssize_t virHashSize(virHashTablePtr table);
-ssize_t virHashTableSize(virHashTablePtr table);
+ssize_t virHashSize(const virHashTable *table);
+ssize_t virHashTableSize(const virHashTable *table);
/*
* Add a new entry to the hash table.
/*
* Retrieve the userdata.
*/
-void *virHashLookup(virHashTablePtr table, const void *name);
+void *virHashLookup(const virHashTable *table, const void *name);
/*
* Retrieve & remove the userdata.
const void *key;
const void *value;
};
-typedef int (*virHashKeyComparator)(const virHashKeyValuePairPtr,
- const virHashKeyValuePairPtr);
+typedef int (*virHashKeyComparator)(const virHashKeyValuePair *,
+ const virHashKeyValuePair *);
virHashKeyValuePairPtr virHashGetItems(virHashTablePtr table,
virHashKeyComparator compar);
* of two keys.
*/
typedef int (*virHashValueComparator)(const void *value1, const void *value2);
-bool virHashEqual(const virHashTablePtr table1,
- const virHashTablePtr table2,
+bool virHashEqual(const virHashTable *table1,
+ const virHashTable *table2,
virHashValueComparator compar);
*/
ssize_t virHashForEach(virHashTablePtr table, virHashIterator iter, void *data);
ssize_t virHashRemoveSet(virHashTablePtr table, virHashSearcher iter, const void *data);
-void *virHashSearch(virHashTablePtr table, virHashSearcher iter, const void *data);
+void *virHashSearch(const virHashTable *table, virHashSearcher iter,
+ const void *data);
#endif /* ! __VIR_HASH_H__ */
static int
-testHashGetItemsCompKey(const virHashKeyValuePairPtr a,
- const virHashKeyValuePairPtr b)
+testHashGetItemsCompKey(const virHashKeyValuePair *a,
+ const virHashKeyValuePair *b)
{
return strcmp(a->key, b->key);
}
static int
-testHashGetItemsCompValue(const virHashKeyValuePairPtr a,
- const virHashKeyValuePairPtr b)
+testHashGetItemsCompValue(const virHashKeyValuePair *a,
+ const virHashKeyValuePair *b)
{
return strcmp(a->value, b->value);
}