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