linux/include/linux/kasan-checks.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _LINUX_KASAN_CHECKS_H
   3#define _LINUX_KASAN_CHECKS_H
   4
   5#include <linux/types.h>
   6
   7/*
   8 * __kasan_check_*: Always available when KASAN is enabled. This may be used
   9 * even in compilation units that selectively disable KASAN, but must use KASAN
  10 * to validate access to an address.   Never use these in header files!
  11 */
  12#ifdef CONFIG_KASAN
  13bool __kasan_check_read(const volatile void *p, unsigned int size);
  14bool __kasan_check_write(const volatile void *p, unsigned int size);
  15#else
  16static inline bool __kasan_check_read(const volatile void *p, unsigned int size)
  17{
  18        return true;
  19}
  20static inline bool __kasan_check_write(const volatile void *p, unsigned int size)
  21{
  22        return true;
  23}
  24#endif
  25
  26/*
  27 * kasan_check_*: Only available when the particular compilation unit has KASAN
  28 * instrumentation enabled. May be used in header files.
  29 */
  30#ifdef __SANITIZE_ADDRESS__
  31#define kasan_check_read __kasan_check_read
  32#define kasan_check_write __kasan_check_write
  33#else
  34static inline bool kasan_check_read(const volatile void *p, unsigned int size)
  35{
  36        return true;
  37}
  38static inline bool kasan_check_write(const volatile void *p, unsigned int size)
  39{
  40        return true;
  41}
  42#endif
  43
  44#endif
  45