X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=filter.h;h=8b5e8bc9ec8453cabc2833b88e9a14443c33d474;hb=7c70a152ffdbeae114ed71c4e7d10528198642bc;hp=23f47f4498049ddd39648033e4fbaa13a9ef3c53;hpb=4f01c486bb70a27f614cdc9c07a2b8d653db7605;p=paraslash.git diff --git a/filter.h b/filter.h index 23f47f44..8b5e8bc9 100644 --- a/filter.h +++ b/filter.h @@ -32,6 +32,9 @@ struct filter_node { struct list_head callbacks; /** A pointer to the configuration of this instance. */ void *conf; + struct btr_node *btrn; + struct task task; + size_t min_iqs; }; /** Describes one running instance of a chain of filters */ @@ -191,13 +194,18 @@ struct filter { /** The help texts for this filter. */ struct ggo_help help; + + void (*pre_select)(struct sched *s, struct task *t); + void (*post_select)(struct sched *s, struct task *t); + btr_command_handler execute; }; void close_filters(struct filter_chain *fc); void filter_init(void); int check_filter_arg(char *filter_arg, void **conf); -void filter_pre_select(__a_unused struct sched *s, struct task *t); +void filter_post_select(__a_unused struct sched *s, struct task *t); void print_filter_helps(int detailed); +int prepare_filter_node(struct filter_node *fn); static inline void write_int16_host_endian(char *buf, int val) {