xen/decompress: make helper symbols static

The individual decompression CUs need to only surface their top level
functions to other code. Arrange for everything else to be static, to
make sure no undue uses of that code exist or will appear without
explicitly noticing. (In some cases this also results in code size
reduction, but since this is all init-only code this probably doesn't
matter very much.)

In the LZO case also take the opportunity and convert u8 where lines
get touched anyway.

The downside is that the top level functions will now be non-static
in stubdom builds of libxenguest, but I think that's acceptable. This
does require declaring them first, though, as the compiler warns about
the lack of declarations.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Wei Liu <wl@xen.org>
This commit is contained in:
Jan Beulich committed 2021-03-30 14:33:48 +02:00
1 parent c201d303e8
commit eaecd329a5
8 files changed
+35 -36

No files matched your search

@@ -1,8 +1,12 @@
#ifdef __MINIOS__
# include "../../xen/include/xen/decompress.h"
#else
typedef int decompress_fn(unsigned char *inbuf, unsigned int len,
int (*fill)(void*, unsigned int),
int (*flush)(void*, unsigned int),
unsigned char *outbuf, unsigned int *posp,
void (*error)(const char *x));
#endif
int xc_dom_decompress_unsafe(
decompress_fn fn, struct xc_dom_image *dom, void **blob, size_t *size)
+5 -6
View File
@@ -665,12 +665,11 @@ static int INIT start_bunzip(struct bunzip_data **bdp, void *inbuf, int len,
/* Example usage: decompress src_fd to dst_fd. (Stops at end of bzip2 data,
not end of file.) */
STATIC int INIT bunzip2(unsigned char *buf, unsigned int len,
int(*fill)(void*, unsigned int),
int(*flush)(void*, unsigned int),
unsigned char *outbuf,
unsigned int *pos,
void(*error)(const char *x))
int INIT bunzip2(unsigned char *buf, unsigned int len,
int(*fill)(void*, unsigned int),
int(*flush)(void*, unsigned int),
unsigned char *outbuf, unsigned int *pos,
void(*error)(const char *x))
{
struct bunzip_data *bd;
int i = -1;
+1 -1
View File
@@ -7,7 +7,7 @@
#include <xen/types.h>
#include <xen/xmalloc.h>
#define STATIC
#define STATIC static
#define INIT __init
#define INITDATA __initdata
+5 -6
View File
@@ -22,12 +22,11 @@
#define LZ4_DEFAULT_UNCOMPRESSED_CHUNK_SIZE (8 << 20)
#define ARCHIVE_MAGICNUMBER 0x184C2102
STATIC int INIT unlz4(unsigned char *input, unsigned int in_len,
int (*fill)(void *, unsigned int),
int (*flush)(void *, unsigned int),
unsigned char *output,
unsigned int *posp,
void (*error)(const char *x))
int INIT unlz4(unsigned char *input, unsigned int in_len,
int (*fill)(void *, unsigned int),
int (*flush)(void *, unsigned int),
unsigned char *output, unsigned int *posp,
void (*error)(const char *x))
{
int ret = -1;
size_t chunksize = 0;
+5 -7
View File
@@ -528,13 +528,11 @@ static inline int INIT process_bit1(struct writer *wr, struct rc *rc,
STATIC int INIT unlzma(unsigned char *buf, unsigned int in_len,
int(*fill)(void*, unsigned int),
int(*flush)(void*, unsigned int),
unsigned char *output,
unsigned int *posp,
void(*error)(const char *x)
)
int INIT unlzma(unsigned char *buf, unsigned int in_len,
int(*fill)(void*, unsigned int),
int(*flush)(void*, unsigned int),
unsigned char *output, unsigned int *posp,
void(*error)(const char *x))
{
struct lzma_header header;
int lc, pb, lp;
+5 -5
View File
@@ -114,11 +114,11 @@ static int INIT parse_header(u8 *input, int *skip, int in_len)
return 1;
}
STATIC int INIT unlzo(u8 *input, unsigned int in_len,
int (*fill) (void *, unsigned int),
int (*flush) (void *, unsigned int),
u8 *output, unsigned int *posp,
void (*error) (const char *x))
int INIT unlzo(unsigned char *input, unsigned int in_len,
int (*fill) (void *, unsigned int),
int (*flush) (void *, unsigned int),
unsigned char *output, unsigned int *posp,
void (*error) (const char *x))
{
u8 r = 0;
int skip = 0;
+5 -5
View File
@@ -157,11 +157,11 @@
* both input and output buffers are available as a single chunk, i.e. when
* fill() and flush() won't be used.
*/
STATIC int INIT unxz(unsigned char *in, unsigned int in_size,
int (*fill)(void *dest, unsigned int size),
int (*flush)(void *src, unsigned int size),
unsigned char *out, unsigned int *in_used,
void (*error)(const char *x))
int INIT unxz(unsigned char *in, unsigned int in_size,
int (*fill)(void *dest, unsigned int size),
int (*flush)(void *src, unsigned int size),
unsigned char *out, unsigned int *in_used,
void (*error)(const char *x))
{
struct xz_buf b;
struct xz_dec *s;
+5 -6
View File
@@ -142,12 +142,11 @@ out:
return err;
}
STATIC int INIT unzstd(unsigned char *in_buf, unsigned int in_len,
int (*fill)(void*, unsigned int),
int (*flush)(void*, unsigned int),
unsigned char *out_buf,
unsigned int *in_pos,
void (*error)(const char *x))
int INIT unzstd(unsigned char *in_buf, unsigned int in_len,
int (*fill)(void*, unsigned int),
int (*flush)(void*, unsigned int),
unsigned char *out_buf, unsigned int *in_pos,
void (*error)(const char *x))
{
ZSTD_inBuffer in;
ZSTD_outBuffer out;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.