linux/include/linux/typecheck.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef TYPECHECK_H_INCLUDED
   3#define TYPECHECK_H_INCLUDED
   4
   5/*
   6 * Check at compile time that something is of a particular type.
   7 * Always evaluates to 1 so you may use it easily in comparisons.
   8 */
   9#define typecheck(type,x) \
  10({      type __dummy; \
  11        typeof(x) __dummy2; \
  12        (void)(&__dummy == &__dummy2); \
  13        1; \
  14})
  15
  16/*
  17 * Check at compile time that 'function' is a certain type, or is a pointer
  18 * to that type (needs to use typedef for the function type.)
  19 */
  20#define typecheck_fn(type,function) \
  21({      typeof(type) __tmp = function; \
  22        (void)__tmp; \
  23})
  24
  25#endif          /* TYPECHECK_H_INCLUDED */
  26