re-org platform APIs, simplify porting process (#201)

Co-authored-by: Xu Jun <jun1.xu@intel.com>
This commit is contained in:
Xu Jun
2020-03-16 16:43:57 +08:00
committed by GitHub
parent ef5ceffe71
commit f1a0e75ab7
177 changed files with 2954 additions and 7904 deletions

View File

@ -4,9 +4,6 @@
*/
#include "bh_hashmap.h"
#include "bh_log.h"
#include "bh_thread.h"
typedef struct HashMapElem {
void *key;
@ -65,7 +62,7 @@ bh_hash_map_create(uint32 size, bool use_lock,
map->lock = (korp_mutex*)
((uint8*)map + offsetof(HashMap, elements)
+ sizeof(HashMapElem) * size);
if (vm_mutex_init(map->lock)) {
if (os_mutex_init(map->lock)) {
LOG_ERROR("HashMap create failed: init map lock failed.\n");
BH_FREE(map);
return NULL;
@ -92,7 +89,7 @@ bh_hash_map_insert(HashMap *map, void *key, void *value)
}
if (map->lock) {
vm_mutex_lock(map->lock);
os_mutex_lock(map->lock);
}
index = map->hash_func(key) % map->size;
@ -116,13 +113,13 @@ bh_hash_map_insert(HashMap *map, void *key, void *value)
map->elements[index] = elem;
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return true;
fail:
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return false;
}
@ -140,7 +137,7 @@ bh_hash_map_find(HashMap *map, void *key)
}
if (map->lock) {
vm_mutex_lock(map->lock);
os_mutex_lock(map->lock);
}
index = map->hash_func(key) % map->size;
@ -150,7 +147,7 @@ bh_hash_map_find(HashMap *map, void *key)
if (map->key_equal_func(elem->key, key)) {
value = elem->value;
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return value;
}
@ -158,7 +155,7 @@ bh_hash_map_find(HashMap *map, void *key)
}
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return NULL;
}
@ -176,7 +173,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
}
if (map->lock) {
vm_mutex_lock(map->lock);
os_mutex_lock(map->lock);
}
index = map->hash_func(key) % map->size;
@ -188,7 +185,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
*p_old_value = elem->value;
elem->value = value;
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return true;
}
@ -196,7 +193,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
}
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return false;
}
@ -214,7 +211,7 @@ bh_hash_map_remove(HashMap *map, void *key,
}
if (map->lock) {
vm_mutex_lock(map->lock);
os_mutex_lock(map->lock);
}
index = map->hash_func(key) % map->size;
@ -235,7 +232,7 @@ bh_hash_map_remove(HashMap *map, void *key,
BH_FREE(elem);
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return true;
}
@ -245,7 +242,7 @@ bh_hash_map_remove(HashMap *map, void *key,
}
if (map->lock) {
vm_mutex_unlock(map->lock);
os_mutex_unlock(map->lock);
}
return false;
}
@ -262,7 +259,7 @@ bh_hash_map_destroy(HashMap *map)
}
if (map->lock) {
vm_mutex_lock(map->lock);
os_mutex_lock(map->lock);
}
for (index = 0; index < map->size; index++) {
@ -283,8 +280,8 @@ bh_hash_map_destroy(HashMap *map)
}
if (map->lock) {
vm_mutex_unlock(map->lock);
vm_mutex_destroy(map->lock);
os_mutex_unlock(map->lock);
os_mutex_destroy(map->lock);
}
BH_FREE(map);
return true;