diff options
| author | Michael Brown | 2005-03-08 19:53:11 +0100 |
|---|---|---|
| committer | Michael Brown | 2005-03-08 19:53:11 +0100 |
| commit | 3d6123e69ab879c72ff489afc5bf93ef0b7a94ce (patch) | |
| tree | 9f3277569153a550fa8d81ebd61bd88f266eb8da /src/arch/e1/include/bits/string.h | |
| download | ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.gz ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.tar.xz ipxe-3d6123e69ab879c72ff489afc5bf93ef0b7a94ce.zip | |
Initial revision
Diffstat (limited to 'src/arch/e1/include/bits/string.h')
| -rw-r--r-- | src/arch/e1/include/bits/string.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/arch/e1/include/bits/string.h b/src/arch/e1/include/bits/string.h new file mode 100644 index 000000000..b6df2fcbc --- /dev/null +++ b/src/arch/e1/include/bits/string.h @@ -0,0 +1,35 @@ +#ifndef ETHERBOOT_BITS_STRING_H +#define ETHERBOOT_BITS_STRING_H + +/* define inline optimized string functions here */ + +#define __HAVE_ARCH_MEMCPY +//extern void * memcpy(const void *d, const void *s, size_t count); + +#define __HAVE_ARCH_MEMCMP +//extern int memcmp(const void * s ,const void * d ,size_t ); + +#define __HAVE_ARCH_MEMSET +//extern void * memset(const void * s, int c, size_t count); + +#define __HAVE_ARCH_MEMMOVE +static inline void *memmove(void *s1, const void *s2, size_t n) { + + unsigned int i; + char *tmp = s1; + char *cs2 = (char *) s2; + + if (tmp < cs2) { + for(i=0; i<n; ++i, ++tmp, ++cs2) + *tmp = *cs2; + } + else { + tmp += n - 1; + cs2 += n - 1; + for(i=0; i<n; ++i, --tmp, --cs2) + *tmp = *cs2; + } + return(s1); +} + +#endif /* ETHERBOOT_BITS_STRING_H */ |
