+struct liblttd_instance * liblttd_new_instance(
+ struct liblttd_callbacks *callbacks, char *channel_path,
+ unsigned long n_threads, int flight_only, int normal_only, int verbose)
+{
+ struct liblttd_instance * instance;
+ if(!channel_path || !callbacks) return NULL;
+ if(n_threads == 0) n_threads = 1;
+ if(flight_only && normal_only) return NULL;
+
+ instance = malloc(sizeof(struct liblttd_instance));
+ if(!instance) return NULL;
+
+ instance->callbacks = callbacks;
+
+ instance->inotify_fd = -1;
+
+ instance->fd_pairs.pair = NULL;
+ instance->fd_pairs.num_pairs = 0;
+
+ instance->inotify_watch_array.elem = NULL;
+ instance->inotify_watch_array.num = 0;
+
+ pthread_rwlock_init(&instance->fd_pairs_lock, NULL);
+
+ strncpy(instance->channel_name, channel_path, PATH_MAX -1);
+ instance->num_threads = n_threads;
+ instance->dump_flight_only = flight_only;
+ instance->dump_normal_only = normal_only;
+ instance->verbose_mode = verbose;
+
+ return instance;
+}
+
+int liblttd_stop_instance(struct liblttd_instance *instance)
+{
+ instance->quit_program = 1;