|  | /* | 
|  | * 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 | 
|  |  | 
|  | .macro	crval, clear, mmuset, ucset | 
|  | #ifdef CONFIG_MMU | 
|  | .word	\clear | 
|  | .word	\mmuset | 
|  | #else | 
|  | .word	\clear | 
|  | .word	\ucset | 
|  | #endif | 
|  | .endm |