X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ffd-handle.c;h=b2b7efd2369dae22ba3c62d4c32fa5e071713408;hb=HEAD;hp=ddf70afadea98fa9a1aa4414bcee74a73e4c7c1a;hpb=fe489250ce102edf511e99669025934ec9587c63;p=lttng-tools.git diff --git a/src/common/fd-handle.c b/src/common/fd-handle.c deleted file mode 100644 index ddf70afad..000000000 --- a/src/common/fd-handle.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2020 Jérémie Galarneau - * - * SPDX-License-Identifier: LGPL-2.1-only - * - */ - -#include -#include - -#include "fd-handle.h" -#include - -struct fd_handle { - struct urcu_ref ref; - int fd; -}; - -static void fd_handle_release(struct urcu_ref *ref) -{ - int ret; - struct fd_handle *handle = container_of(ref, struct fd_handle, ref); - - assert(handle->fd >= 0); - ret = close(handle->fd); - if (ret == -1) { - PERROR("Failed to close file descriptor of fd_handle upon release: fd = %d", - handle->fd); - } - - free(handle); -} - -LTTNG_HIDDEN -struct fd_handle *fd_handle_create(int fd) -{ - struct fd_handle *handle = NULL; - - if (fd < 0) { - ERR("Attempted to create an fd_handle from an invalid file descriptor: fd = %d", - fd); - goto end; - } - - handle = zmalloc(sizeof(*handle)); - if (!handle) { - PERROR("Failed to allocate fd_handle"); - goto end; - } - - urcu_ref_init(&handle->ref); - handle->fd = fd; - -end: - return handle; -} - -LTTNG_HIDDEN -void fd_handle_get(struct fd_handle *handle) -{ - if (!handle) { - return; - } - - urcu_ref_get(&handle->ref); -} - -LTTNG_HIDDEN -void fd_handle_put(struct fd_handle *handle) -{ - if (!handle) { - return; - } - - urcu_ref_put(&handle->ref, fd_handle_release); -} - -LTTNG_HIDDEN -int fd_handle_get_fd(struct fd_handle *handle) -{ - assert(handle); - return handle->fd; -} - -LTTNG_HIDDEN -struct fd_handle *fd_handle_copy(const struct fd_handle *handle) -{ - struct fd_handle *new_handle = NULL; - const int new_fd = dup(handle->fd); - - if (new_fd < 0) { - PERROR("Failed to duplicate file descriptor while copying fd_handle: fd = %d", handle->fd); - goto end; - } - - new_handle = fd_handle_create(new_fd); -end: - return new_handle; -}