~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-alpha/string.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef __ALPHA_STRING_H__
  2 #define __ALPHA_STRING_H__
  3 
  4 #ifdef __KERNEL__
  5 
  6 /*
  7  * GCC of any recent vintage doesn't do stupid things with bcopy.
  8  * EGCS 1.1 knows all about expanding memcpy inline, others don't.
  9  *
 10  * Similarly for a memset with data = 0.
 11  */
 12 
 13 #define __HAVE_ARCH_MEMCPY
 14 extern void * memcpy(void *, const void *, size_t);
 15 #define __HAVE_ARCH_MEMMOVE
 16 extern void * memmove(void *, const void *, size_t);
 17 
 18 /* For backward compatibility with modules.  Unused otherwise.  */
 19 extern void * __memcpy(void *, const void *, size_t);
 20 
 21 #define memcpy __builtin_memcpy
 22 
 23 #define __HAVE_ARCH_MEMSET
 24 extern void * __constant_c_memset(void *, unsigned long, size_t);
 25 extern void * __memset(void *, int, size_t);
 26 extern void * memset(void *, int, size_t);
 27 
 28 #define memset(s, c, n)                                                     \
 29 (__builtin_constant_p(c)                                                    \
 30  ? (__builtin_constant_p(n) && (c) == 0                                     \
 31     ? __builtin_memset((s),0,(n))                                           \
 32     : __constant_c_memset((s),0x0101010101010101UL*(unsigned char)(c),(n))) \
 33  : __memset((s),(c),(n)))
 34 
 35 #define __HAVE_ARCH_STRCPY
 36 extern char * strcpy(char *,const char *);
 37 #define __HAVE_ARCH_STRNCPY
 38 extern char * strncpy(char *, const char *, size_t);
 39 #define __HAVE_ARCH_STRCAT
 40 extern char * strcat(char *, const char *);
 41 #define __HAVE_ARCH_STRNCAT
 42 extern char * strncat(char *, const char *, size_t);
 43 #define __HAVE_ARCH_STRCHR
 44 extern char * strchr(const char *,int);
 45 #define __HAVE_ARCH_STRRCHR
 46 extern char * strrchr(const char *,int);
 47 #define __HAVE_ARCH_STRLEN
 48 extern size_t strlen(const char *);
 49 #define __HAVE_ARCH_MEMCHR
 50 extern void * memchr(const void *, int, size_t);
 51 
 52 /* The following routine is like memset except that it writes 16-bit
 53    aligned values.  The DEST and COUNT parameters must be even for 
 54    correct operation.  */
 55 
 56 #define __HAVE_ARCH_MEMSETW
 57 extern void * __memsetw(void *dest, unsigned short, size_t count);
 58 
 59 #define memsetw(s, c, n)                                                 \
 60 (__builtin_constant_p(c)                                                 \
 61  ? __constant_c_memset((s),0x0001000100010001UL*(unsigned short)(c),(n)) \
 62  : __memsetw((s),(c),(n)))
 63 
 64 extern int strcasecmp(const char *, const char *);
 65 
 66 #endif /* __KERNEL__ */
 67 
 68 #endif /* __ALPHA_STRING_H__ */
 69 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.