X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftracker.h;h=a45a250bbc4063bacad38d29713f542074a3ad13;hp=1df4a0ce75c94fa5dd8e81031fb330be808618d8;hb=159b042f34366d0fde5dcd73b4231c558922a664;hpb=a8c3ad3e850d45026f22ecdc7ea963b7e923bd08 diff --git a/src/bin/lttng-sessiond/tracker.h b/src/bin/lttng-sessiond/tracker.h index 1df4a0ce7..a45a250bb 100644 --- a/src/bin/lttng-sessiond/tracker.h +++ b/src/bin/lttng-sessiond/tracker.h @@ -1,65 +1,46 @@ -#ifndef _LTT_TRACKER_H -#define _LTT_TRACKER_H - /* - * Copyright (C) 2018 - Mathieu Desnoyers + * Copyright (C) 2018 Mathieu Desnoyers + * Copyright (C) 2020 Jérémie Galarneau * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: GPL-2.0-only * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include -#include -#include -#include - -enum lttng_tracker_list_state { - LTTNG_TRACK_ALL, - LTTNG_TRACK_NONE, - LTTNG_TRACK_LIST, -}; +#ifndef _LTT_TRACKER_H +#define _LTT_TRACKER_H -/* Tracker ID */ -struct lttng_tracker_list_node { - struct lttng_tracker_id id; +#include +#include - struct cds_list_head list_node; - struct cds_lfht_node ht_node; - struct rcu_head rcu_head; -}; +struct process_attr_tracker; -struct lttng_tracker_list { - struct cds_list_head list_head; - /* Hash table for O(1) removal lookup. */ - struct cds_lfht *ht; - enum lttng_tracker_list_state state; +enum process_attr_tracker_status { + PROCESS_ATTR_TRACKER_STATUS_OK, + PROCESS_ATTR_TRACKER_STATUS_ERROR, + PROCESS_ATTR_TRACKER_STATUS_EXISTS, + PROCESS_ATTR_TRACKER_STATUS_MISSING, + PROCESS_ATTR_TRACKER_STATUS_INVALID_TRACKING_POLICY, }; -struct lttng_tracker_list *lttng_tracker_list_create(void); -void lttng_tracker_list_destroy(struct lttng_tracker_list *tracker_list); - -int lttng_tracker_list_add(struct lttng_tracker_list *tracker_list, - const struct lttng_tracker_id *id); -int lttng_tracker_list_remove(struct lttng_tracker_list *tracker_list, - const struct lttng_tracker_id *id); - -int lttng_tracker_id_lookup_string(enum lttng_tracker_type tracker_type, - const struct lttng_tracker_id *id, - int *result); -ssize_t lttng_tracker_id_get_list(const struct lttng_tracker_list *tracker_list, - struct lttng_tracker_id **_ids); -int lttng_tracker_id_set_list(struct lttng_tracker_list *tracker_list, - struct lttng_tracker_id *_ids, - size_t count); +struct process_attr_tracker *process_attr_tracker_create(void); +void process_attr_tracker_destroy(struct process_attr_tracker *tracker); + +enum lttng_tracking_policy process_attr_tracker_get_tracking_policy( + const struct process_attr_tracker *tracker); +int process_attr_tracker_set_tracking_policy( + struct process_attr_tracker *tracker, + enum lttng_tracking_policy tracking_policy); + +enum process_attr_tracker_status process_attr_tracker_inclusion_set_add_value( + struct process_attr_tracker *tracker, + const struct process_attr_value *value); +enum process_attr_tracker_status +process_attr_tracker_inclusion_set_remove_value( + struct process_attr_tracker *tracker, + const struct process_attr_value *value); + +enum process_attr_tracker_status process_attr_tracker_get_inclusion_set( + const struct process_attr_tracker *tracker, + struct lttng_process_attr_values **values); #endif /* _LTT_TRACKER_H */