1c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#ifndef BOOT_STRING_H
2c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#define BOOT_STRING_H
3c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal
4c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal/* Undef any of these macros coming from string_32.h. */
5c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#undef memcpy
6c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#undef memset
7c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#undef memcmp
8c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal
9c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyalvoid *memcpy(void *dst, const void *src, size_t len);
10c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyalvoid *memset(void *dst, int c, size_t len);
11fb4cac573ef6dce8d7543b68306566561c2e5725Vivek Goyalint memcmp(const void *s1, const void *s2, size_t len);
12c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal
13c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal/*
14c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal * Access builtin version by default. If one needs to use optimized version,
15c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal * do "undef memcpy" in .c file and link against right string.c
16c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal */
17c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#define memcpy(d,s,l) __builtin_memcpy(d,s,l)
18c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#define memset(d,c,l) __builtin_memset(d,c,l)
19fb4cac573ef6dce8d7543b68306566561c2e5725Vivek Goyal#define memcmp	__builtin_memcmp
20c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal
21c041b5ad8640dd89ccf1411cd2636ef7c1cfee92Vivek Goyal#endif /* BOOT_STRING_H */
22