Changeset 91bef446 in mainline
- Timestamp:
- 2019-02-24T15:45:40Z (6 years ago)
- Parents:
- 0c48e14
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-24 15:44:39)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-24 15:45:40)
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/mm/page_ht.c
r0c48e14 r91bef446 54 54 55 55 static size_t ht_hash(const ht_link_t *); 56 static size_t ht_key_hash( void *);57 static bool ht_key_equal( void *, const ht_link_t *);56 static size_t ht_key_hash(const void *); 57 static bool ht_key_equal(const void *, const ht_link_t *); 58 58 static void ht_remove_callback(ht_link_t *); 59 59 … … 109 109 110 110 /** Return the hash of the key. */ 111 size_t ht_key_hash( void *arg)112 { 113 uintptr_t *key = (uintptr_t *)arg;111 size_t ht_key_hash(const void *arg) 112 { 113 const uintptr_t *key = arg; 114 114 size_t hash = 0; 115 115 hash = hash_combine(hash, key[KEY_AS]); … … 119 119 120 120 /** Return true if the key is equal to the item's lookup key. */ 121 bool ht_key_equal( void *arg, const ht_link_t *item)122 { 123 uintptr_t *key = (uintptr_t *)arg;121 bool ht_key_equal(const void *arg, const ht_link_t *item) 122 { 123 const uintptr_t *key = arg; 124 124 pte_t *pte = hash_table_get_inst(item, pte_t, link); 125 125 return (key[KEY_AS] == (uintptr_t) pte->as) && -
kernel/generic/include/adt/hash_table.h
r0c48e14 r91bef446 53 53 54 54 /** Returns the hash of the key. */ 55 size_t (*key_hash)( void *key);55 size_t (*key_hash)(const void *key); 56 56 57 57 /** True if the items are equal (have the same lookup keys). */ … … 59 59 60 60 /** Returns true if the key is equal to the item's lookup key. */ 61 bool (*key_equal)( void *key, const ht_link_t *item);61 bool (*key_equal)(const void *key, const ht_link_t *item); 62 62 63 63 /** Hash table item removal callback. … … 94 94 extern void hash_table_insert(hash_table_t *, ht_link_t *); 95 95 extern bool hash_table_insert_unique(hash_table_t *, ht_link_t *); 96 extern ht_link_t *hash_table_find(const hash_table_t *, void *);96 extern ht_link_t *hash_table_find(const hash_table_t *, const void *); 97 97 extern ht_link_t *hash_table_find_next(const hash_table_t *, ht_link_t *, 98 98 ht_link_t *); 99 extern size_t hash_table_remove(hash_table_t *, void *);99 extern size_t hash_table_remove(hash_table_t *, const void *); 100 100 extern void hash_table_remove_item(hash_table_t *, ht_link_t *); 101 101 extern void hash_table_apply(hash_table_t *, bool (*)(ht_link_t *, void *), -
kernel/generic/src/adt/hash_table.c
r0c48e14 r91bef446 51 51 #include <adt/hash_table.h> 52 52 #include <adt/list.h> 53 #include <assert.h> 53 54 #include <stdlib.h> 54 #include <assert.h>55 55 #include <str.h> 56 56 … … 245 245 * 246 246 */ 247 ht_link_t *hash_table_find(const hash_table_t *h, void *key)247 ht_link_t *hash_table_find(const hash_table_t *h, const void *key) 248 248 { 249 249 assert(h && h->bucket); … … 306 306 * @return Returns the number of removed items. 307 307 */ 308 size_t hash_table_remove(hash_table_t *h, void *key)308 size_t hash_table_remove(hash_table_t *h, const void *key) 309 309 { 310 310 assert(h && h->bucket); -
kernel/generic/src/cap/cap.c
r0c48e14 r91bef446 101 101 } 102 102 103 static size_t caps_key_hash( void *key)104 { 105 c ap_handle_t *handle = (cap_handle_t *)key;103 static size_t caps_key_hash(const void *key) 104 { 105 const cap_handle_t *handle = key; 106 106 return hash_mix(cap_handle_raw(*handle)); 107 107 } 108 108 109 static bool caps_key_equal( void *key, const ht_link_t *item)110 { 111 c ap_handle_t *handle = (cap_handle_t *)key;109 static bool caps_key_equal(const void *key, const ht_link_t *item) 110 { 111 const cap_handle_t *handle = key; 112 112 cap_t *cap = hash_table_get_inst(item, cap_t, caps_link); 113 113 return *handle == cap->handle; -
kernel/generic/src/ddi/irq.c
r0c48e14 r91bef446 73 73 74 74 static size_t irq_ht_hash(const ht_link_t *); 75 static size_t irq_ht_key_hash( void *);75 static size_t irq_ht_key_hash(const void *); 76 76 static bool irq_ht_equal(const ht_link_t *, const ht_link_t *); 77 static bool irq_ht_key_equal( void *, const ht_link_t *);77 static bool irq_ht_key_equal(const void *, const ht_link_t *); 78 78 79 79 static hash_table_ops_t irq_ht_ops = { … … 208 208 209 209 /** Return the hash of the key. */ 210 size_t irq_ht_key_hash( void *key)211 { 212 inr_t *inr = (inr_t *)key;210 size_t irq_ht_key_hash(const void *key) 211 { 212 const inr_t *inr = key; 213 213 return hash_mix(*inr); 214 214 } … … 223 223 224 224 /** Return true if the key is equal to the item's lookup key. */ 225 bool irq_ht_key_equal( void *key, const ht_link_t *item)226 { 227 inr_t *inr = (inr_t *)key;225 bool irq_ht_key_equal(const void *key, const ht_link_t *item) 226 { 227 const inr_t *inr = key; 228 228 irq_t *irq = hash_table_get_inst(item, irq_t, link); 229 229 return irq->inr == *inr; -
kernel/generic/src/lib/ra.c
r0c48e14 r91bef446 67 67 68 68 /** Return the hash of the key */ 69 static size_t used_key_hash( void *key)70 { 71 uintptr_t *base = (uintptr_t *)key;69 static size_t used_key_hash(const void *key) 70 { 71 const uintptr_t *base = key; 72 72 return hash_mix(*base); 73 73 } 74 74 75 75 /** Return true if the key is equal to the item's lookup key */ 76 static bool used_key_equal( void *key, const ht_link_t *item)77 { 78 uintptr_t *base = (uintptr_t *)key;76 static bool used_key_equal(const void *key, const ht_link_t *item) 77 { 78 const uintptr_t *base = key; 79 79 ra_segment_t *seg = hash_table_get_inst(item, ra_segment_t, uh_link); 80 80 return seg->base == *base; -
uspace/lib/c/generic/adt/hash_table.c
r0c48e14 r91bef446 303 303 * @param key Array of keys that will be compared against items of 304 304 * the hash table. 305 * @param keys Number of keys in the 'key' array.306 305 * 307 306 * @return Returns the number of removed items.
Note:
See TracChangeset
for help on using the changeset viewer.