/*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006 Andre Noll <maan@tuebingen.mpg.de>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
#include <regex.h>
#include <sys/types.h>
+#include <lopsub.h>
+#include "write_cmd.lsg.h"
#include "para.h"
#include "fd.h"
#include "string.h"
#include "list.h"
#include "sched.h"
-#include "ggo.h"
#include "buffer_tree.h"
#include "write.h"
-#include "write_common.h"
-#include "osx_write.cmdline.h"
#include "ipc.h"
#include "error.h"
return ret;
}
-__malloc static void *osx_write_parse_config_or_die(int argc, char **argv)
-{
- struct osx_write_args_info *conf = para_calloc(sizeof(*conf));
-
- /* exits on errors */
- osx_write_cmdline_parser(argc, argv, conf);
- return conf;
-}
-
-static void osx_free_config(void *conf)
-{
- osx_write_cmdline_parser_free(conf);
-}
-
static void osx_write_close(struct writer_node *wn)
{
struct private_osx_write_data *powd = wn->private_data;
return btr_get_input_queue_size(powd->callback_btrn) != 0;
}
-static void osx_write_pre_select(struct sched *s, struct task *t)
+static void osx_write_pre_select(struct sched *s, void *context)
{
- struct writer_node *wn = container_of(t, struct writer_node, task);
+ struct writer_node *wn = context;
struct private_osx_write_data *powd = wn->private_data;
int ret;
bool drain_delay_nec = false;
sched_request_timeout_ms(50, s);
}
-static int osx_write_post_select(__a_unused struct sched *s, struct task *t)
+static int osx_write_post_select(__a_unused struct sched *s, void *context)
{
- struct writer_node *wn = container_of(t, struct writer_node, task);
+ struct writer_node *wn = context;
struct private_osx_write_data *powd = wn->private_data;
struct btr_node *btrn = wn->btrn;
int ret;
- ret = task_get_notification(t);
+ ret = task_get_notification(wn->task);
if (ret < 0)
goto fail;
if (!powd) {
return ret;
}
-/**
- * The init function of the osx writer.
- *
- * \param w Filled in by the function.
- */
-void osx_write_init(struct writer *w)
-{
- struct osx_write_args_info dummy;
-
- osx_write_cmdline_parser_init(&dummy);
- w->close = osx_write_close;
- w->pre_select = osx_write_pre_select;
- w->post_select = osx_write_post_select;
- w->parse_config_or_die = osx_write_parse_config_or_die;
- w->free_config = osx_free_config;
- w->help = (struct ggo_help) {
- .short_help = osx_write_args_info_help,
- .detailed_help = osx_write_args_info_detailed_help
- };
- osx_write_cmdline_parser_free(&dummy);
-}
+struct writer lsg_write_cmd_com_osx_user_data = {
+ .close = osx_write_close,
+ .pre_select = osx_write_pre_select,
+ .post_select = osx_write_post_select,
+};