X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fagent.hpp;fp=src%2Fcommon%2Fsessiond-comm%2Fagent.hpp;h=9fcb1f34956be67f4a5329e4a8c5cd9d2158a10f;hp=0000000000000000000000000000000000000000;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/src/common/sessiond-comm/agent.hpp b/src/common/sessiond-comm/agent.hpp new file mode 100644 index 000000000..9fcb1f349 --- /dev/null +++ b/src/common/sessiond-comm/agent.hpp @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2013 David Goulet + * Copyright (C) 2016 Jérémie Galarneau + * + * SPDX-License-Identifier: GPL-2.0-only + * + */ + +#ifndef AGENT_COMM +#define AGENT_COMM + +#include + +#include +#include + +/* + * Command value passed in the header. + */ +enum lttcomm_agent_command { + AGENT_CMD_LIST = 1, + AGENT_CMD_ENABLE = 2, + AGENT_CMD_DISABLE = 3, + AGENT_CMD_REG_DONE = 4, /* End registration process. */ + AGENT_CMD_APP_CTX_ENABLE = 5, + AGENT_CMD_APP_CTX_DISABLE = 6, +}; + +/* + * Return codes from the agent. + */ +enum lttcomm_agent_ret_code { + /* Success, assumed to be the first entry */ + AGENT_RET_CODE_SUCCESS = 1, + /* Invalid command */ + AGENT_RET_CODE_INVALID = 2, + /* Unknown logger name */ + AGENT_RET_CODE_UNKNOWN_NAME = 3, + AGENT_RET_CODE_NR, +}; + +/* + * Agent application communication header. + */ +struct lttcomm_agent_hdr { + uint64_t data_size; /* data size following this header */ + uint32_t cmd; /* Enum of agent command. */ + uint32_t cmd_version; /* command version */ +} LTTNG_PACKED; + +/* + * Enable event command payload. Will be immediately followed by the + * variable-length string representing the filter expression. + */ +struct lttcomm_agent_enable_event { + uint32_t loglevel_value; + uint32_t loglevel_type; + char name[LTTNG_SYMBOL_NAME_LEN]; + uint32_t filter_expression_length; +} LTTNG_PACKED; + +/* + * Disable event command payload. + */ +struct lttcomm_agent_disable_event { + char name[LTTNG_SYMBOL_NAME_LEN]; +} LTTNG_PACKED; + +/* + * Generic reply coming from the agent. + */ +struct lttcomm_agent_generic_reply { + uint32_t ret_code; +} LTTNG_PACKED; + +/* + * List command reply header. + */ +struct lttcomm_agent_list_reply_hdr { + uint32_t ret_code; + uint32_t data_size; +} LTTNG_PACKED; + +/* + * List command reply payload coming from the agent. + */ +struct lttcomm_agent_list_reply { + uint32_t nb_event; + /* List of event name each of them ending by a NULL byte. */ + char payload[]; +} LTTNG_PACKED; + +#endif /* AGENT_COMM */