mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
a510b61613
Add support for self-extracting kernels with a ZSTD compression. Tested on a kernel for the GCW-Zero, it allows to reduce the size of the kernel file from 4.1 MiB with gzip to 3.5 MiB with ZSTD, and boots just as fast. Compressed kernels are now also compiled with -D__DISABLE_EXPORTS in order to disable the EXPORT_SYMBOL() macros inside of lib/zstd/decompress.c. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
47 lines
755 B
C
47 lines
755 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* arch/mips/boot/compressed/string.c
|
|
*
|
|
* Very small subset of simple string routines
|
|
*/
|
|
|
|
#include <linux/compiler_attributes.h>
|
|
#include <linux/types.h>
|
|
|
|
void *memcpy(void *dest, const void *src, size_t n)
|
|
{
|
|
int i;
|
|
const char *s = src;
|
|
char *d = dest;
|
|
|
|
for (i = 0; i < n; i++)
|
|
d[i] = s[i];
|
|
return dest;
|
|
}
|
|
|
|
void *memset(void *s, int c, size_t n)
|
|
{
|
|
int i;
|
|
char *ss = s;
|
|
|
|
for (i = 0; i < n; i++)
|
|
ss[i] = c;
|
|
return s;
|
|
}
|
|
|
|
void * __weak memmove(void *dest, const void *src, size_t n)
|
|
{
|
|
unsigned int i;
|
|
const char *s = src;
|
|
char *d = dest;
|
|
|
|
if ((uintptr_t)dest < (uintptr_t)src) {
|
|
for (i = 0; i < n; i++)
|
|
d[i] = s[i];
|
|
} else {
|
|
for (i = n; i > 0; i--)
|
|
d[i - 1] = s[i - 1];
|
|
}
|
|
return dest;
|
|
}
|