From 359d71e90050a8b83f7bc7d2ecd4ff29c477cc22 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 26 Jun 2022 22:51:27 +0200 Subject: Cleanup: rename libfstream to libio, split headers Signed-off-by: David Oberhollenzer --- lib/io/internal.h | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 lib/io/internal.h (limited to 'lib/io/internal.h') diff --git a/lib/io/internal.h b/lib/io/internal.h new file mode 100644 index 0000000..4ac38f5 --- /dev/null +++ b/lib/io/internal.h @@ -0,0 +1,81 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * internal.h + * + * Copyright (C) 2019 David Oberhollenzer + */ +#ifndef INTERNAL_H +#define INTERNAL_H + +#include "config.h" +#include "compat.h" +#include "io/istream.h" +#include "io/ostream.h" +#include "io/file.h" +#include "io/xfrm.h" +#include "io/std.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BUFSZ (262144) + +typedef struct ostream_comp_t { + ostream_t base; + + ostream_t *wrapped; + + size_t inbuf_used; + + sqfs_u8 inbuf[BUFSZ]; + sqfs_u8 outbuf[BUFSZ]; + + int (*flush_inbuf)(struct ostream_comp_t *ostrm, bool finish); + + void (*cleanup)(struct ostream_comp_t *ostrm); +} ostream_comp_t; + +typedef struct istream_comp_t { + istream_t base; + + istream_t *wrapped; + + sqfs_u8 uncompressed[BUFSZ]; + + bool eof; + + void (*cleanup)(struct istream_comp_t *strm); +} istream_comp_t; + +#ifdef __cplusplus +extern "C" { +#endif + +SQFS_INTERNAL ostream_comp_t *ostream_gzip_create(const char *filename); + +SQFS_INTERNAL ostream_comp_t *ostream_xz_create(const char *filename); + +SQFS_INTERNAL ostream_comp_t *ostream_zstd_create(const char *filename); + +SQFS_INTERNAL ostream_comp_t *ostream_bzip2_create(const char *filename); + +SQFS_INTERNAL istream_comp_t *istream_gzip_create(const char *filename); + +SQFS_INTERNAL istream_comp_t *istream_xz_create(const char *filename); + +SQFS_INTERNAL istream_comp_t *istream_zstd_create(const char *filename); + +SQFS_INTERNAL istream_comp_t *istream_bzip2_create(const char *filename); + +#ifdef __cplusplus +} +#endif + +#endif /* INTERNAL_H */ -- cgit v1.2.3