blob: f3d6117fb02a236219c751ee6dd807d03f33071c [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2004, 2016 IBM Corporation
* All rights reserved.
* This program and the accompanying materials
* are made available under the terms of the BSD License
* which accompanies this distribution, and is available at
* http://www.opensource.org/licenses/bsd-license.php
*
* Contributors:
* IBM Corporation - initial implementation
*****************************************************************************/
#ifndef _STRING_H
#define _STRING_H
#include "stddef.h"
#define strcpy __builtin_strcpy
#define strncpy __builtin_strncpy
#define strcat __builtin_strcat
#define strcmp __builtin_strcmp
#define strncmp __builtin_strncmp
#define strcasecmp __builtin_strcasecmp
#define strncasecmp __builtin_strncasecmp
#define strchr __builtin_strchr
#define strrchr __builtin_strrchr
#define strlen __builtin_strlen
#define strlen __builtin_strlen
size_t strnlen(const char *s, size_t maxlen);
#define strstr __builtin_strstr
#define strdup __builtin_strdup
char *strtok(char *src, const char *pattern);
#define memset __builtin_memset
#define memchr __builtin_memchr
#define memcpy __builtin_memcpy
#define memmove __builtin_memmove
#define memcmp __builtin_memcmp
static inline void *memcpy_null(void *dest, const void *src, size_t n)
{
asm("" : "+r"(dest));
asm("" : "+r"(src));
return memcpy(dest, src, n);
}
void *memcpy_from_ci(void *destpp, const void *srcpp, size_t len);
static inline int ffs(unsigned long val)
{
return __builtin_ffs(val);
}
#endif