Allow consumer to flush buffers, fix alignment bug
[lttng-ust.git] / liblttng-ust / ust-core.c
1 /*
2 * ust-core.c
3 *
4 * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; only
9 * version 2.1 of the License.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include <lttng/usterr-signal-safe.h>
22 #include <lttng/ust-events.h>
23 #include <stdlib.h>
24
25 CDS_LIST_HEAD(ltt_transport_list);
26
27 volatile enum ust_loglevel ust_loglevel;
28
29 void init_usterr(void)
30 {
31 char *ust_debug;
32
33 if (ust_loglevel == UST_LOGLEVEL_UNKNOWN) {
34 ust_debug = getenv("LTTNG_UST_DEBUG");
35 if (ust_debug)
36 ust_loglevel = UST_LOGLEVEL_DEBUG;
37 else
38 ust_loglevel = UST_LOGLEVEL_NORMAL;
39 }
40 }
41
42 struct ltt_transport *ltt_transport_find(const char *name)
43 {
44 struct ltt_transport *transport;
45
46 cds_list_for_each_entry(transport, &ltt_transport_list, node) {
47 if (!strcmp(transport->name, name))
48 return transport;
49 }
50 return NULL;
51 }
52
53 /**
54 * ltt_transport_register - LTT transport registration
55 * @transport: transport structure
56 *
57 * Registers a transport which can be used as output to extract the data out of
58 * LTTng. Called with ust_lock held.
59 */
60 void ltt_transport_register(struct ltt_transport *transport)
61 {
62 cds_list_add_tail(&transport->node, &ltt_transport_list);
63 }
64
65 /**
66 * ltt_transport_unregister - LTT transport unregistration
67 * @transport: transport structure
68 * Called with ust_lock held.
69 */
70 void ltt_transport_unregister(struct ltt_transport *transport)
71 {
72 cds_list_del(&transport->node);
73 }
This page took 0.031288 seconds and 5 git commands to generate.