X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdin.h;h=8caee4cb316e876e81c085474c81bcaa6bba1805;hp=753cef5696570fc4eeac99a879e7f45d0f9e498c;hb=ac1f19d550a81c8408c8fce2e237996c950253ab;hpb=0610638110061ff05670a6c497b371bf2e1d4d0f diff --git a/stdin.h b/stdin.h index 753cef56..8caee4cb 100644 --- a/stdin.h +++ b/stdin.h @@ -1,10 +1,19 @@ +/* Copyright (C) 2006 Andre Noll , see file COPYING. */ + +/** \file stdin.h The standard in task structure. */ + +/** The task structure used for reading from stdin. */ struct stdin_task { - char *buf; - size_t bufsize; - size_t loaded; - struct task task; - int eof; + /** The task structure. */ + struct task *task; + /** Stdin is always the root of a buffer tree. */ + struct btr_node *btrn; + /** Use a buffer pool to minimize memcpy due to alignment problems. */ + struct btr_pool *btrp; + /** The descriptor flags of STDIN at startup. */ + int fd_flags; + /** Whether we have to set STDIN to nonblocking mode. */ + bool must_set_nonblock_flag; }; -void stdin_pre_select(struct sched *s, struct task *t); -void stdin_post_select(struct sched *s, struct task *t); +void stdin_task_register(struct stdin_task *sit, struct sched *s);