.tell = pipe_tell,
.eof = pipe_eof,
};
+
+static size_t lbx_read(void *buf, size_t size, void *handle)
+{
+ return lbx_file_read(handle, buf, size);
+}
+
+static int lbx_seek(void *handle, long offset, int whence)
+{
+ return lbx_file_seek(handle, offset, whence);
+}
+
+static long lbx_tell(void *handle)
+{
+ return lbx_file_tell(handle);
+}
+
+static int lbx_eof(void *handle)
+{
+ return lbx_file_eof(handle);
+}
+
+const struct lbx_file_ops lbx_arch_fops = {
+ .read = lbx_read,
+ .seek = lbx_seek,
+ .tell = lbx_tell,
+ .eof = lbx_eof,
+};
/* I/O operations for un-seekable files (e.g. pipes). */
extern const struct lbx_file_ops lbx_pipe_fops;
+/* I/O operations for LBX archive members. */
+extern const struct lbx_file_ops lbx_arch_fops;
+
/* Opaque */
typedef struct lbx_state LBX;
typedef struct lbx_file_state LBXfile;