Fix: missing include can cause structures to not be packed
[lttng-tools.git] / src / common / sessiond-comm / agent.h
CommitLineData
f20baf8e
DG
1/*
2 * Copyright (C) 2013 - David Goulet <dgoulet@efficios.com>
bdf64013 3 * Copyright (C) 2016 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
f20baf8e
DG
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
022d91ba
DG
19#ifndef AGENT_COMM
20#define AGENT_COMM
f20baf8e 21
f20baf8e
DG
22#include <stdint.h>
23
aa52c986 24#include <common/macros.h>
f20baf8e
DG
25#include <lttng/lttng.h>
26
27/*
2f2540d7 28 * Command value passed in the header.
f20baf8e 29 */
022d91ba 30enum lttcomm_agent_command {
bdf64013
JG
31 AGENT_CMD_LIST = 1,
32 AGENT_CMD_ENABLE = 2,
33 AGENT_CMD_DISABLE = 3,
34 AGENT_CMD_REG_DONE = 4, /* End registration process. */
35 AGENT_CMD_APP_CTX_ENABLE = 5,
36 AGENT_CMD_APP_CTX_DISABLE = 6,
f20baf8e
DG
37};
38
39/*
56cc432e 40 * Return codes from the agent.
f20baf8e 41 */
022d91ba 42enum lttcomm_agent_ret_code {
aa277e3e 43 /* Success, assumed to be the first entry */
bdf64013 44 AGENT_RET_CODE_SUCCESS = 1,
aa277e3e 45 /* Invalid command */
bdf64013 46 AGENT_RET_CODE_INVALID = 2,
aa277e3e 47 /* Unknown logger name */
bdf64013 48 AGENT_RET_CODE_UNKNOWN_NAME = 3,
23c2bd47 49 AGENT_RET_CODE_NR,
f20baf8e
DG
50};
51
52/*
022d91ba 53 * Agent application communication header.
f20baf8e 54 */
022d91ba 55struct lttcomm_agent_hdr {
f20baf8e 56 uint64_t data_size; /* data size following this header */
022d91ba 57 uint32_t cmd; /* Enum of agent command. */
f20baf8e
DG
58 uint32_t cmd_version; /* command version */
59} LTTNG_PACKED;
60
61/*
a0ba721c
AM
62 * Enable event command payload. Will be immediately followed by the
63 * variable-length string representing the filter expression.
f20baf8e 64 */
bdf64013 65struct lttcomm_agent_enable_event {
2106efa0 66 uint32_t loglevel_value;
b2064f54 67 uint32_t loglevel_type;
f20baf8e 68 char name[LTTNG_SYMBOL_NAME_LEN];
a0ba721c 69 uint32_t filter_expression_length;
f20baf8e
DG
70} LTTNG_PACKED;
71
72/*
73 * Disable event command payload.
74 */
bdf64013 75struct lttcomm_agent_disable_event {
f20baf8e
DG
76 char name[LTTNG_SYMBOL_NAME_LEN];
77} LTTNG_PACKED;
78
79/*
56cc432e 80 * Generic reply coming from the agent.
f20baf8e 81 */
022d91ba 82struct lttcomm_agent_generic_reply {
f20baf8e
DG
83 uint32_t ret_code;
84} LTTNG_PACKED;
85
86/*
87 * List command reply header.
88 */
022d91ba 89struct lttcomm_agent_list_reply_hdr {
f20baf8e
DG
90 uint32_t ret_code;
91 uint32_t data_size;
92} LTTNG_PACKED;
93
94/*
56cc432e 95 * List command reply payload coming from the agent.
f20baf8e 96 */
022d91ba 97struct lttcomm_agent_list_reply {
f20baf8e
DG
98 uint32_t nb_event;
99 /* List of event name each of them ending by a NULL byte. */
100 char payload[];
101} LTTNG_PACKED;
102
022d91ba 103#endif /* AGENT_COMM */
This page took 0.042477 seconds and 4 git commands to generate.