+++ /dev/null
-/*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
- * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * SPDX-License-Identifier: GPL-2.0-only
- *
- */
-
-#define _LGPL_SOURCE
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <common/error.h>
-
-#include "utils.h"
-#include "snapshot.h"
-#include "lttng-sessiond.h"
-
-int the_ht_cleanup_pipe[2] = {-1, -1};
-
-/*
- * Write to writable pipe used to notify a thread.
- */
-int notify_thread_pipe(int wpipe)
-{
- ssize_t ret;
-
- /* Ignore if the pipe is invalid. */
- if (wpipe < 0) {
- return 0;
- }
-
- ret = lttng_write(wpipe, "!", 1);
- if (ret < 1) {
- PERROR("write poll pipe");
- }
-
- return (int) ret;
-}
-
-void ht_cleanup_push(struct lttng_ht *ht)
-{
- ssize_t ret;
- int fd = the_ht_cleanup_pipe[1];
-
- if (!ht) {
- return;
- }
- if (fd < 0)
- return;
- ret = lttng_write(fd, &ht, sizeof(ht));
- if (ret < sizeof(ht)) {
- PERROR("write ht cleanup pipe %d", fd);
- if (ret < 0) {
- ret = -errno;
- }
- goto error;
- }
-
- /* All good. Don't send back the write positive ret value. */
- ret = 0;
-error:
- LTTNG_ASSERT(!ret);
-}
-
-int loglevels_match(int a_loglevel_type, int a_loglevel_value,
- int b_loglevel_type, int b_loglevel_value, int loglevel_all_type)
-{
- int match = 1;
-
- if (a_loglevel_type == b_loglevel_type) {
- /* Same loglevel type. */
- if (b_loglevel_type != loglevel_all_type) {
- /*
- * Loglevel value must also match since the loglevel
- * type is not all.
- */
- if (a_loglevel_value != b_loglevel_value) {
- match = 0;
- }
- }
- } else {
- /* Loglevel type is different: no match. */
- match = 0;
- }
-
- return match;
-}
-
-const char *session_get_base_path(const struct ltt_session *session)
-{
- return consumer_output_get_base_path(session->consumer);
-}
-
-const char *consumer_output_get_base_path(const struct consumer_output *output)
-{
- return output->type == CONSUMER_DST_LOCAL ?
- output->dst.session_root_path :
- output->dst.net.base_dir;
-}