linux/include/asm-generic/uaccess.h
<<
>>
Prefs
   1#ifndef _ASM_GENERIC_UACCESS_H_
   2#define _ASM_GENERIC_UACCESS_H_
   3
   4/*
   5 * This macro should be used instead of __get_user() when accessing
   6 * values at locations that are not known to be aligned.
   7 */
   8#define __get_user_unaligned(x, ptr)                                    \
   9({                                                                      \
  10        __typeof__ (*(ptr)) __x;                                        \
  11        __copy_from_user(&__x, (ptr), sizeof(*(ptr))) ? -EFAULT : 0;    \
  12        (x) = __x;                                                      \
  13})
  14
  15
  16/*
  17 * This macro should be used instead of __put_user() when accessing
  18 * values at locations that are not known to be aligned.
  19 */
  20#define __put_user_unaligned(x, ptr)                                    \
  21({                                                                      \
  22        __typeof__ (*(ptr)) __x = (x);                                  \
  23        __copy_to_user((ptr), &__x, sizeof(*(ptr))) ? -EFAULT : 0;      \
  24})
  25
  26#endif /* _ASM_GENERIC_UACCESS_H */
  27