doc: add Meson coding style to contributors guide
[dpdk.git] / lib / librte_hash / rte_fbk_hash.h
index 6cd048e..c4d6976 100644 (file)
@@ -1,35 +1,5 @@
-/*-
- *   BSD LICENSE
- * 
- *   Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
- *   All rights reserved.
- * 
- *   Redistribution and use in source and binary forms, with or without 
- *   modification, are permitted provided that the following conditions 
- *   are met:
- * 
- *     * Redistributions of source code must retain the above copyright 
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright 
- *       notice, this list of conditions and the following disclaimer in 
- *       the documentation and/or other materials provided with the 
- *       distribution.
- *     * Neither the name of Intel Corporation nor the names of its 
- *       contributors may be used to endorse or promote products derived 
- *       from this software without specific prior written permission.
- * 
- *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
- *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
- *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
- *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
- *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
- *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
- *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
- *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2014 Intel Corporation
  */
 
 #ifndef _RTE_FBK_HASH_H_
@@ -55,16 +25,9 @@ extern "C" {
 
 #include <string.h>
 
-#ifndef RTE_FBK_HASH_FUNC_DEFAULT
-#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
+#include <rte_config.h>
 #include <rte_hash_crc.h>
-/** Default four-byte key hash function if none is specified. */
-#define RTE_FBK_HASH_FUNC_DEFAULT              rte_hash_crc_4byte
-#else
 #include <rte_jhash.h>
-#define RTE_FBK_HASH_FUNC_DEFAULT              rte_jhash_1word
-#endif
-#endif
 
 #ifndef RTE_FBK_HASH_INIT_VAL_DEFAULT
 /** Initialising value used when calculating hash. */
@@ -104,11 +67,8 @@ union rte_fbk_hash_entry {
 };
 
 
-
 /** The four-byte key hash table structure. */
 struct rte_fbk_hash_table {
-       TAILQ_ENTRY(rte_fbk_hash_table) next;   /**< Linked list. */
-
        char name[RTE_FBK_HASH_NAMESIZE];       /**< Name of the hash. */
        uint32_t entries;               /**< Total number of entries. */
        uint32_t entries_per_bucket;    /**< Number of entries in a bucket. */
@@ -119,7 +79,7 @@ struct rte_fbk_hash_table {
        uint32_t init_val;              /**< For initialising hash function. */
 
        /** A flat table of all buckets. */
-       union rte_fbk_hash_entry t[0];
+       union rte_fbk_hash_entry t[];
 };
 
 /**
@@ -140,7 +100,7 @@ rte_fbk_hash_get_bucket(const struct rte_fbk_hash_table *ht, uint32_t key)
 }
 
 /**
- * Add a key to an existing hash table with bucket id. 
+ * Add a key to an existing hash table with bucket id.
  * This operation is not multi-thread safe
  * and should only be called from one thread.
  *
@@ -184,7 +144,7 @@ rte_fbk_hash_add_key_with_bucket(struct rte_fbk_hash_table *ht,
                }
        }
 
-       return -ENOSPC; /* No space in bucket. */       
+       return -ENOSPC; /* No space in bucket. */
 }
 
 /**
@@ -204,12 +164,12 @@ static inline int
 rte_fbk_hash_add_key(struct rte_fbk_hash_table *ht,
                        uint32_t key, uint16_t value)
 {
-       return rte_fbk_hash_add_key_with_bucket(ht, 
+       return rte_fbk_hash_add_key_with_bucket(ht,
                                key, value, rte_fbk_hash_get_bucket(ht, key));
 }
 
 /**
- * Remove a key with a given bucket id from an existing hash table. 
+ * Remove a key with a given bucket id from an existing hash table.
  * This operation is not multi-thread
  * safe and should only be called from one thread.
  *
@@ -223,7 +183,7 @@ rte_fbk_hash_add_key(struct rte_fbk_hash_table *ht,
  *   0 if ok, or negative value on error.
  */
 static inline int
-rte_fbk_hash_delete_key_with_bucket(struct rte_fbk_hash_table *ht, 
+rte_fbk_hash_delete_key_with_bucket(struct rte_fbk_hash_table *ht,
                                        uint32_t key, uint32_t bucket)
 {
        uint32_t last_entry = ht->entries_per_bucket - 1;
@@ -268,12 +228,12 @@ rte_fbk_hash_delete_key_with_bucket(struct rte_fbk_hash_table *ht,
 static inline int
 rte_fbk_hash_delete_key(struct rte_fbk_hash_table *ht, uint32_t key)
 {
-       return rte_fbk_hash_delete_key_with_bucket(ht, 
+       return rte_fbk_hash_delete_key_with_bucket(ht,
                                key, rte_fbk_hash_get_bucket(ht, key));
 }
 
 /**
- * Find a key in the hash table with a given bucketid. 
+ * Find a key in the hash table with a given bucketid.
  * This operation is multi-thread safe.
  *
  * @param ht
@@ -286,7 +246,7 @@ rte_fbk_hash_delete_key(struct rte_fbk_hash_table *ht, uint32_t key)
  *   The value that was associated with the key, or negative value on error.
  */
 static inline int
-rte_fbk_hash_lookup_with_bucket(const struct rte_fbk_hash_table *ht, 
+rte_fbk_hash_lookup_with_bucket(const struct rte_fbk_hash_table *ht,
                                uint32_t key, uint32_t bucket)
 {
        union rte_fbk_hash_entry current_entry;
@@ -376,7 +336,6 @@ struct rte_fbk_hash_table *rte_fbk_hash_find_existing(const char *name);
  *   Possible rte_errno error values include:
  *    - E_RTE_NO_CONFIG - function could not get pointer to rte_config structure
  *    - E_RTE_SECONDARY - function was called from a secondary process instance
- *    - E_RTE_NO_TAILQ - no tailq list could be got for the fbk hash table list
  *    - EINVAL - invalid parameter value passed to function
  *    - ENOSPC - the maximum number of memzones has already been allocated
  *    - EEXIST - a memzone with the same name already exists