summaryrefslogtreecommitdiffstats
path: root/crypto/openssh/buffer.h
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2000-02-24 14:29:47 +0000
committermarkm <markm@FreeBSD.org>2000-02-24 14:29:47 +0000
commitfc557ff7d97438559e69347575f5aa8ef03a5f50 (patch)
treec90ea5392aa03e7619696143bde781f2bf5c0dff /crypto/openssh/buffer.h
downloadFreeBSD-src-fc557ff7d97438559e69347575f5aa8ef03a5f50.zip
FreeBSD-src-fc557ff7d97438559e69347575f5aa8ef03a5f50.tar.gz
Vendor import of OpenSSH.
Diffstat (limited to 'crypto/openssh/buffer.h')
-rw-r--r--crypto/openssh/buffer.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/crypto/openssh/buffer.h b/crypto/openssh/buffer.h
new file mode 100644
index 0000000..04efc25
--- /dev/null
+++ b/crypto/openssh/buffer.h
@@ -0,0 +1,68 @@
+/*
+ *
+ * buffer.h
+ *
+ * Author: Tatu Ylonen <ylo@cs.hut.fi>
+ *
+ * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
+ * All rights reserved
+ *
+ * Created: Sat Mar 18 04:12:25 1995 ylo
+ *
+ * Code for manipulating FIFO buffers.
+ *
+ */
+
+/* RCSID("$Id: buffer.h,v 1.3 1999/11/24 19:53:44 markus Exp $"); */
+
+#ifndef BUFFER_H
+#define BUFFER_H
+
+typedef struct {
+ char *buf; /* Buffer for data. */
+ unsigned int alloc; /* Number of bytes allocated for data. */
+ unsigned int offset; /* Offset of first byte containing data. */
+ unsigned int end; /* Offset of last byte containing data. */
+} Buffer;
+/* Initializes the buffer structure. */
+void buffer_init(Buffer * buffer);
+
+/* Frees any memory used for the buffer. */
+void buffer_free(Buffer * buffer);
+
+/* Clears any data from the buffer, making it empty. This does not actually
+ zero the memory. */
+void buffer_clear(Buffer * buffer);
+
+/* Appends data to the buffer, expanding it if necessary. */
+void buffer_append(Buffer * buffer, const char *data, unsigned int len);
+
+/*
+ * Appends space to the buffer, expanding the buffer if necessary. This does
+ * not actually copy the data into the buffer, but instead returns a pointer
+ * to the allocated region.
+ */
+void buffer_append_space(Buffer * buffer, char **datap, unsigned int len);
+
+/* Returns the number of bytes of data in the buffer. */
+unsigned int buffer_len(Buffer * buffer);
+
+/* Gets data from the beginning of the buffer. */
+void buffer_get(Buffer * buffer, char *buf, unsigned int len);
+
+/* Consumes the given number of bytes from the beginning of the buffer. */
+void buffer_consume(Buffer * buffer, unsigned int bytes);
+
+/* Consumes the given number of bytes from the end of the buffer. */
+void buffer_consume_end(Buffer * buffer, unsigned int bytes);
+
+/* Returns a pointer to the first used byte in the buffer. */
+char *buffer_ptr(Buffer * buffer);
+
+/*
+ * Dumps the contents of the buffer to stderr in hex. This intended for
+ * debugging purposes only.
+ */
+void buffer_dump(Buffer * buffer);
+
+#endif /* BUFFER_H */
OpenPOWER on IntegriCloud