On Tue, 14 Jan 2014 01:30:56 +0400 Antony Pavlov <antonynpavlov@xxxxxxxxx> wrote: > In the worst case this adds less then 128 bytes of code Sorry! I see a typo here. Please change "then" to "than" before applying. > but on the other hand this makes code organization more clear. > > Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> > Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > Cc: linux-mips@xxxxxxxxxxxxxx > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: John Crispin <blogic@xxxxxxxxxxx> > Cc: Florian Fainelli <f.fainelli@xxxxxxxxx> > --- > arch/mips/boot/compressed/Makefile | 4 ++-- > arch/mips/boot/compressed/decompress.c | 22 ---------------------- > arch/mips/boot/compressed/string.c | 28 ++++++++++++++++++++++++++++ > 3 files changed, 30 insertions(+), 24 deletions(-) > create mode 100644 arch/mips/boot/compressed/string.c > > diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile > index ca0c343..61af6b6 100644 > --- a/arch/mips/boot/compressed/Makefile > +++ b/arch/mips/boot/compressed/Makefile > @@ -27,10 +27,10 @@ KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \ > -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \ > -DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS) > > -targets := head.o decompress.o dbg.o uart-16550.o uart-alchemy.o > +targets := head.o decompress.o string.o dbg.o uart-16550.o uart-alchemy.o > > # decompressor objects (linked with vmlinuz) > -vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o > +vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/dbg.o > > ifdef CONFIG_DEBUG_ZBOOT > vmlinuzobjs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o > diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c > index a8c6fd6..c00c4dd 100644 > --- a/arch/mips/boot/compressed/decompress.c > +++ b/arch/mips/boot/compressed/decompress.c > @@ -43,33 +43,11 @@ void error(char *x) > /* activate the code for pre-boot environment */ > #define STATIC static > > -#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_XZ) || \ > - defined(CONFIG_KERNEL_LZ4) > -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; > -} > -#endif > #ifdef CONFIG_KERNEL_GZIP > #include "../../../../lib/decompress_inflate.c" > #endif > > #ifdef CONFIG_KERNEL_BZIP2 > -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; > -} > #include "../../../../lib/decompress_bunzip2.c" > #endif > > diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c > new file mode 100644 > index 0000000..9de9885 > --- /dev/null > +++ b/arch/mips/boot/compressed/string.c > @@ -0,0 +1,28 @@ > +/* > + * arch/mips/boot/compressed/string.c > + * > + * Very small subset of simple string routines > + */ > + > +#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; > +} > -- > 1.8.5.2 > -- -- Best regards, Antony Pavlov