Notify java agent of enabled application contexts
[lttng-tools.git] / src / common / sessiond-comm / agent.h
1 /*
2 * Copyright (C) 2013 - David Goulet <dgoulet@efficios.com>
3 * Copyright (C) 2016 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License, version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc., 51
16 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19 #ifndef AGENT_COMM
20 #define AGENT_COMM
21
22 #include <stdint.h>
23
24 #include <lttng/lttng.h>
25
26 /*
27 * Command value passed in the header.
28 */
29 enum lttcomm_agent_command {
30 AGENT_CMD_LIST = 1,
31 AGENT_CMD_ENABLE = 2,
32 AGENT_CMD_DISABLE = 3,
33 AGENT_CMD_REG_DONE = 4, /* End registration process. */
34 AGENT_CMD_APP_CTX_ENABLE = 5,
35 AGENT_CMD_APP_CTX_DISABLE = 6,
36 };
37
38 /*
39 * Return codes from the agent.
40 */
41 enum lttcomm_agent_ret_code {
42 /* Success, assumed to be the first entry */
43 AGENT_RET_CODE_SUCCESS = 1,
44 /* Invalid command */
45 AGENT_RET_CODE_INVALID = 2,
46 /* Unknown logger name */
47 AGENT_RET_CODE_UNKNOWN_NAME = 3,
48 AGENT_RET_CODE_NR,
49 };
50
51 /*
52 * Agent application communication header.
53 */
54 struct lttcomm_agent_hdr {
55 uint64_t data_size; /* data size following this header */
56 uint32_t cmd; /* Enum of agent command. */
57 uint32_t cmd_version; /* command version */
58 } LTTNG_PACKED;
59
60 /*
61 * Enable event command payload. Will be immediately followed by the
62 * variable-length string representing the filter expression.
63 */
64 struct lttcomm_agent_enable_event {
65 uint32_t loglevel_value;
66 uint32_t loglevel_type;
67 char name[LTTNG_SYMBOL_NAME_LEN];
68 uint32_t filter_expression_length;
69 } LTTNG_PACKED;
70
71 /*
72 * Disable event command payload.
73 */
74 struct lttcomm_agent_disable_event {
75 char name[LTTNG_SYMBOL_NAME_LEN];
76 } LTTNG_PACKED;
77
78 /*
79 * Generic reply coming from the agent.
80 */
81 struct lttcomm_agent_generic_reply {
82 uint32_t ret_code;
83 } LTTNG_PACKED;
84
85 /*
86 * List command reply header.
87 */
88 struct lttcomm_agent_list_reply_hdr {
89 uint32_t ret_code;
90 uint32_t data_size;
91 } LTTNG_PACKED;
92
93 /*
94 * List command reply payload coming from the agent.
95 */
96 struct lttcomm_agent_list_reply {
97 uint32_t nb_event;
98 /* List of event name each of them ending by a NULL byte. */
99 char payload[];
100 } LTTNG_PACKED;
101
102 #endif /* AGENT_COMM */
This page took 0.031843 seconds and 4 git commands to generate.