port: tests: Add sys/wait.h include for FreeBSD
[babeltrace.git] / src / compat / mman.c
index 72c4cc285aabd22b0f855a50950d66067bbb30fc..1051913d16d3ac4f0275df854b470d1068bd2b45 100644 (file)
@@ -31,6 +31,7 @@
 #include "logging/log.h"
 
 #include "common/macros.h"
+#include "common/common.h"
 
 #ifdef __APPLE__
 /*
@@ -75,7 +76,7 @@ struct mmap_mapping *mapping_create(int log_level)
        struct mmap_mapping *mapping;
 
        mapping = malloc(sizeof(struct mmap_mapping));
-       if (mapping != NULL) {
+       if (mapping) {
                mapping->file_handle = NULL;
                mapping->map_handle = NULL;
                mapping->log_level = log_level;
@@ -90,11 +91,11 @@ void mapping_clean(struct mmap_mapping *mapping)
        if (mapping) {
                if (!CloseHandle(mapping->map_handle)) {
                        BT_LOGF_STR("Failed to close mmap map_handle.");
-                       abort();
+                       bt_common_abort();
                }
                if (!CloseHandle(mapping->file_handle)) {
                        BT_LOGF_STR("Failed to close mmap file_handle.");
-                       abort();
+                       bt_common_abort();
                }
                free(mapping);
                mapping = NULL;
@@ -112,7 +113,7 @@ void addr_clean(void *addr)
                 */
                BT_LOG_WRITE_CUR_LVL(BT_LOG_FATAL, BT_LOG_FATAL, BT_LOG_TAG,
                        "Failed to unmap mmap mapping.");
-               abort();
+               bt_common_abort();
        }
 }
 
@@ -121,7 +122,7 @@ void mmap_lock(int log_level)
 {
        if (pthread_mutex_lock(&mmap_mutex)) {
                BT_LOG_WRITE_CUR_LVL(BT_LOG_FATAL, log_level, BT_LOG_TAG, "Failed to acquire mmap_mutex.");
-               abort();
+               bt_common_abort();
        }
 }
 
@@ -130,7 +131,7 @@ void mmap_unlock(int log_level)
 {
        if (pthread_mutex_unlock(&mmap_mutex)) {
                BT_LOG_WRITE_CUR_LVL(BT_LOG_FATAL, log_level, BT_LOG_TAG, "Failed to release mmap_mutex.");
-               abort();
+               bt_common_abort();
        }
 }
 
@@ -283,7 +284,7 @@ int bt_munmap(void *addr, size_t length)
        mmap_lock(log_level);
 
        /* Check if the mapping exists in the hashtable. */
-       if (g_hash_table_lookup(mmap_mappings, addr) == NULL) {
+       if (!g_hash_table_lookup(mmap_mappings, addr)) {
                _set_errno(EINVAL);
                ret = -1;
                goto end;
@@ -292,7 +293,7 @@ int bt_munmap(void *addr, size_t length)
        /* Remove it. */
        if (!g_hash_table_remove(mmap_mappings, addr)) {
                BT_LOGF_STR("Failed to remove mapping from hashtable.");
-               abort();
+               bt_common_abort();
        }
 
 end:
@@ -300,4 +301,17 @@ end:
        return ret;
 }
 
+BT_HIDDEN
+size_t bt_mmap_get_offset_align_size(int log_level)
+{
+       SYSTEM_INFO sysinfo;
+
+       GetNativeSystemInfo(&sysinfo);
+       BT_LOG_WRITE_CUR_LVL(BT_LOG_DEBUG, log_level, BT_LOG_TAG,
+               "Allocator granularity is %lu.",
+               sysinfo.dwAllocationGranularity);
+
+       return sysinfo.dwAllocationGranularity;
+}
+
 #endif
This page took 0.025785 seconds and 4 git commands to generate.