Visibility hidden by default
[babeltrace.git] / src / fd-cache / fd-cache.c
index 6d62518997665a743ce9dcf6cad716e876964400..f22e7eb569bf10658f21460367a29b085a6f062c 100644 (file)
@@ -1,33 +1,14 @@
 /*
- * fd-cache.c
- *
- * Babeltrace - File descriptor cache
+ * SPDX-License-Identifier: MIT
  *
  * Copyright 2019 Francis Deslauriers <francis.deslauriers@efficios.com>
  *
- * Author: Francis Deslauriers <francis.deslauriers@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Babeltrace - File descriptor cache
  */
 
+#define BT_LOG_OUTPUT_LEVEL (fdc->log_level)
 #define BT_LOG_TAG "FD-CACHE"
-#include "logging.h"
+#include "logging/log.h"
 
 #include <fcntl.h>
 #include <sys/stat.h>
@@ -101,11 +82,11 @@ void file_key_destroy(gpointer data)
        g_free(fk);
 }
 
-BT_HIDDEN
-int bt_fd_cache_init(struct bt_fd_cache *fdc)
+int bt_fd_cache_init(struct bt_fd_cache *fdc, int log_level)
 {
        int ret = 0;
 
+       fdc->log_level = log_level;
        fdc->cache = g_hash_table_new_full(file_key_hash, file_key_equal,
                file_key_destroy, (GDestroyNotify) fd_cache_handle_internal_destroy);
        if (!fdc->cache) {
@@ -115,20 +96,22 @@ int bt_fd_cache_init(struct bt_fd_cache *fdc)
        return ret;
 }
 
-BT_HIDDEN
 void bt_fd_cache_fini(struct bt_fd_cache *fdc)
 {
-       BT_ASSERT(fdc->cache);
+       if (!fdc->cache) {
+               goto end;
+       }
+
        /*
         * All handle should have been removed for the hashtable at this point.
         */
        BT_ASSERT(g_hash_table_size(fdc->cache) == 0);
        g_hash_table_destroy(fdc->cache);
 
+end:
        return;
 }
 
-BT_HIDDEN
 struct bt_fd_cache_handle *bt_fd_cache_get_handle(struct bt_fd_cache *fdc,
                const char *path)
 {
@@ -169,13 +152,13 @@ struct bt_fd_cache_handle *bt_fd_cache_get_handle(struct bt_fd_cache *fdc,
 
                fd_internal = g_new0(struct fd_handle_internal, 1);
                if (!fd_internal) {
-                       BT_LOGE("Failed to allocate fd internal handle");
+                       BT_LOGE_STR("Failed to allocate internal FD handle.");
                        goto error;
                }
 
                file_key = g_new0(struct file_key, 1);
                if (!fd_internal) {
-                       BT_LOGE("Failed to allocate file key");
+                       BT_LOGE_STR("Failed to allocate file key.");
                        goto error;
                }
 
@@ -211,7 +194,6 @@ end:
        return (struct bt_fd_cache_handle *) fd_internal;
 }
 
-BT_HIDDEN
 void bt_fd_cache_put_handle(struct bt_fd_cache *fdc,
                struct bt_fd_cache_handle *handle)
 {
@@ -233,7 +215,7 @@ void bt_fd_cache_put_handle(struct bt_fd_cache *fdc,
 
                close_ret = close(fd_internal->fd_handle.fd);
                if (close_ret == -1) {
-                       BT_LOGW_ERRNO("Failed to close file descriptor",
+                       BT_LOGE_ERRNO("Failed to close file descriptor",
                                ": fd=%d", fd_internal->fd_handle.fd);
                }
                ret = g_hash_table_remove(fdc->cache, fd_internal->key);
This page took 0.025577 seconds and 4 git commands to generate.