linux/fs/smb/client/compress/lz77.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2024, SUSE LLC
 *
 * Authors: Enzo Matsumiya <[email protected]>
 *
 * Implementation of the LZ77 "plain" compression algorithm, as per MS-XCA spec.
 */
#include <linux/slab.h>
#include <linux/sizes.h>
#include <linux/count_zeros.h>
#include <linux/unaligned.h>

#include "lz77.h"

/*
 * Compression parameters.
 */
#define LZ77_MATCH_MIN_LEN
#define LZ77_MATCH_MIN_DIST
#define LZ77_MATCH_MAX_DIST
#define LZ77_HASH_LOG
#define LZ77_HASH_SIZE
#define LZ77_STEP_SIZE

static __always_inline u8 lz77_read8(const u8 *ptr)
{}

static __always_inline u64 lz77_read64(const u64 *ptr)
{}

static __always_inline void lz77_write8(u8 *ptr, u8 v)
{}

static __always_inline void lz77_write16(u16 *ptr, u16 v)
{}

static __always_inline void lz77_write32(u32 *ptr, u32 v)
{}

static __always_inline u32 lz77_match_len(const void *wnd, const void *cur, const void *end)
{}

static __always_inline void *lz77_write_match(void *dst, void **nib, u32 dist, u32 len)
{}

noinline int lz77_compress(const void *src, u32 slen, void *dst, u32 *dlen)
{}