Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
uaccess_32.h File Reference

Go to the source code of this file.

Macros

#define __get_user_size(x, ptr, size, retval)
 
#define __get_user_asm(x, addr, err, insn)
 
#define __put_user_size(x, ptr, size, retval)
 
#define __put_user_asm(x, addr, err, insn)
 
#define __put_user_u64(val, addr, retval)
 

Functions

void __get_user_unknown (void)
 
void __put_user_unknown (void)
 

Macro Definition Documentation

#define __get_user_asm (   x,
  addr,
  err,
  insn 
)
Value:
do { \
__asm__ __volatile__ ( \
"mov." insn " %1, %0\n\t" \
: "=&r" (x) \
: "m" (__m(addr)) \
); \
} while (0)

Definition at line 56 of file uaccess_32.h.

#define __get_user_size (   x,
  ptr,
  size,
  retval 
)
Value:
do { \
retval = 0; \
switch (size) { \
case 1: \
__get_user_asm(x, ptr, retval, "b"); \
break; \
case 2: \
__get_user_asm(x, ptr, retval, "w"); \
break; \
case 4: \
__get_user_asm(x, ptr, retval, "l"); \
break; \
default: \
__get_user_unknown(); \
break; \
} \
} while (0)

Definition at line 15 of file uaccess_32.h.

#define __put_user_asm (   x,
  addr,
  err,
  insn 
)
Value:
do { \
__asm__ __volatile__ ( \
"mov." insn " %0, %1\n\t" \
: /* no outputs */ \
: "r" (x), "m" (__m(addr)) \
: "memory" \
); \
} while (0)

Definition at line 114 of file uaccess_32.h.

#define __put_user_size (   x,
  ptr,
  size,
  retval 
)
Value:
do { \
retval = 0; \
switch (size) { \
case 1: \
__put_user_asm(x, ptr, retval, "b"); \
break; \
case 2: \
__put_user_asm(x, ptr, retval, "w"); \
break; \
case 4: \
__put_user_asm(x, ptr, retval, "l"); \
break; \
case 8: \
__put_user_u64(x, ptr, retval); \
break; \
default: \
__put_user_unknown(); \
} \
} while (0)

Definition at line 68 of file uaccess_32.h.

#define __put_user_u64 (   val,
  addr,
  retval 
)
Value:
({ \
__asm__ __volatile__( \
"1:\n\t" \
"mov.l %S1,%2\n\t" \
"mov.l %R1,%T2\n\t" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3:\n\t" \
"mov.l 4f,%0\n\t" \
"jmp @%0\n\t" \
" mov %3,%0\n\t" \
".balign 4\n" \
"4: .long 2b\n\t" \
".previous\n" \
".section __ex_table,\"a\"\n\t" \
".long 1b, 3b\n\t" \
".previous" \
: "=r" (retval) \
: "r" (val), "m" (__m(addr)), "i" (-EFAULT), "0" (retval) \
: "memory"); })

Definition at line 148 of file uaccess_32.h.

Function Documentation

void __get_user_unknown ( void  )
void __put_user_unknown ( void  )