* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef _JUL_H
-#define _JUL_H
+#ifndef LTTNG_SESSIOND_JUL_H
+#define LTTNG_SESSIOND_JUL_H
#define _GNU_SOURCE
#include <inttypes.h>
};
/*
- * JUL application object created after a successful registration. This object
- * is kept inside an UST app.
+ * JUL application object created after a successful registration. This
+ * object is linked to its associated UST app by their PID through hash
+ * table lookups.
*/
struct jul_app {
/*
*/
struct lttcomm_sock *sock;
- /*
- * Associated UST app. socket. To get a reference to the ust application
- * object corresponding to that socket, a lookup MUST be done each time
- * since there is important synchronization issue for the lockless hash
- * table shared accross multiple threads.
- */
- int ust_app_sock;
-
/* Initialized with the JUL sock value. */
struct lttng_ht_node_ulong node;
};
* for it.
*/
struct jul_domain {
+ /*
+ * This indicates if that domain is being used meaning if at least one
+ * event has been at some point in time added to it. This is used so when
+ * listing domains for a session, we can tell or not if the JUL is actually
+ * enabled.
+ */
+ unsigned int being_used:1;
/*
* Contains JUL event indexed by name.
*/
void jul_add_app(struct jul_app *app);
void jul_delete_app(struct jul_app *app);
struct jul_app *jul_find_app_by_sock(int sock);
-void jul_attach_app(struct jul_app *japp);
-void jul_detach_app(struct jul_app *app);
void jul_destroy_app(struct jul_app *app);
/* JUL action API */
int jul_enable_event(struct jul_event *event);
int jul_disable_event(struct jul_event *event);
void jul_update(struct jul_domain *domain, int sock);
+int jul_list_events(struct lttng_event **events);
-#endif /* _JUL_H */
+#endif /* LTTNG_SESSIOND_JUL_H */