#include <common/hashtable/hashtable.h>
#include <lttng/lttng.h>
+/* Agent protocol version that is verified during the agent registration. */
+#define AGENT_MAJOR_VERSION 1
+#define AGENT_MINOR_VERSION 0
+
/*
* Hash table that contains the agent app created upon registration indexed by
- * socket.
+ * socket. Global to the session daemon.
*/
-struct lttng_ht *agent_apps_ht_by_sock;
+extern struct lttng_ht *agent_apps_ht_by_sock;
struct agent_ht_key {
const char *name;
/* This maps to a lttng_domain_type. */
uint32_t domain;
uint32_t pid;
+ uint32_t major_version;
+ uint32_t minor_version;
};
/*
struct lttng_ht_node_str node;
/* Bytecode filter associated with the event . NULL if none. */
+ char *filter_expression;
struct lttng_filter_bytecode *filter;
};
struct lttng_ht_node_u64 node;
};
-/* Setup agent subsystem. */
-int agent_setup(void);
+/* Allocate agent apps hash table */
+int agent_app_ht_alloc(void);
+/* Clean-up agent apps hash table */
+void agent_app_ht_clean(void);
/* Initialize an already allocated agent domain. */
int agent_init(struct agent *agt);
void agent_delete_app(struct agent_app *app);
struct agent_app *agent_find_app_by_sock(int sock);
void agent_destroy_app(struct agent_app *app);
+void agent_destroy_app_by_sock(int sock);
int agent_send_registration_done(struct agent_app *app);
/* Agent action API */