+struct channel_trace_fd {
+ struct fd_pair *pair;
+ int num_pairs;
+};
+
+struct inotify_watch {
+ int wd;
+ char path_channel[PATH_MAX];
+ char *base_path_channel;
+};
+
+struct inotify_watch_array {
+ struct inotify_watch *elem;
+ int num;
+};
+
+struct liblttd_callbacks;
+
+/**
+ * struct liblttd_instance - Contains the data associated with a trace instance.
+ * The lib user can read but MUST NOT change any attributes but callbacks.
+ * @callbacks: Contains the necessary callbacks for a tracing session.
+ */
+struct liblttd_instance {
+ struct liblttd_callbacks *callbacks;
+
+ int inotify_fd;
+ struct channel_trace_fd fd_pairs;
+ struct inotify_watch_array inotify_watch_array;
+
+ /* protects fd_pairs and inotify_watch_array */
+ pthread_rwlock_t fd_pairs_lock;
+
+ char channel_name[PATH_MAX];
+ unsigned long num_threads;
+ int quit_program;
+ int dump_flight_only;
+ int dump_normal_only;
+ int verbose_mode;
+};