/* | |
* We need constants.h for: | |
* VMA_VM_MM | |
* VMA_VM_FLAGS | |
* VM_EXEC | |
*/ | |
#include <asm/asm-offsets.h> | |
#include <asm/thread_info.h> | |
/* | |
* vma_vm_mm - get mm pointer from vma pointer (vma->vm_mm) | |
*/ | |
.macro vma_vm_mm, rd, rn | |
ldr \rd, [\rn, #VMA_VM_MM] | |
.endm | |
/* | |
* vma_vm_flags - get vma->vm_flags | |
*/ | |
.macro vma_vm_flags, rd, rn | |
ldr \rd, [\rn, #VMA_VM_FLAGS] | |
.endm | |
.macro tsk_mm, rd, rn | |
ldr \rd, [\rn, #TI_TASK] | |
ldr \rd, [\rd, #TSK_ACTIVE_MM] | |
.endm | |
/* | |
* act_mm - get current->active_mm | |
*/ | |
.macro act_mm, rd | |
bic \rd, sp, #8128 | |
bic \rd, \rd, #63 | |
ldr \rd, [\rd, #TI_TASK] | |
ldr \rd, [\rd, #TSK_ACTIVE_MM] | |
.endm | |
/* | |
* mmid - get context id from mm pointer (mm->context.id) | |
*/ | |
.macro mmid, rd, rn | |
ldr \rd, [\rn, #MM_CONTEXT_ID] | |
.endm | |
/* | |
* mask_asid - mask the ASID from the context ID | |
*/ | |
.macro asid, rd, rn | |
and \rd, \rn, #255 | |
.endm |