函数逻辑报告 | 
Source Code:include\linux\rhashtable.h | 
Create Date:2022-07-27 07:05:12 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:Internal function, please use rhashtable_insert_fast() instead. This* function returns the existing element already in hashes in there is a clash,* otherwise it returns an error via ERR_PTR().
函数原型:static inline void *__rhashtable_insert_fast(struct rhashtable *ht, const void *key, struct rhash_head *obj, const struct rhashtable_params params, bool rhlist)
返回类型:void
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct rhashtable * | ht | |
| const void * | key | |
| struct rhash_head * | obj | |
| const struct rhashtable_params | params | |
| bool | rhlist | 
| 722 | tbl等于rht_dereference_rcu(tbl, ht) | 
| 724 | elasticity等于Maximum chain length before rehash* The maximum (not average) chain length grows with the size of the hash* table, at a rate of (log N)/(log log N) | 
| 725 | bkt等于rht_bucket_insert(ht, tbl, hash) | 
| 729 | pprev = NULL | 
| 733 | slow_path : | 
| 734 | rht_unlock(tbl, bkt) | 
| 736 | 返回:rhashtable_insert_slow(ht, key, obj) | 
| 743 | elasticity自减 | 
| 754 | 如果非rhlist则转到:out_unlock | 
| 762 | head等于rht_dereference_bucket(next, tbl, hash) | 
| 764 | 如果pprev则 | 
| 766 | rht_unlock(tbl, bkt) | 
| 767 | 否则rht_assign_unlock(tbl, bkt, obj) | 
| 769 | data = NULL | 
| 770 | 转到:out | 
| 773 | 如果elasticity小于等于0则转到:slow_path | 
| 777 | 如果此条件成立可能性小(为编译器优化)(表溢出)则转到:out_unlock | 
| 780 | 如果此条件成立可能性小(为编译器优化)(ht_grow_above_100 - returns true if nelems > table-size*@ht: hash table*@tbl: current table)则转到:slow_path | 
| 787 | 如果rhlist则 | 
| 794 | atomic_inc( & nelems) | 
| 795 | rht_assign_unlock(tbl, bkt, obj) | 
| 800 | data = NULL | 
| 801 | out : | 
| 804 | 返回:data | 
| 806 | out_unlock : | 
| 807 | rht_unlock(tbl, bkt) | 
| 808 | 转到:out | 
| 名称 | 描述 | 
|---|---|
| rhashtable_insert_fast | hashtable_insert_fast - insert object into hash table*@ht: hash table*@obj: pointer to hash head inside object*@params: hash table parameters* Will take the per bucket bitlock to protect against mutual mutations* on the same bucket | 
| rhltable_insert_key | hltable_insert_key - insert object into hash list table*@hlt: hash list table*@key: the pointer to the key*@list: pointer to hash list head inside object*@params: hash table parameters* Will take the per bucket bitlock to protect against mutual mutations | 
| rhashtable_lookup_insert_fast | hashtable_lookup_insert_fast - lookup and insert object into hash table*@ht: hash table*@obj: pointer to hash head inside object*@params: hash table parameters* This lookup function may only be used for fixed key hash table (key_len* parameter set) | 
| rhashtable_lookup_get_insert_fast | hashtable_lookup_get_insert_fast - lookup and insert object into hash table*@ht: hash table*@obj: pointer to hash head inside object*@params: hash table parameters* Just like rhashtable_lookup_insert_fast(), but this function returns the* object if it | 
| rhashtable_lookup_insert_key | hashtable_lookup_insert_key - search and insert object to hash table* with explicit key*@ht: hash table*@key: key*@obj: pointer to hash head inside object*@params: hash table parameters* Lookups may occur in parallel with hashtable mutations and resizing | 
| rhashtable_lookup_get_insert_key | hashtable_lookup_get_insert_key - lookup and insert object into hash table*@ht: hash table*@obj: pointer to hash head inside object*@params: hash table parameters*@data: pointer to element data already in hashes* Just like rhashtable_lookup_insert_key(), | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |