Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
swp_emulate.c File Reference
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <linux/sched.h>
#include <linux/syscalls.h>
#include <linux/perf_event.h>
#include <asm/opcodes.h>
#include <asm/traps.h>
#include <asm/uaccess.h>

Go to the source code of this file.

Macros

#define __user_swpX_asm(data, addr, res, temp, B)
 
#define __user_swp_asm(data, addr, res, temp)   __user_swpX_asm(data, addr, res, temp, "")
 
#define __user_swpb_asm(data, addr, res, temp)   __user_swpX_asm(data, addr, res, temp, "b")
 
#define EXTRACT_REG_NUM(instruction, offset)   (((instruction) & (0xf << (offset))) >> (offset))
 
#define RN_OFFSET   16
 
#define RT_OFFSET   12
 
#define RT2_OFFSET   0
 
#define TYPE_SWPB   (1 << 22)
 

Functions

 late_initcall (swp_emulation_init)
 

Macro Definition Documentation

#define __user_swp_asm (   data,
  addr,
  res,
  temp 
)    __user_swpX_asm(data, addr, res, temp, "")

Definition at line 57 of file swp_emulate.c.

#define __user_swpb_asm (   data,
  addr,
  res,
  temp 
)    __user_swpX_asm(data, addr, res, temp, "b")

Definition at line 59 of file swp_emulate.c.

#define __user_swpX_asm (   data,
  addr,
  res,
  temp,
  B 
)
Value:
__asm__ __volatile__( \
" mov %2, %1\n" \
"0: ldrex"B" %1, [%3]\n" \
"1: strex"B" %0, %2, [%3]\n" \
" cmp %0, #0\n" \
" movne %0, %4\n" \
"2:\n" \
" .section .fixup,\"ax\"\n" \
" .align 2\n" \
"3: mov %0, %5\n" \
" b 2b\n" \
" .previous\n" \
" .section __ex_table,\"a\"\n" \
" .align 3\n" \
" .long 0b, 3b\n" \
" .long 1b, 3b\n" \
" .previous" \
: "=&r" (res), "+r" (data), "=&r" (temp) \
: "r" (addr), "i" (-EAGAIN), "i" (-EFAULT) \
: "cc", "memory")

Definition at line 35 of file swp_emulate.c.

#define EXTRACT_REG_NUM (   instruction,
  offset 
)    (((instruction) & (0xf << (offset))) >> (offset))

Definition at line 65 of file swp_emulate.c.

#define RN_OFFSET   16

Definition at line 67 of file swp_emulate.c.

#define RT2_OFFSET   0

Definition at line 69 of file swp_emulate.c.

#define RT_OFFSET   12

Definition at line 68 of file swp_emulate.c.

#define TYPE_SWPB   (1 << 22)

Definition at line 74 of file swp_emulate.c.

Function Documentation

late_initcall ( swp_emulation_init  )