summaryrefslogtreecommitdiffstats
path: root/src/buffio.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2003-12-17 22:11:57 +0000
committerLennart Poettering <lennart@poettering.net>2003-12-17 22:11:57 +0000
commitc79399f437e9268203768ab65b32c20f29093b27 (patch)
tree4fdebb22251b0a80faf8011436829a3521e7aad9 /src/buffio.h
parentd918d9b2c4fc9eaa58bcd9a266a6a0330c88391c (diff)
much further work
git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@7 dbf6933d-3bce-0310-9bcc-ed052ba35b35
Diffstat (limited to 'src/buffio.h')
-rw-r--r--src/buffio.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/buffio.h b/src/buffio.h
new file mode 100644
index 0000000..461bff9
--- /dev/null
+++ b/src/buffio.h
@@ -0,0 +1,31 @@
+#ifndef foobuffiohfoo
+#define foobuffiohfoo
+
+struct buffio {
+ int fd;
+
+ uint8_t *input_buf;
+ size_t input_index, input_length;
+
+ uint8_t *output_buf;
+ size_t output_index, output_length;
+
+ int b_read_cb, b_write_cb;
+
+ void *user;
+ void (*eof_cb) (struct buffio *b, void *user);
+ void (*output_cb) (struct buffio *b, void *user);
+ void (*input_cb) (struct buffio *b, void *user);
+};
+
+struct buffio buffio_new(int fd);
+void buffio_free(struct buffio *b);
+
+int buffio_write(struct buffio *b, const uint8_t *d, size_t l);
+int buffio_print(struct buffio *b, const char *s);
+
+int buffio_command(struct buffio *b, const char *c);
+void buffio_flush_input(struct buffio *b);
+int buffio_find_input(struct buffio *b, const char *c);
+
+#endif