cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

string.h (1936B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2013 ARM Ltd.
      4 */
      5#ifndef __ASM_STRING_H
      6#define __ASM_STRING_H
      7
      8#if !(defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS))
      9#define __HAVE_ARCH_STRRCHR
     10extern char *strrchr(const char *, int c);
     11
     12#define __HAVE_ARCH_STRCHR
     13extern char *strchr(const char *, int c);
     14
     15#define __HAVE_ARCH_STRCMP
     16extern int strcmp(const char *, const char *);
     17
     18#define __HAVE_ARCH_STRNCMP
     19extern int strncmp(const char *, const char *, __kernel_size_t);
     20
     21#define __HAVE_ARCH_STRLEN
     22extern __kernel_size_t strlen(const char *);
     23
     24#define __HAVE_ARCH_STRNLEN
     25extern __kernel_size_t strnlen(const char *, __kernel_size_t);
     26
     27#define __HAVE_ARCH_MEMCMP
     28extern int memcmp(const void *, const void *, size_t);
     29
     30#define __HAVE_ARCH_MEMCHR
     31extern void *memchr(const void *, int, __kernel_size_t);
     32#endif
     33
     34#define __HAVE_ARCH_MEMCPY
     35extern void *memcpy(void *, const void *, __kernel_size_t);
     36extern void *__memcpy(void *, const void *, __kernel_size_t);
     37
     38#define __HAVE_ARCH_MEMMOVE
     39extern void *memmove(void *, const void *, __kernel_size_t);
     40extern void *__memmove(void *, const void *, __kernel_size_t);
     41
     42#define __HAVE_ARCH_MEMSET
     43extern void *memset(void *, int, __kernel_size_t);
     44extern void *__memset(void *, int, __kernel_size_t);
     45
     46#ifdef CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE
     47#define __HAVE_ARCH_MEMCPY_FLUSHCACHE
     48void memcpy_flushcache(void *dst, const void *src, size_t cnt);
     49#endif
     50
     51#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
     52	!defined(__SANITIZE_ADDRESS__)
     53
     54/*
     55 * For files that are not instrumented (e.g. mm/slub.c) we
     56 * should use not instrumented version of mem* functions.
     57 */
     58
     59#define memcpy(dst, src, len) __memcpy(dst, src, len)
     60#define memmove(dst, src, len) __memmove(dst, src, len)
     61#define memset(s, c, n) __memset(s, c, n)
     62
     63#ifndef __NO_FORTIFY
     64#define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
     65#endif
     66
     67#endif
     68
     69#endif